当前位置: 首页 > 面试题库 >

如何在Hibernate中使用链接表映射多对多列表

从智志
2023-03-14
问题内容

我想使用链接表在Hibernate中映射多对多。我有两个类,例如Parent和Child类:

public class Parent{

private List<Child> _children;

//...getters and setters
}

我用三列的链接表(link_table) link_idparent_idchild_id。该数据库是SQL
Server,并且ID类型是uniqueidentifier。因此,我通常将guid用于id字段。

你怎么能实现这个使用 <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>

虽然我发现更好地使用注释。



 类似资料:
  • 我想使用XML映射在Hibernate中映射多对多的关系。 我有两个类,和。我想创建一个链接表女巫将包含复合键和3个额外的列

  • 您好,我有多对多映射,在联接表中有额外的列。表结构如下所示。 关系如下 链接 我创建了如下POJO类 Vendor.java 学生。爪哇 测试。爪哇 供应商est.java 供应商学生测试PK。爪哇 Hibernate映射文件,如下所示 vendor.hbm.xml vendor\u student\u测试。hbm。xml 大学生hbm。xml 测验hbm。xml 我刚开始Hibernate,这是

  • 我在数据表和通过data_user表链接的用户表之间有一个Hibernate ManyToMany映射。现在我想更新数据表,以便在数据中再添加一个用户。如何更新链接表(data_user)为新用户添加一个条目? NonUniqueObjectException:一个具有相同标识符值的不同对象已经与会话相关联。 PS:我对冬眠很陌生。

  • 我已经为这些列表创建了模型类,这些列表是我收到的对我的服务的响应 清单1 清单2 列表3是最后的列表,上面两个列表映射的结果,即我的服务的响应 清单3 这些列表与用户名和用户标签相连。我已将列表1的所有值映射到列表3。现在对于列表2,我需要检查每个userLabel是否在list3中存在一个userName等于userLabel的对象,如果为true,则totalUsers的值设置为list3的那

  • 问题内容: 我的数据库包含3个表:User和Service实体具有多对多关系,并与SERVICE_USER表联接在一起,如下所示: 用户-SERVICE_USER-服务 SERVICE_USER表包含附加的BLOCKED列。 执行这种映射的最佳方法是什么?这些是我的实体类 我遵循以下示例http://giannigar.wordpress.com/2009/09/04/m … using-jpa

  • 我已经尝试了表2的hibernate映射: 上面不起作用。在获取记录时,它试图从表2中获取表1中根本不存在的LOB代码