spring - Spring Entity mult inverseJoinColumns
问题描述
这是我想在 db 中创建的表
但是,我的数据库中目前有三个单独的表(User-Role
, User-Permission
, User-Access_Table
)。
我应该如何修改User
才能Entity
得到向上的结果?
User
import lombok.Data;
import javax.persistence.*;
import java.util.Set;
@Data
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "user_roles",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
private Set<Role> roles;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "user_permissions",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "permission_id", referencedColumnName = "id"))
private Set<Permission> permission;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "user_access_table",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "access_table_id", referencedColumnName = "id"))
private Set<Access_Table> Access_Table;
}
Role
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Setter
@Getter
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(length = 60)
private String name;
}
Permission
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Setter
@Getter
@Entity
@Table(name = "permissions")
public class Permission {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(length = 60)
private String name;
}
Access_Table
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Setter
@Getter
@Entity
@Table(name = "access_table")
public class Access_Table {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(length = 60)
private String name;
}
解决方案
推荐阅读
- python - Gensim:绘制 Word2Vec 模型中的单词列表
- c# - 在具有多个文本属性的按钮中创建按钮
- c# - OWIN 已通过另一个项目/网站的身份验证
- python - 如何将列表映射到 dict 键作为值
- python - 根据python中嵌套列表中的另一个元素返回一个元素
- swift - Eureka Swift ViewRow - UIButton 不会点击
- r - 提高循环内 bind_rows 的速度(3000 个数据帧)
- c# - Nest 聚合返回错误 {Invalid NEST response built from an unsuccessful low level call on POST: /people/_search?typed_keys=true}
- python - 如何从熊猫数据框中删除互惠记录?
- mysql - 检查数据库 MySQL 中是否存在值数组