通过spring管理配置了事务管理,但是在执行过程中还是出现了异常:
Transaction not successfully started
修改为如下的方式则可以解决此问题:
Transaction not successfully started
以下三段代码均报了该异常。
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();
}
修改为如下的方式则可以解决此问题:
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();
}