【问题标题】:TransientObjectException while saving the details to the database将详细信息保存到数据库时出现 TransientObjectException
【发布时间】:2011-04-14 16:55:23
【问题描述】:

“表 1”可以有多个“表 2”实例。 “表2”与“表A”一一对应。但是“表 A”的实例是由“表 B”创建的。 “表 1”不必总是有“表 2”条目。

表 2 有两列,分别为 tb1 和 tbA。 tb1 引用“表 1”的主键,tbA 引用“表 A”的主键。

如果先保存表 A 的数据,然后保存表 1 的数据,则它可以正常工作。但是,如果我正在保存表 1 的内容,该表具有到表 2 条目的映射并且表 A 条目尚未保存,我会得到一个 TransientObjectException。

我在 JAVA 中使用休眠和注释。我已经尝试了级联关联以及我可以在网络上找到的所有其他可能的解决方案。但是没有用。请务必提出一些想法。

示例:考虑表 1 = 人;表 2 = 归属;表 A = 汽车;表 B = 制造商。 一个人可以有很多车。 Car 具有 person_id(指 Person)和 car_id(Car)。一辆汽车绝对应该有一个制造商。现在在我的应用程序中,一个人将与制造商创建但未保存的汽车相关联(即尚未生成 car_id)。现在,当我将会话数据作为一个整体保存时(在我的情况下可以这样做),我希望先保存汽车数据,然后保存人数据 bcos,然后不会发生 TransientObjectException。关于如何实现这一点的任何建议。希望这个例子更好。

【问题讨论】:

标签: java hibernate orm annotations


【解决方案1】:

您的示例非常难以理解,显示一些(伪)代码可能会有所帮助。但根据我对您描述的理解,您的情况可能需要session.merge()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多