您的位置:首页 > 编程语言 > Java开发

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

2013-04-24 09:37 645 查看
通过spring管理配置了事务管理,但是在执行过程中还是出现了异常:
Transaction not successfully started

以下三段代码均报了该异常。
[java] view plaincopy 1.
public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{
String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";
this.getSession.createQuery(hql)
.setString(0, taProcInstObj_from2.getInststate())
.setInteger(1, taProcInstObj_from2.getRuntimes().intValue())
.setString(2, taProcInstObj_from2.getCompletetime())
.setString(3, taProcInstObj_from2.getProcinstid())
.executeUpdate();
}

2.
public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{
TransAction transAction = this.getSession().getTransAction();
transAction.begin();
String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";
this.getSession.createQuery(hql)
.setString(0, taProcInstObj_from2.getInststate())
.setInteger(1, taProcInstObj_from2.getRuntimes().intValue())
.setString(2, taProcInstObj_from2.getCompletetime())
.setString(3, taProcInstObj_from2.getProcinstid())
.executeUpdate();
transAction.commit();
}

3.
public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{
TransAction transAction = this.getSession().beginTransAction();
String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";
this.getSession.createQuery(hql)
.setString(0, taProcInstObj_from2.getInststate())
.setInteger(1, taProcInstObj_from2.getRuntimes().intValue())
.setString(2, taProcInstObj_from2.getCompletetime())
.setString(3, taProcInstObj_from2.getProcinstid())
.executeUpdate();
transAction.commit();
}

修改为如下的方式则可以解决此问题: [java] view plaincopy public void updateProcInstObj(TaProcInst taProcInstObj_from2) throws Exception{
Session session = this.getSession();
String hql = "update TaProcInst set inststate=?,runtimes=?,completetime=? where procinstid=? ";
session.createQuery(hql)
.setString(0, taProcInstObj_from2.getInststate())
.setInteger(1, taProcInstObj_from2.getRuntimes().intValue())
.setString(2, taProcInstObj_from2.getCompletetime())
.setString(3, taProcInstObj_from2.getProcinstid())
.executeUpdate();
session.flush();
session.clear();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐