Hiberante(十) 数据库的并发

ymruse 2014-06-02

一般并发会导致更新丢失,有两种解决方案可以解决并发的问题

1.悲观锁
         悲观锁hibernate基于数据库的机制来实现的,此时hibernate3和hibernate所实现的机制一样, 都是是基于同步的机制实现的,当只要读取了这个对象
  就要第一个对象读取完成之后,第二个对象才能读取,这样大大影响效率         
   
2.乐观锁
   乐观锁是在数据库中增加一个version的字段来 实现的,

   第一种(Java代码调用时):

//只要使用这种方式load就会为其增加锁。
			Student stu=(Student)session.load(Student.class,1,LockOptions.UPGRADE);

  第二种(...hbm.xml):

<version name="version"></version><--!这个version属性必须写在id后面 -->

相关推荐