解决方法 严重: Servlet.service() for servlet default threw exception org.hibernate.TransactionException: T...

程序代码:

public List<WenshuInfo> findBySql(String sql) { log.debug("findBuSql WenshuInfo instances"); Transaction tran = null; Session session = HibernateSessionFactory.getSession(); try { tran = session.beginTransaction(); Query queryObject = session.createQuery(sql); session.flush(); tran.commit(); return queryObject.list(); } catch (RuntimeException re) { if (null != tran) { tran.rollback(); tran = null; } log.error("findBuSql failed", re); re.printStackTrace(); return null; } }

关键代码:return queryObject.list(); 放在了commit后面所以会出现下面的异常。

修改后的代码:

public List<WenshuInfo> findBySql(String sql) { log.debug("findBuSql WenshuInfo instances"); Transaction tran = null; Session session = HibernateSessionFactory.getSession(); try { tran = session.beginTransaction(); Query queryObject = session.createQuery(sql); List<WenshuInfo> list = queryObject.list(); session.flush(); tran.commit(); return list; } catch (RuntimeException re) { if (null != tran) { tran.rollback(); tran = null; } log.error("findBuSql failed", re); re.printStackTrace(); return null; } }

异常信息:

at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:149) at com.mylegist.lawgeneral.dao.WenshuInfoDaoIMP.findBySql(WenshuInfoDaoIMP.java:86) at com.mylegist.lawgeneral.service.WenshuInfoServiceIMP.findBySql(WenshuInfoServiceIMP.java:28) at com.mylegist.lawgeneral.action.WenshuAction.execute(WenshuAction.java:35) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值