【问题标题】:Error: "Object references an unsaved transient instance " but I can't persist that object错误:“对象引用了未保存的瞬态实例”,但我无法保留该对象
【发布时间】:2014-12-19 10:39:34
【问题描述】:

我收到此错误:

org.hibernate.TransientObjectException:对象引用了一个未保存的瞬态实例 - 在刷新之前保存瞬态实例

我之前没有保存的对象是这样的:

@ManyToOne(fetch = FetchType.EAGER, cascade =  {CascadeType.MERGE, CascadeType.REFRESH})
@JoinColumn(name="ID_USUARIO_RECLAMA", referencedColumnName = "CODPERSONA")
private Personas idUsuarioReclama;

我无法将 CascadeType 更改为 All,因为此对象位于另一个我无权写入的方案中。

有什么想法吗?

谢谢

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    我认为 Hibernate 不会允许你持久化你试图持久化的对象,直到有一个对象拥有它的外键。

    因此,您尝试保留的对象 A 引用了角色 B,但 B 不存在。

    也许引用 Personas 的外键不能为空。在那种情况下,如果不先保存 B,就不可能保存 A。

    如果 Personas 的外键可以为 null,则只有在外键不引用任何内容时才可以编写它,然后在需要时编写外键,但 Hibernate 不允许您破坏引用完整性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2021-06-26
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2020-06-24
      相关资源
      最近更新 更多