什么是JPA的乐观锁定?

时间:2013-02-12 14:37:10

标签: java java-ee jpa

我是JPA的新手。我来到这个注释@Version。 在这个注释的文档中,它说:

  

“此批注指定版本字段或属性    作为其乐观锁定值的实体类。    该版本用于确保执行时的完整性    合并操作和乐观并发控制。 “

乐观锁是什么意思以及它与这个注释实际上有什么关系? 感谢

1 个答案:

答案 0 :(得分:5)

长话短说......

具有注释为@Version的字段的实体的每个记录都标记有SVN中的版本。每当通过提交(和刷新!)事务来更新实体时,检查都会确保当前实体的版本和数据库中的条目匹配。此检查失败会导致OptimisticLockException,因为有人在当前操作之前对该注册表进行了更改。

乐观基于

的概念
  

“我不需要锁定此条目,没有人会触摸它”

而悲观锁实际上锁定给定条目上的某些操作(如READ或WRITE)假设

  

“有人会在我工作时尝试更新此实体”

相关问题