事物的特性:   ACID 原子性  一致性 独立性 持久性
事物的处理
经常出现的是 脏读dirty read 幻读phantom read  不可重复读non-repeatable read
脏读:举例:第一个事物开始  第二个事物开始  第二个查询余额1000 汇入100 第一个查询1100 取款1100  第二个事物回滚  提交事务失败 (读了另外一个事物没有提交的值)
幻读:举例:(插入和删除)第一个事物查询学生10人  第二个插入一个学生 第一个查询11人  第二个交事物   (幻读用于插入和删除,突然间多出来一个数据 像幻象一样,影响结果)
不可重复读:举例:第一个事物查询1000  第二个事物汇入100 提交事物  然后第一个事物查询1100 提交事务  (一个事物读出来的值两遍 切不一致)
事物的隔离机制
1.read-uncommitted 允许脏读,幻读,不可重复  (效率最高)
2.read-committed   限制脏读  不限制幻读 不可重复读(并发好  效率高)(oracle默认)
4.repeatable read  加锁(mysql )
8.serializable     解决一切问题 不知是否解决楼主的问题?

解决方案 »

  1.   

    Hibernate 是 JDBC 的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate 将其委托给底层的 JDBC 或者 JTA,以实现事务管理和调度功能。
      

  2.   

    那我们通常用哪一种隔离机制?
    在项目中一般使用第二种隔离机制,可是他没有办法解决幻读 不可重复读 不过没有关系  在hibernate中设置悲观锁和乐观锁解决
      

  3.   

    那我们通常用哪一种隔离机制?
    在项目中一般使用第二种隔离机制,可是他没有办法解决幻读 不可重复读 不过没有关系  在hibernate中设置悲观锁和乐观锁解决
    你厉害。老师居然夸我了。牛