2011-11-29 98 views
3

我有一個表,它有兩個不同的多對多關係到兩個不同的表。比方說,我有User < --->UserRole < - >RoleUser < - >UserGroups < - >Groups。由於我是休眠和數據庫映射的新手,我想知道如果讓我的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>(); 

回答

5

把握;許多類型有多個多對多。

我認爲最小化多對多的關係是一個好主意,但它是一個自然的結構,遍佈各處。

相關問題