什么是JPA的乐观锁定?

Hos*_*ein 5 java jpa java-ee

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

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

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

Fri*_*itz 5

长话短说...

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

乐观是基于的概念

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

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

"有人会在我工作的时候尝试更新这个实体"