Hibernate的锁机制

原创 2005年06月01日 15:21:00

Hibernate 的锁机制:

悲观锁(Pessimistic Locking):

       悲观锁往往通过数据库机制来实现,适合于安全性要求高并发不高的系统,具有绝对的排它性。在Hibernate中的方式较多,但是都是最终实现的结果就是在组装后的SQL语句的尾部追加“for update”或者“for update nowait(oracle数据库特有)”。注意:只有在查询开始之前(也就是Hiberate 生成SQL 之前)设定加锁,才会真正通过数据库的锁机制进行加锁处理,否则,数据已经通过不包含for update子句的Select SQL加载进来,所谓数据库加锁也就无从谈起。

      

乐观锁(Optimistic Locking):

       乐观锁通过Hibernate自身的机制来实现,适合于并发高的系统,可能通过其它的系统或者直接修改数据库破坏数据。有多种实现方式,其中官方推荐的是version,因为它是目前唯一数据对象脱离session发生改变的情况下依然有效的锁机制。通过在数据库中增加version字段,一般为Integer型,同时在hbm文件中增加以下“红色文字”的部分。通过在读取数据和提交修改时读取和比较version字段的值,来决定提交的数据是否是脏数据,是否将修改更新到数据库中。注意:version 节点必须出现在id节点之后。

<hibernate-mapping>

<class

name="org.hibernate.sample.TUser"

table="t_user"

dynamic-update="true"

dynamic-insert="true"

optimistic-lock="version"

>

<id

name="id"

column="id"

type="java.lang.Integer"

>

<generator class="native">

</generator>

</id>

<version

column="version"

name="version"

type="java.lang.Integer"

/>

……

</class>

</hibernate-mapping>

 

Hibernate锁机制_悲观锁和乐观锁

  • 2012年03月14日 19:31
  • 20KB
  • 下载

hibernate4性能之并发和锁机制

数据库事务的定义 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性...

Hibernate锁机制

业务实现过程中,难免需要保证数据访问的排他性。如金融系统的日终结算中,我们会针对某个截止点的数据进行处理,在此同时,不希望在结算的这段时间里(几秒钟或者几个钟头),数据再有变动,不然我们的统计也无效了...

Hibernate的锁机制

hibernate锁机制 1.悲观锁它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,为了保持数据被操作的一致性,于是对数据采取了数据库层次的锁定状...

Hibernate的锁机制及原理

1.悲观锁 它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,为了保持数据被操作的一致性,于是对数据采取了数据库层次的锁定状态,依靠数据库提供的锁机制...
  • cyh1111
  • cyh1111
  • 2015年12月09日 09:45
  • 929

Hibernate锁机制避免事务并发

我们知道事务并发会引发一些问题,一个典型的例子就是银行存取款的问题: 比如一个账户,用户A和B同时对它操作。假设账户里有1000元,A要往里存100元,而B要取100元, 假设这两个事务同时进行,会出...

Hibernate锁机制的简单理解

我们知道事务并发会引发一些问题,一个典型的例子就是银行存取款的问题: 比如一个账户,用户A和B同时对它操作。假设账户里有1000元,A要往里存100元,而B要取100元, 假设这两个事务同...

Hibernate的锁机制-总结

学了两天的hibernate锁机制,今天写个总结。Hibernate锁机制包括悲观锁和乐观锁。1.悲观锁它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数...
  • jiyanle
  • jiyanle
  • 2015年04月23日 21:50
  • 224

Hibernate锁机制_悲观锁和乐观锁

1、Pessimistic Locking 悲观锁; pessimistic [,pesi'mistik] adj. 悲观的,厌世的;悲观主义的 2、Optimistic Locking ...

hibernate锁机制

Hibernate支持两种锁机制: 即通常所说的“悲观锁(Pessimistic Locking)”和 “乐观锁(OptimisticLocking)”。 悲观锁的实现,往往依靠数据库提供的锁机...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate的锁机制
举报原因:
原因补充:

(最多只允许输入30个字)