0

我有一个人员表 ( PersonID) 和一个地址表 ( AddressID)。我想创建一个名为Person_Addresswhich mapsPerson->Adress使用ManyToMany关系的新联接表,并且我必须将主键指定为两个主键 ( PersonID - AddressID) 的组合。

如何使用 Hibernate HBM 语法来做到这一点?

4

1 回答 1

1

在 Hibernate 中使用@ManyToMany并忘记连接表。连接表将存在于您的数据库中,但不在您的代码中,Hibernate 知道如何处理它。

例子:

Person 类(作为关系的所有者):

@ManyToMany(targetEntity = Address.class, cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = fetchType.LAZY)
@JoinTable(name = "person_address", joinColumns = @JoinColumn(name = "PersonID"), inverseJoinColumns = @JoinColumn(name = "AddressID"))
List<Address> addresses;

地址类(如果需要):

@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "addresses", targetEntity = Person.class, fetch = FetchType.LAZY)
List<Person> persons;

编辑:

链接将帮助您进行多对多 XML 映射。

于 2013-01-04T11:47:02.443 回答