我是JPA的新手.我来到这个注释@Version.在这个注释的文档中,它说:
"此批注指定实体类的版本字段或属性,作为其乐观锁定值.该版本用于确保执行合并操作和乐观并发控制时的完整性."
乐观锁是什么意思以及它与这个注释实际上有什么关系?谢谢
长话短说...
具有注释为字段的实体的每个记录@Version都标记有SVN中的版本.每当通过提交(和刷新!)事务来更新实体时,检查都会确保当前实体的版本和数据库中的条目匹配.此检查失败导致OptimisticLockException,因为有人在当前操作之前对该注册表进行了更改.
乐观是基于的概念
"我不需要锁定此条目,没有人会触摸它"
而悲观锁实际上锁定给定条目的某些操作(如READ或WRITE)
"有人会在我工作的时候尝试更新这个实体"