gpt4 book ai didi

java - 是否可以在 JPA toplink 中进行列级乐观锁定?

转载 作者:行者123 更新时间:2023-11-30 06:36:41 25 4
gpt4 key购买 nike

我研究了JPA中的乐观锁,在DB中添加带有版本列的@Version注解,以及EntityManager是如何管理的等等

文档说(用我自己的话说)乐观锁在对象级有效。我可以说确实如此,因为版本定义位于实体类中。

这意味着:

  1. userA 选择 row_A(只是数据库表中的一行)

  2. 用户 B 选择 row_A

  3. userA 更新用户名列的row_A(此处更改版本)

  4. userB 更新用户名列的 row_A(抛出 optimisticLockException)

到目前为止一切顺利。

但是考虑到step4,如果

userB 更新 row_A of phoneNumber 例如。

我知道仍然会抛出 optimisticLockException 但有什么方法可以按列级别而不是对象级别锁定吗?

对我来说,拥有列级锁会很好,但我也不确定即使它是可能的也会带来什么缺点。

最佳答案

没有。请记住,JPA 所做的只是将对象映射到底层的关系数据库。因此,表中的每条记录(行)最终都是一个对象的实例。

数据库通常锁定记录而不是列。锁定整个列几乎就像表上的独占锁。

关于java - 是否可以在 JPA toplink 中进行列级乐观锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com