浏览 5842 次
锁定老帖子 主题:Spring中一对多关系的的疑问
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-03-25
public List fetchChilds(Parent parent);{ getHibernateTemplate();.initialize(parent.getChilds(););; return parent.getChilds();; } 但是调用这个方法的时候一直出现一下异常: disconnected session; nested exception is net.sf.hibernate.HibernateException: disconnected session" type="org.springframework.orm.hibernate.HibernateSystemException">org.springframework.orm.hibernate.HibernateSystemException: disconnected session; nested exception is net.sf.hibernate.HibernateException: disconnected session net.sf.hibernate.HibernateException: disconnected session 小弟初学,请不吝赐教,先谢谢了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-03-25
要先refresh一下,然后才能initialize。
session.refresh(parent);; Hibernate.initialize(parent.getChildren);; |
|
返回顶楼 | |
发表时间:2005-03-31
robbin 写道 要先refresh一下,然后才能initialize。
session.refresh(parent);; Hibernate.initialize(parent.getChildren);; 请教一下,为什么要 refresh 一下呢?什麽情况下用 Refresh 操作? |
|
返回顶楼 | |
发表时间:2005-03-31
tommy_kin 写道 public List fetchChilds(Parent parent){ getHibernateTemplate().initialize(parent.getChilds()); return parent.getChilds(); } 这是非常错误的做法,应该改为: public List fetchChilds(Parent parent){ return getHibernateTemplate().find("select p.childs from Parent as p"); } |
|
返回顶楼 | |
发表时间:2005-04-01
最近在改成srping 1.2版時,也一直遇到lazy init的問題
可不可以請教一下,一般來說,什麼時間要用lazy init 而且要怎樣正確的在spring裡init lazy collection(proxy) 那spring裡的open session in view的filter跟interspector又是做啥用的? 謝謝!~ |
|
返回顶楼 | |
发表时间:2005-04-01
原因是这样的:
getHibernateTemplate()中使用的sesssion可能和最近一次getHibernateTemplate()调入parent时的session不是同一个 如何保证用同一个session呢?spring提供了两个解决方案: 第一:用它的HibernateTransactionManager,把你的service方法声明为transcation的就可以保证两次DAO中用的是同一个session,我们现在就是用这种方式; 第二:用HibernateInterceptor,这个没仔细研究。 不对的请纠正和补充。 |
|
返回顶楼 | |