处理hibernate懒加载出现的no session

来源:互联网 发布:在淘宝上买衣服还赚吗 编辑:程序博客网 时间:2024/06/07 09:43

在使用hibernate过程中,我们在service层进行了事务管理,等方法执行完,事务提交了,这个时候session就会关闭。等到了web层,我们组建json数据的时候,因为懒加载的缘故,这个时候他要使用一些数据,这些数据又要去查询数据库,因为session已经关闭了,所以这个时候会抛出异常,no session问题就这样出现了。

遇到这种问题,我的解决方案一般有三个(其实也可以说成两个安静

方法一:关闭懒加载(不推荐,但是具体情况根据业务)

方法二:排除不需要加载的属性,因为有些时候他要使用的属性可能我们组装json根本不需要,那么这个时候排除更好(相对于方法三可以减少查询数据库)

JsonConfig jsonConfig = new JsonConfig();jsonConfig.setExcludes(excludes);JSONArray jsonArray = new JSONArray();String json = jsonArray.fromObject(list,jsonConfig).toString();


方法三:配置过滤器

1:当使用hibernate的时候,在spring配置文件中存在sessionFactory的时候

<filter><filter-name>Spring OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><init-param><!-- 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory 如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外 --><param-name>sessionFactoryBean</param-name><param-value>sessionFactory</param-value></init-param></filter><filter-mapping><filter-name>Spring OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

2:当使用jpa的时候,在Spring配置文件中存在entityManagerFactory

<filter>            <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>            <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>            <!-- <init-param>            指定org.springframework.orm.jpa.LocalEntityManagerFactoryBean在spring配置文件中的名称,默认值为entityManagerFactory            如果LocalEntityManagerFactoryBean在spring中的名称不是entityManagerFactory,该参数一定要指定,否则会出现找不到entityManagerFactory的例外                <param-name>entityManagerFactoryBeanName</param-name>                <param-value>entityManagerFactory</param-value>            </init-param>  -->        </filter>        <filter-mapping>            <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>            <url-pattern>/*</url-pattern>        </filter-mapping>




阅读全文
0 0
原创粉丝点击