大家好,最近在學習Spring Data Jpa,遇到關于多對多中的問題,想請教大家我們都知道 用戶-角色-權(quán)限 是用戶-角色多對多? 角色-權(quán)限多對多如此便有以下實體類:/**
?*?描述:用戶實體
?*?@author?itbofeng?bf1020070755@163.com
?*/
@Data
@Entity
public?class?User?implements?Serializable?{
????@Id
????@Column(length?=?64,?nullable?=?false)
????private?String?uid;//用戶ID?主鍵?64位
????@Column(length?=?64,?nullable?=?false)
????private?String?uname;//用戶名?非空?64位
????@Column(length?=?64,?nullable?=?false)
????private?String?username;//登錄名?非空?64位
????@Column(length?=?64,?nullable?=?false)
????private?String?password;//密碼?非空?64位
????@Column(length?=?64,?nullable?=?true)
????private?String?email;//郵箱?可空?64位
????@Column(length?=?64,?nullable?=?true)
????private?String?phone;//電話?可空?64位
????@Column(length?=?1,?nullable?=?true)
????private?String?state;//電話?可空?64位
????@ManyToMany(cascade?=?CascadeType.ALL?,fetch?=?FetchType.EAGER)
????@JoinTable(name?=?"UserRole",?joinColumns?=?{
????@JoinColumn(name?=?"uid",?referencedColumnName?=?"uid")},?inverseJoinColumns?=?{
????@JoinColumn(name?=?"rid",?referencedColumnName?=?"rid")})
????protected?List<Role>?roles;
}
/**
?*?描述:角色實體
?*?@author?itbofeng?bf1020070755@163.com
?*/
@Data
@Entity
public?class?Role?implements?Serializable?{
????@Id
????@Column(length?=?64)
????private?String?rid;//角色ID?主鍵?64位
????@Column(length?=?64,nullable?=?false)
????private?String?rname;//角色名稱?主鍵?64位
????@ManyToMany(mappedBy?=?"roles",?fetch?=?FetchType.LAZY)
????private?List<User>?users;
????@ManyToMany(cascade?=?CascadeType.ALL,?fetch?=?FetchType.LAZY)
????@JoinTable(name?=?"RolePermission",?joinColumns?=?{
????????????@JoinColumn(name?=?"rid",?referencedColumnName?=?"rid")},?inverseJoinColumns?=?{
????????????@JoinColumn(name?=?"pid",?referencedColumnName?=?"pid")})
????private?List<Permission>?permissions;
}
/**
?*?描述:權(quán)限實體
?*?@author?itbofeng?bf1020070755@163.com
?*/
@Data
@Entity
public?class?Permission?implements?Serializable?{
????@Id
????@Column(length?=?64)
????private?String?pid;//權(quán)限ID?64位
????@Column(length?=?64,nullable?=?false)
????private?String?pname;//權(quán)限名稱?64位
????@Column(length?=?1,nullable?=?false)
????private?String?type;//權(quán)限類別,0菜單,1按鈕?1位
????@Column(length?=?256,nullable?=?true)
????private?String?url;//對應菜單??256位
????@Column(length?=?64)
????private?String?parentId;//權(quán)限ID?64位
????@ManyToMany(mappedBy?=?"permissions"?,fetch?=?FetchType.LAZY)
????private?List<Role>?roles;
}現(xiàn)有需求:根據(jù)用戶名查詢出用戶的所有信息,包括角色以及角色擁有的權(quán)限,用Spring Data Jpa怎么實現(xiàn)呢?我最初的想法是,先查詢出用戶,再根據(jù)用戶ID查詢出所有的角色,再根據(jù)所有的角色ID查詢出所有的權(quán)限,然后將角色和權(quán)限對應一下就OK了,做到這一步了,忽然發(fā)現(xiàn)沒有什么字段可以對應?請問各路大神都是怎么操作的呢?
1 回答

添加回答
舉報
0/150
提交
取消