日期:2014-05-20  浏览次数:20617 次

关于lazy的问题..
hibernate:
我有区县和街道两个表.是一对多和多对一关系.
bean映射文件class中lazy不设的时候
用DWR配置了两个convert..是区县和街道
在取区县list或街道list的时候就会报错.
可是加了lazy为false就会影响性能..
这个问题请问怎么解决?


------解决方案--------------------
如果lazy为true的时候,当你在session之外获取关联数据的时候,会出现session close错误
解决方法

1 配置openSessionView来解决这个问题,网上有很多配置的例子,非常简单,就在web.xml中加个filter,不过这里可能会影响性能,因为session不关闭的话,可能数据库的连接就一直不会关闭

2 配置lazy为false,这样会影响性能,因为所有的查询这里都会把关联查询出来

3 在需要的时候不通过get获取数据,而是用 left join fetch collection 来关联抓取,也就是说改变这个业务的查询方式为fetch抓取方式