您的位置:首页 > 其它

SSH之懒加载异常解决方案

2014-08-14 18:27 92 查看
1、设置成即时加载

2、查询语句使用join fetch

from Coupon coupon left join fetch coupon.users where coupon.id=:id

coupon的List<users> users属性是懒加载,但是查询结果需要users的内容,则使用 left join fetch

3、使用OpenSessionInViewFilter过滤器

web.xml

<!-- 以下是Spring的OpenSessionInView实现 ,唯一要求:放在struts2的过滤器前面-->
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
</filter-class>
<!-- 如果是singleSession=false的话, 就不会在每次的整个request的过程中使用同一个hibernate session,
而是每个数据访问都会产生各自的seesion,等于没有OpenSessionInView. -->
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<!-- 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory。
如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外。所以默认可以不写 -->
<init-param>
<param-name>sessionFactoryBean</param-name>
<param-value>sessionFactory</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- openSessionInViewFilter在struts2前面 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>


Done!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐