2 lzx longyou lzx_longyou 于 2016.01.31 00:27 提问

Struts2和Hibernate框架整合开发,怎么扩大hibernate的session的生命周期 10C

最近学了Struts2,想和之前学的Hibernate整合在一起,自己做一个项目联系。之前单独用Hibernate框架,为了解决Hibernate懒加载的问题,是使用了OpenSessionInView的方式,即定义一个过滤器,在过滤器中打开session,开启事务。并进行了try..catch..,当发生已成的时候,可以再过滤器进行捕获,然后事务回滚。 但是如今要加上Struts2,Struts2已经有自带的异常处理了,这样子action中出的异常就无法被OpenSessionInView这个filter捕获了,那么事务就无法回滚了。这样子可能导致业务逻辑出错。如果不使用OpenSessionInView,直接在dao中开启session,关闭session。又会出现懒加载的问题。求高手指点该怎么解决。这里没有使用Spring的事务管理。
我目前的想法是自己写一个struts2拦截器,在拦截器中开启事务,处理异常。捕获异常时进行回滚,然后再抛出,让Struts2的异常拦截器处理。有没有其他好的方法?

2个回答

devmiao
devmiao   Ds   Rxr 2016.01.31 06:59
lzx_longyou
lzx_longyou 看了您给的文章,讲得是在Spring下的做法。我现在还没学到Spring,有没有其他好的解决方法。
接近 2 年之前 回复
Mr_li13
Mr_li13   2016.01.31 10:03

以前解决过这个问题你要我给你。

lzx_longyou
lzx_longyou 好呀,可以发我邮箱吗? 450738470@qq.com, 谢谢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!