- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我研究了JPA中的乐观锁
,在DB中添加带有版本列的@Version注解
,以及EntityManager
是如何管理的等等
文档说(用我自己的话说)乐观锁在对象级有效。我可以说确实如此,因为版本定义位于实体类中。
这意味着:
userA 选择 row_A(只是数据库表中的一行)
用户 B 选择 row_A
userA 更新用户名列的row_A(此处更改版本)
userB 更新用户名列的 row_A(抛出 optimisticLockException)
到目前为止一切顺利。
但是考虑到step4,如果
userB 更新 row_A of phoneNumber
例如。
我知道仍然会抛出 optimisticLockException 但有什么方法可以按列级别而不是对象级别锁定吗?
对我来说,拥有列级锁会很好,但我也不确定即使它是可能的也会带来什么缺点。
最佳答案
没有。请记住,JPA 所做的只是将对象映射到底层的关系数据库。因此,表中的每条记录(行)最终都是一个对象的实例。
数据库通常锁定记录而不是列。锁定整个列几乎就像表上的独占锁。
关于java - 是否可以在 JPA toplink 中进行列级乐观锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550559/
我正在编写一个 Web 应用程序,两个不同的用户可以在其中更新事物列表,例如待办事项列表。我已经意识到,乐观锁定机制效果最好,因为我不希望出现高争用情况。 我一直在查看事务隔离级别,现在我有点困惑。看
这个问题在这里已经有了答案: Pessimistic versus Optimistic Concurrency (Locking versus Feedback) (3 个答案) 关闭 8 年前。
我是一名优秀的程序员,十分优秀!