У меня есть таблица, которая имеет два разных отношения «многие ко многим» с двумя разными таблицами. Допустим, у меня есть User
<---> UserRole
<-> Role
и User
<-> 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>();