我有一个人员表 ( PersonID
) 和一个地址表 ( AddressID
)。我想创建一个名为Person_Address
which mapsPerson->Adress
使用ManyToMany
关系的新联接表,并且我必须将主键指定为两个主键 ( PersonID - AddressID
) 的组合。
如何使用 Hibernate HBM 语法来做到这一点?
我有一个人员表 ( PersonID
) 和一个地址表 ( AddressID
)。我想创建一个名为Person_Address
which mapsPerson->Adress
使用ManyToMany
关系的新联接表,并且我必须将主键指定为两个主键 ( PersonID - AddressID
) 的组合。
如何使用 Hibernate HBM 语法来做到这一点?
在 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 映射。