我想使用链接表在Hibernate中映射多对多。我有两个类,例如Parent和Child类:
public class Parent{ private List<Child> _children; //...getters and setters }
我用三列的链接表(link_table) link_id,parent_id和child_id。该数据库是SQL Server,并且ID类型是uniqueidentifier。因此,我通常将guid用于id字段。
link_id
parent_id
child_id
你怎么能实现这个使用 <list />标签,如果这是要使用正确的标签?您知道有什么好的文档可以做到这一点吗?
<list />
我目前正在获取ConstraintViolationException,但找不到任何好的文档或示例。
我认为主要问题是:如何指定link_id要在链接表中自动生成的。
我认为不可能(或没有必要)将link_id主键添加到联接表中。连接表通常将由两个参与表的主键组成。
使用XML,您将需要这样的语法:
<class name="Parent"> .... <list name="children" table="link_table"> <key column="parent_id"/> <many-to-many column="child_id" class="Children"/> </list> ... </class> <class name="Child"> ... <list name="parents" inverse="true" table="link_table"> <key column="child_id"/> <many-to-many column="parent_id" class="Parent"/> </list> ... </class>
虽然我发现更好地使用注释。