hibernate乐观锁,悲观锁(Pessimistic Locking )
2009-07-30 12:58
645 查看
Hibernate 的加锁模式有:
LockMode.NONE : 无锁机制。
LockMode.WRITE : Hibernate 在 Insert 和 Update 记录的时候会自动
获取。
LockMode.READ : Hibernate 在读取记录的时候会自动获取。
以上这三种锁机制一般由 Hibernate 内部使用,如 Hibernate 为了保证 Update
过程中对象不会被外界修改,会在 save 方法实现中自动为目标对象加上 WRITE 锁。
LockMode.UPGRADE :利用数据库的 for update 子句加锁。
LockMode. UPGRADE_NOWAIT : Oracle 的特定实现,利用 Oracle 的 for
update nowait 子句实现加锁。
上面这两种锁机制是我们在应用层较为常用的,加锁一般通过以下方法实现:
Criteria.setLockMode
Query.setLockMode
Session.lock
乐观锁
添加一个 Version 属性描述符
<class
name="org.hibernate.sample.TUser"
table="t_user"
dynamic-update="true"
dynamic-insert="true"
optimistic-lock="version"
>
<version name="version"/>
LockMode.NONE : 无锁机制。
LockMode.WRITE : Hibernate 在 Insert 和 Update 记录的时候会自动
获取。
LockMode.READ : Hibernate 在读取记录的时候会自动获取。
以上这三种锁机制一般由 Hibernate 内部使用,如 Hibernate 为了保证 Update
过程中对象不会被外界修改,会在 save 方法实现中自动为目标对象加上 WRITE 锁。
LockMode.UPGRADE :利用数据库的 for update 子句加锁。
LockMode. UPGRADE_NOWAIT : Oracle 的特定实现,利用 Oracle 的 for
update nowait 子句实现加锁。
上面这两种锁机制是我们在应用层较为常用的,加锁一般通过以下方法实现:
Criteria.setLockMode
Query.setLockMode
Session.lock
乐观锁
添加一个 Version 属性描述符
<class
name="org.hibernate.sample.TUser"
table="t_user"
dynamic-update="true"
dynamic-insert="true"
optimistic-lock="version"
>
<version name="version"/>
相关文章推荐
- hibernate中悲观锁和乐观锁和lazy加载
- Hibernate悲观锁与乐观锁
- Hibernate 乐观锁与悲观锁
- hibernate对悲观锁和乐观锁的支持
- Java - 锁机制有什么用?简述Hibernate的悲观锁和乐观锁机制。
- HIbernate中的乐观锁与悲观锁
- Hibernate 中的悲观锁( pessimistic lock )和乐观锁( optimistic lock )
- hibernate悲观锁和乐观锁
- hibernate 乐观锁与悲观锁使用
- hibernate 乐观锁与悲观锁使用
- hibernate中的乐观锁和悲观锁
- Hibernate的悲观锁和乐观锁(1)
- HIbernate学习笔记(九) hibernate事务并发处理与乐观悲观锁
- Hibernate,悲观锁,乐观锁(二)
- Hibernate之悲观锁与乐观锁
- 【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)
- Hibernate、乐观锁和悲观锁
- hibernate 乐观锁与悲观锁使用
- Hibernate事务与并发问题处理(乐观锁与悲观锁)
- Hibernate、乐观锁和悲观锁