码迷,mamicode.com
首页 > Web开发 > 详细

hibernate丢失更新

时间:2017-07-07 22:35:12      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:解决办法   效率   private   session   1.5   丢失   version   数据库   iso   

如果多个线程操作基于同一个查询结构对表中的记录进行修改,那么后修改的记录将会覆盖前面修改的记录,前面的修改就丢失掉了,这就叫做更新丢失。
Serializable可以防止更新丢失问题的发生。其他的三个隔离级别(Read uncommitted isolation、Read committed isolation、Repeatable read isolation)都有可能发生更新丢失问题。

Serializable虽然可以防止更新丢失,但是效率太低,通常数据库不会用这个隔离级别,所以我们需要其他的机制来防止更新丢失。解决办法:

悲观锁:使用session.get(Customer.class, 1,LockMode.UPGRADE); 方法

乐观锁:在对应的JavaBean中添加一个属性,名称可以是任意的。例如:private Integer version; 提供get和set方法。在映射的配置文件中,提供<version name="version"/>标签即可。

hibernate丢失更新

标签:解决办法   效率   private   session   1.5   丢失   version   数据库   iso   

原文地址:http://www.cnblogs.com/renshengbuduanxuexi/p/7134080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!