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

如何修复休眠状态“对象引用了未保存的瞬态实例-在刷新之前保存瞬态实例”错误

龙洛城
2023-03-14
问题内容

使用Hibernate保存对象时收到以下错误

object references an unsaved transient instance - save the transient instance before flushing

问题答案:

您应该在集合映射中包括cascade="all"(如果使用xml)或cascade=CascadeType.ALL(如果使用注释)。

发生这种情况是因为您的实体中有一个集合,并且该集合具有一个或多个数据库中不存在的项目。通过指定以上选项,您可以告诉hibernate在保存其父项时将它们保存到数据库中。



 类似资料:
  • 我有两个例子。一个是项目,一个是模块。< code >一对多关系。 我将模块设置到项目中。然后使用。第一次,因为数据库中没有记录,所以项目和模块可以保存到数据库中。然而,第二次,因为我不需要创建新项目,我只创建新模块,然后将模块设置回项目。 发生异常。 对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。 有什么办法可以解决这个问题吗谢谢

  • 上图显示了表之间的关系。 AddressType表包含静态值,如mailing、home、work等。 在AddressTypeRel模型类中,我有一个带有多对一注释的AddressType对象

  • 对象引用未保存的瞬态实例 - 在刷新错误之前保存瞬态实例 我有 3 个实体。我将使用一对多关系映射彼此实体。 产品收费详情有 燃料类型有 计算类型具有 我有一个问题,当我保存产品时,它抛出这样一个错误。我试着用@ManyToOne(cascade = CascadeType。ALL)到productChargeDetail,但是当我保存一个产品时,它显示一个来自应用程序的错误复制错误。FuelTy

  • 对象引用未保存的临时实例-在刷新之前保存临时实例。 我有一个2类组织实体和应用实体。组织和应用程序有多对多的关系。 组织实体 申请实体有 组织运作impl。JAVA 我的问题是,我是否使用applicationRepository保存applicationEntity。save(applicationEntity)也会像我的cascade类型一样保存组织。所有的一切都在现场定义。我犯了这个错误。

  • 我正在使用Seam Framework。我有2个实体: Request.java 和请求事件.java 当我进行此交易时: 我得到了这个错误:

  • 错误: 我还尝试了,但是 病因是什么?显然,我设置了nullable=true(在数据库中也是如此),尽管我有这个错误。有什么想法吗?