浏览 6863 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-27
1.在hibernate中,对user查询后能得到地址的相关信息(前提是对user进行查询后session不能关 闭,否则也会和spring+hibernate中报一样的错) 2.在spring+hibernate中就会报错,failed to lazily initialize a collection of role: com.bean.User.address, no session or session was closed,把user.hbm.xml中的lazy改成flase了就正常了,但把lazy改成flase了延迟加载就不起作用了,带了不必要的性能消耗,不知道这个问题怎么解决,请各位高手看看该怎么弄.配置文件如下: user.hbm.xml <!--省略--> <set name="address" table="address" lazy="true" inverse="true" cascade="all"> <key column="userid"/> <one-to-many class="com.bean.Address"/> </set> <!--省略--> address.hbm.xml <!--省略--> <many-to-one name="user" class="com.bean.User" column="userid"/> <!--省略--> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-27
这样的情况应该采用OpenSessionInView模式了吧。
比如Spring提供了一些工具可以让我们运用上OpenSessionInView,具体的实施办法可以搜索论坛或者google。 |
|
返回顶楼 | |
发表时间:2006-12-27
Allen 写道 这样的情况应该采用OpenSessionInView模式了吧。
OpenSessionInView在web.xml中也配置了,还是不行,搜了一下到是有这方面的问题,但都没有解决的,郁闷啊.
比如Spring提供了一些工具可以让我们运用上OpenSessionInView,具体的实施办法可以搜索论坛或者google。 |
|
返回顶楼 | |
发表时间:2006-12-27
如果你事先知道在页面需要用到某些关联对象,可以在查询时抓取好这些对象,象这样:
select u from User u left join fetch u.address where u.id = ... 可以抓取一方,也可以抓取多方的集合。这样可以将多次查询并为一次,也能提高效率。 |
|
返回顶楼 | |
发表时间:2006-12-28
hibernate官方网站有关于OpenSessionInView的详细资料
|
|
返回顶楼 | |
发表时间:2006-12-29
wtb 写道 hibernate官方网站有关于OpenSessionInView的详细资料 一定的好好看看啊
|
|
返回顶楼 | |
发表时间:2007-01-25
Hibernate.initialize(user.getAddress())强制加载关联对象
|
|
返回顶楼 | |