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后面 -->