您的位置:首页 > 编程语言 > Java开发

hibernate的load查询单个对象no session问题

2014-12-15 14:35 309 查看
public User get(Long id){
return this.getHibernateTemplate().get(User.class, id);
}
public User load(Long id){
return this.getHibernateTemplate().load(User.class, id);
}

以上两个方法get立即加载,如果获得对象不存在返回null,load延迟加载,如果要查询的对象不存在报异常。

load方法存在no session问题,因为是延迟加载的,所以这句代码执行完之后并没有去查数据,但前天页面真正用到数据时他才去查,可这时session就已经关闭了,所以就报异常了。可以通过在web.xml配置文件中添加

<filter>

<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

即可。

注意这个过滤器要添加在struts.xml之前。

这个不是最好的解决办法,后期再写吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cache session filter java
相关文章推荐