gpt4 book ai didi

java - 在 hibernate 中处理一对多关系

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:36 25 4
gpt4 key购买 nike

我仍在学习 hibernate 可以做什么,这次我正在尝试一些似乎不起作用的东西。我有 2 个表 users 和contacts。你可以猜测联系人通过将 user_id 作为外键来保持关系。这是两个映射文件的片段。第一个来自 users.hbm.xml

<set name="contactsdetails">
<key column="userId"/>
<one-to-many class="Domain.Contacts"/>
</set>

这个来自contacts.hbm.xml

<many-to-one class="Domain.Users" name="userId"/>

虽然一切正常,我的意思是配置、映射文件端以及从 UsersDAO 插入用户表,但我想同时插入用户和联系人。意思是我创建我的用户对象并为各种属性分配值,创建一个或一组联系人并为其分配各种属性,最后在保存用户对象之前将其添加到用户的 contactdetails 设置属性中。当我尝试这样做时,我意识到这有点奇怪,因为联系人 userId 属性是用户类型,所以我将用户添加到联系人或每个联系人对象,然后在保留用户对象之前将相同的联系人对象添加到用户的 contactdetails 属性中。我确定我错过了一些东西,我'当我尝试时,我遇到了 nullpointerexcpetion。你能告诉我该怎么做吗?感谢您的阅读

最佳答案

当实体 A 指向实体 B,实体 B 指向实体 A 时,您就拥有了 hibernate 所谓的双向映射。这些可能很棘手,你必须小心,并告诉 hibernate 一方“拥有”这种关系。

参见the Bidirectional associations section of the hibernate docs关于如何管理这些协会。

关于java - 在 hibernate 中处理一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com