HibernateDaoSupport getSession()不能释放资源的问题及解决方法
精选 转载HibernateDaoSupport getSession()不能释放资源的问题及解决方法
核心提示:1、使用手动释放资源: Sessionsession=getSession(); //代码 //Queryquery=session.createQuery(hql); //query.list(); releaseSession(session); 另外还可以用getHibernateTemplate()来代替。 2、使用注解@Transactional管理事务 这个需要注解驱动: tx:an
1、使用手动释放资源:
1. Session session = getSession();
2. //代码
3. //Query query= session.createQuery(hql);
4. //query.list();
5. releaseSession(session);
另外还可以用getHibernateTemplate()来代替。
2、使用注解@Transactional管理事务
这个需要注解驱动:
1. <tx:annotation-driven transaction-manager="transactionManager"
2. proxy-target-class="true" />
在使用类或者方法上用@Transactional注解即可。
3、不使用注解来管理事务,使用声明式事务管理
1. <tx:advice id="txAdvice" transaction-manager="transactionManager">
2. <tx:attributes>
3. <tx:method name="get*" read-only="true" />
4. <tx:method name="*" />
5. </tx:attributes>
6. </tx:advice>
7. <aop:config>
8. <aop:pointcut id="MyDaoOperation"
9. expression="execution(* x.y.dao.MyDAO.*(..))" />
10. <aop:advisor advice-ref="txAdvice" pointcut-ref="MyDaoOperation" />
11. </aop:config>
或者
1. <aop:config>
2. <aop:pointcut id="daoOperation"
3. expression="execution(* x.y.dao.*.*(..))" />
4. <aop:advisor advice-ref="txAdvice" pointcut-ref="daoOperation" />
5. </aop:config>
其他事务配置方法参考spring文档或
4、添加openSessionInView,该方法没有亲自测试。
注:1、2、3种方法亲自测试过可以使用,最好的方法是配置spring事务,如果存在
HibernateDaoSupport getSession()连接占用问题,就要检查其spring事务管理的配置是否正确。
下一篇:Java读取pdf实例
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
selenium遇到的问题及解决方法
selenium
chrome Chrome 解决方法 -
android程序问题及解决方法
android编译运行常见问题及解决方法
android thread import image system -
部署zeus常见的问题及解决方法
部署zeus常见的问题及解决方法
docker 容器 运维