近日在項目中遇到以下錯誤,着實郁悶了一把:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing:com.dhcc.itsm.base.model.User。
這主要是在ManyToOne時遇到的,百度之,發現原因如下:
new了一個新對象,在未保存之前將它保存進了一個新new的對象(也即不是持久態)。
解決辦法是在保存或更新之前把這個對象查出來(這樣就是一個持久態)。
但是后來發現同一個model里面有好幾個ManyToOne,而且其標注都是:@ManyToOne(fetch=FetchType.LAZY,optional=true) 但是其中一個必須要先查,而其他的就不需要。這個問題先留這里,回頭查找原因再補上。
帖子地址:http://topic.csdn.net/u/20081218/12/e74bac38-adfe-4630-aca0-700aa13a5d98.html?482827828