如何在不创建Java的联结类的情况下解决多对多关系?

时间:2014-03-09 20:28:27

标签: java hibernate hibernate-mapping

在我的数据库中,我有三个表USERPERMISSION和一个联结表USER_PERMISSIONS。正如你所看到的,我已经明确了多对多的关系。

这就是问题所在。我正在使用Hibernate。是否可以仅使用两个类UserPermissions而无需创建联结类UserPermissions?我的意思是我可以使用某种注释来包含我的联结表USER_PERMISSIONS吗?

1 个答案:

答案 0 :(得分:1)

是的,你可以。您需要使用@JoinTable和@JoinColumn注释。示例如下:

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

@Id
@Column(name = "ID")
private Long id;

@ManyToMany
@JoinTable(name = "USER_PERMISSIONS", 
    joinColumns = @JoinColumn(name = "USER_ID", referencedColumnName = "ID"), 
    inverseJoinColumns = @JoinColumn(name = "PERM_ID", referencedColumnName = "ID"))
private Collection<Permissions> permissions;

在这里http://en.wikibooks.org/wiki/Java_Persistence/ManyToMany

可以找到多个到多个双向的完整工作示例