Hibernate第五讲:Hibernate控制的事务

 Hibernate控制的事务

    事务保证原子操作的不可分,也就是操作的同时成功或同时失败。
    hibernate的事务隔离级别和JDBC中大致相同。
        设置时要在hibernate.cfg.xml配置
        <property name="hibernate.connection.isolation">4</property>
        1: 读未提交的数据(Read uncommitted isolation) 脏读
        2: 读已提交的数据(Read committed isolation)   不可重复读
        4: 可重复读级别(Repeatable read isolation)    幻读
        8: 可串行化级别(Serializable isolation)
    hibernate的锁(悲观锁,乐观锁)
      1.悲观锁是由数据库本身所实现的,会对数据库中的数据进行锁定,也就是锁行。(更新期间不许其他人更改)
        LockMode.UPGRADE,修改锁,在get()方法中加上这个设置作为第三个参数。
        LockMode.NONE 无锁机制
        LockMode.READ 读取锁
        LockMode.WRITE 写入锁,不能在程序中直接使用
        还可以使用Session.lock()  Query.setLockMode()  Criteria.setLockMode()方法来设置锁,
        检测版本号,一旦版本号被改动则报异常。
      2.乐观锁,也就是通过对记录加上某些信息来解决并发访问的问题。(认为更新期间不会有其他更改)
        版本检查;要在其表中多加上一列表示版本信息,会在读取时读到这个版本号,并在修改之后更新这个版本号;
        更新瞬间加锁,并且只有版本号相同才会予以更新,如果版本号不同,就会抛出例外。
        <version name="version" column="version" type="integer" />

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章