ентити наследуются от суперкласса. Исправил связи

This commit is contained in:
L_DelOff
2023-03-04 21:46:38 +03:00
parent 9eebb2bfff
commit cd695b9cb4
5 changed files with 68 additions and 16 deletions

View File

@@ -0,0 +1,33 @@
package ru.ldeloff.hedgehogcloud.entity;
import com.sun.istack.NotNull;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.domain.Persistable;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;
import java.util.UUID;
@NoArgsConstructor
@Setter
@MappedSuperclass
@EqualsAndHashCode
public class BaseEntity implements Persistable<String> {
@Id
protected String id = UUID.randomUUID().toString();
@Transient
private Boolean justCreated = false;
@Override
public String getId() {
return null;
}
@Override
public boolean isNew() {
return justCreated;
}
}

View File

@@ -6,10 +6,7 @@ import lombok.Setter;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.*;
import java.util.Set;
@NoArgsConstructor
@@ -17,13 +14,15 @@ import java.util.Set;
@Setter
@Entity
@Table(name = "roles")
public class RoleEntity implements GrantedAuthority {
@Id
private String id;
public class RoleEntity extends BaseEntity implements GrantedAuthority {
private String name;
@Transient
@ManyToMany
private Set<UserEntity> users;
public String getName() {
return name;
}
@Override
public String getAuthority() {
return getName();

View File

@@ -1,14 +1,12 @@
package ru.ldeloff.hedgehogcloud.entity;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.*;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import javax.persistence.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@NoArgsConstructor
@@ -16,15 +14,17 @@ import java.util.Set;
@Setter
@Entity
@Table(name = "users")
public class UserEntity implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
public class UserEntity extends BaseEntity implements UserDetails {
private String username;
private String password;
@ManyToMany(fetch = FetchType.EAGER)
private Set<RoleEntity> roles;
@JoinTable(
name = "users_roles",
joinColumns = { @JoinColumn(name = "user_id") },
inverseJoinColumns = { @JoinColumn(name = "role_id") }
)
private Set<RoleEntity> roles = new HashSet<>();
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {