ентити наследуются от суперкласса. Исправил связи
parent
9eebb2bfff
commit
cd695b9cb4
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -6,5 +6,6 @@
|
|||
|
||||
<include file="scripts/01_create_table_users.sql" relativeToChangelogFile="true"/>
|
||||
<include file="scripts/02_create_table_roles.sql" relativeToChangelogFile="true"/>
|
||||
<include file="scripts/03_create_table_users_roles.sql" relativeToChangelogFile="true"/>
|
||||
|
||||
</databaseChangeLog>
|
|
@ -0,0 +1,19 @@
|
|||
-- liquibase formatted sql
|
||||
|
||||
-- changeset L_DelOff:create_table_users_roles rollbackSplitStatements:true
|
||||
-- comment: Создание сопоставляющей таблицы пользователь - роли
|
||||
|
||||
CREATE TABLE users_roles
|
||||
(
|
||||
`user_id` VARCHAR(36) NOT NULL,
|
||||
`role_id` VARCHAR(36) NOT NULL,
|
||||
PRIMARY KEY (`user_id`,`role_id`),
|
||||
KEY `role_id` (`role_id`),
|
||||
CONSTRAINT `users_roles_ibfk_1`
|
||||
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`),
|
||||
CONSTRAINT `users_roles_ibfk_2`
|
||||
FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`)
|
||||
);
|
||||
|
||||
|
||||
-- rollback DROP TABLE users_roles;
|
Loading…
Reference in New Issue