首页 > 系统服务 > 详细

org.hibernate.TransientObjectException: The instance was not associated with this session解决方法

时间:2014-03-19 17:26:00      阅读:1349      评论:0      收藏:0      [点我收藏+]

出现这个异常的原因就是把一个瞬态对象当做持久化对象来操作了。解决的办法当然就是把对象持久化了,可以调用session的save() 或者saveOrUpdate()方法

下面来科普一下hibernate在对象中的三种状态:

简单的说一下就是这样子,

1、当一个对象被new了以后此对象处于瞬时态(Transient);
2、然后对此对象执行session的save() 或者saveOrUpdate()方法后,此对象被放入session的一级缓存进入持久态.
2、当再对此对象执行evict()/close()/clear()的操作后此对象进入游离态(Detached)
4、游离态(Detached)和瞬时态(Transient)的对象由于没有被session管理会在适当的时机被java的垃圾回收站(garbage)回收.
5、执行session的get()/load()/find()/iternte()等方法从数据库里查询的到的对象,处于持久态(Persistent).  
6、当对数据库中的纪录进行update()/saveOrUpdate()/lock()操作后游离态的对象就过渡到持久态 
7、处于持久态(Persistent)与游离态(Detached)的对象在数据库中都有对应的记录.
8、瞬时态(Transient)与游离态(Detached)的对象都可以被回收可是瞬时态的对象在数据库中没有对应的纪录,而游离态的对象在数据库中有对用的纪录。


org.hibernate.TransientObjectException: The instance was not associated with this session解决方法,布布扣,bubuko.com

org.hibernate.TransientObjectException: The instance was not associated with this session解决方法

原文:http://blog.csdn.net/exceptional_derek/article/details/21541231

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!