浏览 1303 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-09-05
一般情况下,使用SPRING的面向切面的事务管理容易出现这个问题,原因是在进入一个新的事务前取出的PO对象因为之前的事务结束对应的session会被关闭,这时的PO对象已经为游离状态,在下一个事务方法内如果打开了与其关联的对象那此对象会自动被加载,这样新的session中就会有一个PO对象和一个游离对象,如果此时操作之前的游离对象,那么就会出现这个错误,只要保证游离对象在此session内成为PO对象,就不会出现以上问题。举例: 方法a(){ Object c = ..从事务中取得后session关闭 b(c);调用方法b } 方法b(Object c){ Object d = ...从新session中取得d对象但d 对象关联加载了c对象 session.update(c) 此时就会出现如标题的错误 } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |