今天在测试 transaction(使用事务进行管理)的时候, 总报错: Transaction not successfully started

  可能有多种原因, 这位哥们总结得很好: Transaction not successfully started

  我的原因是, 将进行commit提交后,再rollback.

  正确的做法, 应该是先rollback, 如下是完整的代码:

@Testpublic void saveTest() {Boolean prepared = false;SessionFactory factory = null;Session s = null;Transaction t = null;try {factory = HibernateUtil.getSessionFactory();s = factory.getCurrentSession();t = s.beginTransaction();Monitor m = new Monitor();m.setFenceId("9f005029-7c0d-45d3-96c1-006d1cf94332");m.setIMEI("862950025795124");m.setAlllowStatus("锁");Date now = new Date();m.setAllowFrom(now);m.setAllowTo(now);s.save(m);prepared = false;    //表示事务的前一部分还没做好准备.//若前一部分的事务还没准备好,则整个事务取消.if(!prepared) {if(null != t) {
System.out.println("try rollback...");                    t.rollback();}}} catch (Exception e) {if(t != null)t.rollback();}finally {//在finally中进行提交.if(null != t)t.commit();}}

  暂时还没有好的解决方案, 因为文档的例子, 是在catch exception的时候, rollback, 而在try 语句中进行commit.

  但是我这个代码, 能满足我的需求.

转载于:https://www.cnblogs.com/listened/p/4460352.html

hibernate - Transaction not successfully started相关推荐

  1. 问题解决08使用Hibernate框架报错:Transaction not successfully started--解决方案如下:...

    问题描述: 使用Hibernate框架,调用delete(Object obj)方法时,添加了事务还是报Transaction not successfully started的错误,如下: 原代码如 ...

  2. hibernate3连接mysql8报错_MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction...

    2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm ...

  3. SSH框架,Linux环境里项目问题解决: Could not roll back Hibernate transaction;TransactionException: JDBC rollback

    介绍:       ssh开发的项目,放到Linux上如果8个小时不进行任何操作,则会出现以下问题:   解决办法: 1.如果mysql是5以下的可以在hibernate.cfg.xml配置--aut ...

  4. org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session

    使用mysql的时候,在本地用Myeclipse连接数据库没问题 但是在服务器上,由于长时间不实用数据库连接导致报这个错误 可以在数据库连接url的后面加上&autoReconnect=tru ...

  5. Java Hibernate模板 学习总结

    使用Hibernate模板 与Hibernate进行交互的主要接口是org.hibernate.Session.这个Session接口提供了基本的数据访问功 能,比如从数据库保存.更新.删除和加载对象 ...

  6. Hibernate开发中常见错误总结

    org.hibernate.MappingException: Unknown entity: cn.itcast.hibernate717.helloworld.Person hibernate框架 ...

  7. 通过hibernate去调用存储过程

    为了在 Hibernate 中使用存储过程,你必须遵循一些规则.不遵循这些规则的存储过程将不可用.如果你仍然想使用他们,你必须通过 session.connection() 来执行他们.这些规则针对于 ...

  8. 【大话Hibernate】hibernate事务管理

    事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰. 数据库向用户提供保存当前程序状态的方法,叫事 ...

  9. hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作

    hibernate工厂模式 显式乐观锁定 在上一篇文章中 ,我介绍了Java持久性锁定的基本概念. 隐式锁定机制可防止丢失更新 ,它适用于我们可以主动修改的实体. 尽管隐式乐观锁定是一种广泛使用的技术 ...

最新文章

  1. android ble mesh,Android 蓝牙Mesh组网代码详解
  2. 经典C语言程序100例之七三
  3. 遍历删除_面试难题:List 如何一边遍历,一边删除?
  4. Windows server 2012 部署活动目录 AD
  5. Java简历模板(三十个模板随意选)
  6. 听说你在学Python?来点PEP吧
  7. 英伟达登录界面卡住_一汽夏利重组;东风贪腐案行贿者名单? 众泰被申请预重整;尼古拉承认造假;理想英伟达德赛西威将合作;宋PLUS上市[9月17日]...
  8. 加解密:MD5DesAesRSARSA C#和Java适配
  9. java查询城市区号_城市查区号示例代码
  10. erp实施 数据库面试题_erp实施顾问笔试题有什么_erp实施顾问
  11. rstp 小米网络摄像头_小米哪个家庭摄像头好用?
  12. 报错:No coverage information was collected, exit without writing coverage information
  13. 内容赛道进入集团作战时代,巨头呈现“一超多强”竞争格局
  14. 电池充放电1c指的是什么
  15. UVA1616-Caravan Robbers(二分)
  16. 信创云元年,易捷行云EasyStack发布新一代全栈信创云
  17. 基于原生JS项目使用Vue3 + Surely Vue Table组件
  18. choco 使用详解--window
  19. GoLang-4(switch)
  20. mel表达式_mel语言~`详解

热门文章

  1. decimal(10,2) 的含义
  2. mysql中float、double、decimal的区别
  3. Vue中watch的使用
  4. Vue中mounted和created的区别
  5. mysql 11.2.16_Navicat for MySQL 11.2
  6. SQL 个版本下载地址
  7. Java基础知识编写一个HelloWorld案例
  8. java多线程(二)——锁机制synchronized(同步方法)
  9. 死锁(Deadlock)
  10. Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法...