报错:org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.hp.pms.project.entity.Project
产生这个错误的原因:级联实体的主键id没有给赋值。如果级联实体不为null,则必须给其主键赋值,否则就会报以上错误。
解决方法1:给级联实体的主键赋值就好了。
(网上搜的)解决办法2:将many-to-one的级联设为: cascade="save-update,persist"或cascade=“all”。(谨慎使用cascade=“all”,因为在删除的时候会级联删除)
<many-to-one name="group" column="groupid" cascade="save-update,persist"></many-to-one>
参考博文:https://blog.csdn.net/sdyy321/article/details/5984226;
https://blog.csdn.net/u012159094/article/details/26073679
该博客主要讨论了在使用 Hibernate 进行数据操作时遇到的 'org.hibernate.TransientObjectException' 错误。错误的根本原因是级联实体的主键未赋值。解决方法包括手动为主键赋值或设置 Hibernate 的级联策略,如 cascade=save-update,persist。建议谨慎使用 'cascade=“all”',因为它可能导致不必要的数据删除。提供了详细的错误分析和两种解决方案供参考。

172

被折叠的 条评论
为什么被折叠?



