如何修复休眠“对象引用未保存的瞬态实例 - 刷新前保存瞬态实例”错误
当我使用休眠保存对象时收到以下错误
object references an unsaved transient instance - save the transient instance before flushing
当我使用休眠保存对象时收到以下错误
object references an unsaved transient instance - save the transient instance before flushing
您应该在集合映射中包含(如果使用 xml)或(如果使用批注)。cascade="all"
cascade=CascadeType.ALL
发生这种情况是因为实体中有一个集合,并且该集合具有数据库中不存在的一个或多个项。通过指定上述选项,您可以告诉休眠在保存其父级时将它们保存到数据库中。
我相信这可能只是重复的答案,但只是为了澄清,我在映射和.在这两种情况下,事实是我添加到 的对象尚未保存在数据库中。因此,当我将 添加到 中,然后保存 时,休眠会在保存父级时抛出消息。@OneToOne
@OneToMany
Child
Parent
Child
Parent
Parent
"object references an unsaved transient instance - save the transient instance before flushing"
在引用中添加,解决了两种情况下的问题。这节省了 和 .cascade = {CascadeType.ALL}
Parent's
Child
Child
Parent
很抱歉任何重复的答案,只是想进一步澄清给人们。
@OneToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "performancelog_id")
public PerformanceLog getPerformanceLog() {
return performanceLog;
}