object references an unsaved transient instance - save the transient instance before flushing: com.innov8tion.pml.project.domain.Project; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.innov8tion.pml.project.domain.Project is required.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
剛剛又出現了這個久違的BUG,這種類似的bug現在想來,都出現過好幾次了,所相同的是,我每次都在瞎搞一通,花費了N多時間後,還讓自己的心情搞壞,真是不應該。當然,自己心裏也是發毛,每次在出現這種錯誤的時候。
其實,我現在乃至要做的是,每次在處理問題前,都要先弄清楚問題的根源或發生問題的根源是什麼,先搞清楚這個,然後,再去想解決的辦法,不論是什麼問題。否則,只是費力不討好。
上面的問題,當遇到時,應該把提示至少看一遍,然後,思考是怎麼發生這個異常的。其實,我只要讀一遍,也需都不要怎麼思考,就會知道是因爲我在保存ProjectVersion時,沒有關聯到相應的Project,即在ProjectVersion中沒有Project對象的projectId值(projectId=0),所以,纔會出現這樣的錯誤。
而我每次在遇到這個問題時,首先被嚇到了,因爲是hibernate拋出的,在潛意識裏認爲自己對hibernate不熟。然後,我只讀了第一句,還沒讀完,我只讀了“object references an unsaved transient instance”,然後就開始找spring是怎樣管理hibernate的。整了半天,也沒有什麼頭緒,白白浪費了2個小時的時間。如果,克服這一點,我想我的效率又會有個進步。