org.hibernate.TransientObjectException: object references an unsaved transient instance

报错: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

原文地址:https://www.cnblogs.com/xmm2017/p/13943853.html