1.object references an unsaved transient instance save the transient
instance before flushing
[2010-04-21]
產(chǎn)生此問題的原因:
映射關(guān)系錯誤. 當然在其他情況也可能出現(xiàn)這種錯誤.
比較常見的一種情況:所操作的對象中關(guān)聯(lián)著其他對象,而且關(guān)聯(lián)的對象id沒有賦值。
例:刪除一條記錄時(deleteObject),deleteObject中關(guān)聯(lián)著另一個對象(otherObject)。在刪除deleteObject對象時對其賦id,如果是單表操作應(yīng)該對otherObject賦值null,消除該異常。
2.net.sf.hibernate.UnresolvableObjectException: No row with the given identifier exists:
[2010-04-27]
產(chǎn)生此問題的原因:
數(shù)據(jù)問題。例如查詢的對象中many-to-one關(guān)聯(lián)的對象數(shù)據(jù)庫中不存在,或關(guān)聯(lián)對象中本身所含的對象數(shù)據(jù)庫中已不存在。(一句話,就是數(shù)據(jù)問題)。產(chǎn)生原因很多,例如數(shù)據(jù)刪除沒有級聯(lián),人為干擾都可能造成這個問題。
例:net.sf.hibernate.UnresolvableObjectException: No row with the given identifier exists: 146, of class: com.company.entity.BmZd
查詢中關(guān)聯(lián)到一個值為146的Bmzd對象,但數(shù)據(jù)庫Bmzd對應(yīng)的表中已經(jīng)不存在id為146的記錄了。