hibernate3: object references an unsaved transient instance

来源:互联网 发布:java 条码枪的开发 编辑:程序博客网 时间:2024/05/13 09:12

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.

刚刚又出现了这个久违的BUG,这种类似的bug现在想来,都出现过好几次了,所相同的是,我每次都在瞎搞一通,花费了N多时间后,还让自己的心情搞坏,真是不应该。当然,自己心里也是发毛,每次在出现这种错误的时候。

其实,我现在乃至要做的是,每次在处理问题前,都要先弄清楚问题的根源或发生问题的根源是什么,先搞清楚这个,然后,再去想解决的办法,不论是什么问题。否则,只是费力不讨好。

上面的问题,当遇到时,应该把提示至少看一遍,然后,思考是怎么发生这个异常的。其实,我只要读一遍,也需都不要怎么思考,就会知道是因为我在保存ProjectVersion时,没有关联到相应的Project,即在ProjectVersion中没有Project对象的projectId值(projectId=0),所以,才会出现这样的错误。

而我每次在遇到这个问题时,首先被吓到了,因为是hibernate抛出的,在潜意识里认为自己对hibernate不熟。然后,我只读了第一句,还没读完,我只读了“object references an unsaved transient instance”,然后就开始找spring是怎样管理hibernate的。整了半天,也没有什么头绪,白白浪费了2个小时的时间。如果,克服这一点,我想我的效率又会有个进步。