hibernate 批处理不能正常提交 ,transatlantic not successfully started

本文探讨了在处理事务时遇到的问题,即数据能正常提交但提交后出现错误的情况。通过实例展示了如何识别并解决这个问题,关键在于在特定情况下避免使用commit操作。文章提供了详细的代码片段和解决方案,帮助开发者理解并解决类似问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务今天弄了一下午,数据能正常提交但是,提交完了之后就是报错,后来终于找到原因希望对大家有所帮助

 

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 注释掉就好了,因为大多数的事务的配置在数据库中都配置好了,包括哪些方法名开头的事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值