问题标签 [hibernate-onetomany]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1605 浏览

spring - 使用一对多映射保存对象时出现 Spring + Hibernate id 问题

我在使用 Hibernate 4 和 Spring 3 时遇到问题。我也在使用 BoneCP。我正在尝试保存包含许多图像的文章,并且效果很好。但是,当我尝试获取任何图像的 ID 时,它返回 0。但是,在数据库中,一切都保存得很好。我猜问题出在关系持续存在或我对 Hibernate 的理解中,因为执行后 id 是有效的,但我找不到它。

我的文件: spring-hibernate.xml

AbstractDAO.java

ImageDAO.java

文章DAO.java

图像.java

文章.java

我正在使用以下代码进行测试:

数据库查询:

编辑:

如果我尝试获取文章 a 的 ID,它会返回有效的 id (1)。

0 投票
1 回答
74 浏览

nhibernate - 流利的 nhibarnate 不会删除 orpahns

我发现了一些类似的线程,但都得到了我的代码作为答案。

我正在使用一对多关系。

父映射:

孩子是:

父亲有一个孩子的名单。一切正常 - 插入和更新。但是由于某种原因,当我清空父亲中的列表或只想删除列表项时,它不会从数据库中删除子项。即使列表为空。

这就是我更新的方式:

我在这里做错了吗?

0 投票
9 回答
36398 浏览

json - Hibernate @OneToMany 关系导致无限循环或 JSON 结果中的空条目

我有两个实体,一个实体“电影”和一个实体“剪辑”,每个剪辑属于一部电影,一部电影可以有多个剪辑。

我的代码如下所示:

正在生成表格,每个剪辑都有一列“movie_id”,但这会导致我的应用程序在我请求数据时进入无限循环

当我请求剪辑时,结果相同。

当我将其更改为 @ManyToMany 关系时,不会出现任何这样的问题,但这不是我需要的。你能帮助我吗?将 fetchType 设置为 Lazy 不起作用。

编辑:我正在使用当前的 JBoss 开发工作室

编辑:

通过阅读这篇文章,我“解决了”这个问题:

http://blog.jonasbandi.net/2009/02/help-needed-mapping-bidirectional-list.html

“要将双向一对多映射,将一对多作为拥有方,您必须删除 mappedBy 元素并将多对一 @JoinColumn 设置为可插入且可更新为 false。此解决方案显然未优化并且会产生一些额外的 UPDATE 语句。”

当我请求一部电影时,我得到以下答案:

{"id":1,"version":1,"name":"MGS Walkthrough","filename":"video.mp4","movieCategories":[{"id":1,"version":1, "name":"Walkthrough"}],"clips":[],"description":"Trailer zu mgs4"}

条目“剪辑”仍然出现。这仍然是错误的解决方案还是我只能忍受这个?

0 投票
1 回答
4358 浏览

hibernate - 在一对多映射中使用休眠条件(以行表列作为搜索条件之一的搜索标题表)

我有两个类 InvoiceHeader 和 InvoiceLine,它们之间具有一对多(一个 InvoiceHeader 映射到多个 InvoiceLine)映射。

现在我想根据 InvoiceHeader.title 和 InvoiceLine.itemId 搜索 InvoiceHeaders。有没有办法我可以使用休眠标准来搜索它。基本上在使用休眠标准时,我不确定如何将 InvoiceLine.itemId 放入 InvoiceHeader 的标准中。如果使用标准无法做到这一点,请建议我采取其他方法。

提前致谢

0 投票
1 回答
813 浏览

nhibernate - 查询时 NHibernate HasMany List 保持为空

我有一个奇怪的问题:每当我查询具有 IList 的实体时,它仍然是空的。可以查询语言实体本身...这与我的复合键有关吗?

NHProf 显示 BOTH 实体都被 sql 查询,但由于某种原因,结果没有链接:-/

这是一些代码:

对应的映射:

为了完整起见,这就是“语言”的映射方式:

无论我改变什么,我的员工实体总是显示language = {}!?这真的让我发疯,我找不到错误。我确保执行查询语言的 sql!我确保数据在数据库中。而且因为我使用的是fluent,我还检查了创建的hmb:

希望有人可以对此有所了解...在此先感谢!

问候,马丁

0 投票
1 回答
1079 浏览

hibernate - 具有外键的单向 OneToMany 不会插入到表中

我有以下课程:

'PARENT_ID' 是“CHILD”表中的外键。因此它使“CHILD”表具有 2 列形成其 PRIMARY_KEY。

我执行以下插入:

如果两个表都是空的,它会通过分配 PARENT_ID 正确创建“父”和“子”!但是如果表中已经存在“子”条目,它会执行更新而不是插入!

请注意,两个“孩子”具有相同的“类型”(“1,2,3,4”),但它们应该具有不同的“PARENT_ID”。

我在这里想念什么???

谢谢 !

0 投票
1 回答
435 浏览

java - 休眠 OneToMany 和 ManyToOne?

在 Hibernate 中,您可以分别指定一对多或反向多对一的通孔@OneToMany@ManyToOne注释。但是在我看到的示例中,每次将 A 与 B 关联时,您还需要将 B 与 A 关联。例如,如果Teacher与(一个老师可以教很多课程)有一对多的关系Course,我是否需要:

也:

还是仅将它们单向关联就足够了(从而允许您选择上述一组关系)?换句话说,我可以通过以下方式将它们联系起来:

为什么/为什么不?提前致谢!

0 投票
3 回答
945 浏览

java - 无法在休眠中删除 OneToMany 关系的实例

我有一个 OneToMany 关系,我可以插入记录但不能删除它们,当我尝试删除它时会遇到“外键约束失败”错误。我已经使用以下级联删除孤儿,但还没有工作。

父类的成员具有以下 getter

成员类的父类具有以下 getter

我也使用了以下注释但没有用

我的休眠依赖如下

我删除消息的代码

0 投票
1 回答
620 浏览

nhibernate-mapping - 在休眠中以一对多关系从父表中删除记录

我有以下情况:一张客户表可以有很多项目。这种关系是双向的。

我正在尝试从客户列表中删除客户,如果客户已经分配了一些项目,我得到了一个例外:

“我无法删除或更新父行:外键约束失败”

这意味着我必须先删除相关项目。

但是,我需要针对这种情况的解决方案,并且我认为问题与映射文件有关。以下是映射文件:

还有孩子:

0 投票
2 回答
3914 浏览

hibernate - 休眠 4.2 OneToMany EntityNotFoundException

我遇到了一个在 SO 上似乎很普遍但找不到解决方案的异常。

我有两节课。DocumentKeyword。每个文档都包含许多关键字。

可能会使事情复杂化,这些类用于使用 Moxy 解组 xml 文档。我假设@XmlTransient不会干扰休眠。

这是Document.java

这是Keyword.java

保存时遇到的例外Document是,

将不胜感激任何帮助,谢谢。/w