尝试使用 Hibernate 保存对象时,可能会遇到以下错误:
object references an unsaved transient instance - save the transient instance before flushing
理解错误
此错误表示您的实体中有一个集合,其中包含数据库中不存在的一个或多个项目。 Hibernate 要求其他实体引用的所有实体要么保存(持久化)在数据库中,要么标记为瞬态。
解决方案
此错误的解决方案是指定集合映射的级联选项。您可以使用 XML 或注释来执行此操作:
XML:
...
注解:
@OneToMany(cascade = CascadeType.ALL) private ListcollectionName;
Explanation
通过指定cascade="all"或CascadeType.ALL选项,指示Hibernate保存集合中的所有实体保存父实体时到数据库。这可确保所有引用的实体都保留在数据库中并解决错误。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3