尝试使用 Hibernate 保存对象时,您可能会遇到以下错误:
object references an unsaved transient instance - save the transient instance before flushing
了解错误
此错误表示您的实体中有一个集合,其中包含数据库中不存在的一个或多个项目。 Hibernate 要求其他实体引用的所有实体要么保存(持久化)在数据库中,要么标记为瞬态。
解决方案
此错误的解决方案是指定集合映射的级联选项。您可以使用 XML 或注释来执行此操作:
XML:
<collection name="collectionName" cascade="all"> ... </collection>
注释:
@OneToMany(cascade = CascadeType.ALL) private List<ChildEntity> collectionName;
解释
作者指定cascade="all" 或CascadeType.ALL 选项,指示Hibernate 在保存父实体时将集合中的所有实体保存到数据库中。这可确保所有引用的实体都保留在数据库中并解决错误。
以上是如何解决 Hibernate 的'对象引用未保存瞬态实例”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!