当前位置: 代码迷 >> 综合 >> What is optimistic locking in Hibernate
  详细解决方案

What is optimistic locking in Hibernate

热度:98   发布时间:2023-12-14 23:29:09.0

乐观锁(optimistic locking)认为资源的存取很少发生同时存的取问题,因而不做数据库层次上的锁定。为了维护正确的数据,乐观锁是使用应用程序上的逻辑来实现版本控制的。

在使用乐观锁策略的情况下,数据一致的情况一旦发生,有几个解决方法,一种是先更新为主,一种是后更新为主,比较复杂的就是检查发生变动的数据来实现,或是检查所有属性来实现。

Hibernate中通过检查版本号来判断数据是否已经被其他人所改动,这也是Hibernate所推荐的方式。在数据库表中加入一个version字段,在读取数据时连同版本号一同读取,并在更新数据时比较版本号与数据库表中的版本号,如果等于数据库表中的版本号则予以更新,并递增版本号,如果小于数据库表中的版本号就抛出异常。

参考文献

  • Struts,Hibernate,Spring集成开发宝典 /陈天河等编著;——北京:电子工业出版社,2007.1;ISBN 7-121-03399-2
  相关解决方案