- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于乐观锁定Hibernate的问题。我试图深入了解Hibernate的乐观锁定,但是我有一个疑问。 Hibernate使用版本方法(整数或时间戳)来实现乐观锁定。要配置,您可以使用@Version批注(或xml配置)并创建一个version属性。另一个选项是使用optimistic-lock =“ all”属性配置而不进行版本控制。
我的问题是,如果您没有定义任何版本控制属性,也没有指定乐观锁属性,那么在这种情况下哪种策略使用了Hibernate?悲观锁我很确定不会,所以我想那是乐观锁,但不知道怎么做。
非常感谢您的关注。
最佳答案
如果您不将Hibernate配置为使用乐观锁定,则它根本不使用锁定。因此,在这种情况下,最后的更新总是胜出。
为了清楚起见,请注意,Hibernate乐观锁定与DBMS事务隔离完全不同。休眠乐观锁定仅在以下情况下起作用:在一个事务中加载对象,对其进行修改并在以后将其保存在另一事务中。在这种情况下,乐观锁定可确保其他事务在两者之间没有更改该对象。但是,乐观锁定不会影响并发事务的隔离-因此,无论是否启用了Hibernate锁定,DBMS内部用于实现事务隔离的锁定(乐观或悲观)仍然有效。
关于hibernate - 默认情况下在乐观 hibernate 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119787/
我正在编写一个 Web 应用程序,两个不同的用户可以在其中更新事物列表,例如待办事项列表。我已经意识到,乐观锁定机制效果最好,因为我不希望出现高争用情况。 我一直在查看事务隔离级别,现在我有点困惑。看
这个问题在这里已经有了答案: Pessimistic versus Optimistic Concurrency (Locking versus Feedback) (3 个答案) 关闭 8 年前。
我是一名优秀的程序员,十分优秀!