繁体   English   中英

一个实体可以有多个多对多关系吗?

[英]Can an entity have more than one many-to-many relations?

我有一个表与两个不同的表有两个不同的多对多关系。 假设我有User <---> UserRole < - > RoleUser < - > UserGroups < - > Groups 由于我是hibernate和数据库映射的新手,我想知道如果我的User实体中有属性角色和组,那么@ManytoMany注释都是好的做法并且可以接受吗?

即:

 @Entity(name = "User")
 @Table(name = "USER")
 public class User {

 .... /* Obviously Id would go here and all other attributes */

 @ManyToMany(cascade = CascadeType.ALL)
 @JoinTable(name = "UserRole", joinColumns = { @JoinColumn(name="USER_ID") },
            inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") } )
 private Set<Role> roles = new HashSet<Role>();

 @ManyToMany(cascade = CascadeType.ALL)
 @JoinTable(name = "UserGroup", joinColumns = { @JoinColumn(name="USER_ID") },
            inverseJoinColumns = { @JoinColumn(name = "GROUP_ID") } )
 private Set<Group> groups = new HashSet<Group>();

当然; 许多类型都有多个多对多。

我认为尽量减少多对多关系是一个好主意,但它是一种自然的结构,并且遍布各处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM