事务今天弄了一下午,数据能正常提交但是,提交完了之后就是报错,后来终于找到原因希望对大家有所帮助
Session session=this.getSessionFactory().getCurrentSession();
Transaction transation = session.beginTransaction();
try {
MesXtpzXcxtb obj=new MesXtpzXcxtb(object.getId()+"01","属性", sjbh,0L,1L, "属性",
new Date(),xgr ,new Date(),xgr, 0);
MesXtpzXcxtb obj1=new MesXtpzXcxtb(object.getId()+"02","监测点", sjbh,0L,2L, "监测点",
new Date(),xgr ,new Date(),xgr, 0);
MesXtpzXcxtb obj2=new MesXtpzXcxtb(object.getId()+"03","故障类型", sjbh,0L,3L, "故障类型",
new Date(),xgr ,new Date(),xgr, 0);
MesXtpzXcxtb obj3=new MesXtpzXcxtb(object.getId()+"04","运行信号", sjbh,0L,4L, "运行信号",
new Date(),xgr ,new Date(),xgr, 0);
session.save(object);
session.save(obj);
session.save(obj1);
session.save(obj2);
session.save(obj3);
session.flush();
-------------------------------------------//transation.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
flag=false;
e.printStackTrace();
transation.rollback();
}
finally
{
//session.close();
}
return flag
;
-------------------------------------------//transation.commit();
关键点就在于红色部分,把commit 注释掉就好了,因为大多数的事务的配置在数据库中都配置好了,包括哪些方法名开头的事务。