我有一个人员表({{1}})和一个地址表(PersonID
)。我想创建一个名为AddressID
的新联接表,它使用Person_Address
关系映射Person->Adress
,我必须将主键指定为两个主键的组合({{1} })。
如何使用Hibernate HBM语法执行此操作?
答案 0 :(得分:1)
使用@ManyToMany
并忘记在Hibernate中连接表。连接表将存在于您的数据库中,但不存在于您的代码中,Hibernate知道如何处理它。
示例:
人类(作为关系的所有者):
@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;
编辑:
这个link将帮助您进行多对多XML映射。