spring管理hibernate事务报异常--Transaction not successfully started解决方法

通过spring管理配置了事务管理,但是在执行过程中还是出现了异常:
Transaction not successfully started

以下三段代码均报了该异常。

[java]  view plain copy
  1. 1.  
  2. public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{  
  3.         String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";  
  4.         this.getSession.createQuery(hql)  
  5.             .setString(0, taProcInstObj_from2.getInststate())  
  6.             .setInteger(1, taProcInstObj_from2.getRuntimes().intValue())  
  7.             .setString(2, taProcInstObj_from2.getCompletetime())  
  8.             .setString(3, taProcInstObj_from2.getProcinstid())  
  9.             .executeUpdate();  
  10.     }  
  11.   
  12. 2.  
  13. public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{  
  14.     TransAction transAction = this.getSession().getTransAction();  
  15.     transAction.begin();  
  16.         String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";  
  17.         this.getSession.createQuery(hql)  
  18.             .setString(0, taProcInstObj_from2.getInststate())  
  19.             .setInteger(1, taProcInstObj_from2.getRuntimes().intValue())  
  20.             .setString(2, taProcInstObj_from2.getCompletetime())  
  21.             .setString(3, taProcInstObj_from2.getProcinstid())  
  22.             .executeUpdate();  
  23.     transAction.commit();  
  24.     }  
  25.   
  26. 3.  
  27. public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{  
  28.     TransAction transAction = this.getSession().beginTransAction();  
  29.         String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";  
  30.         this.getSession.createQuery(hql)  
  31.             .setString(0, taProcInstObj_from2.getInststate())  
  32.             .setInteger(1, taProcInstObj_from2.getRuntimes().intValue())  
  33.             .setString(2, taProcInstObj_from2.getCompletetime())  
  34.             .setString(3, taProcInstObj_from2.getProcinstid())  
  35.             .executeUpdate();  
  36.     transAction.commit();  
  37.     }  

修改为如下的方式则可以解决此问题:

  1. public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{  
  2.         Session session = this.getSession();  
  3.         String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";  
  4.         session.createQuery(hql)  
  5.             .setString(0, taProcInstObj_from2.getInststate())  
  6.             .setInteger(1, taProcInstObj_from2.getRuntimes().intValue())  
  7.             .setString(2, taProcInstObj_from2.getCompletetime())  
  8.             .setString(3, taProcInstObj_from2.getProcinstid())  
  9.             .executeUpdate();  
  10.         session.flush();  
  11.         session.clear();  
  12.     }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值