gpt4 book ai didi

Hibernate:标准的 lockMode 不起作用

转载 作者:行者123 更新时间:2023-12-02 23:48:23 26 4
gpt4 key购买 nike

我需要指定 hibernate 的锁定模式。我在做什么:

session().createCriteria(clazz, "c")
.add(Restrictions.eq("c.a", false))
.add(Subqueries.propertyEq("c.b", subquery))
.setLockMode("pos", LockMode.PESSIMISTIC_READ);

但是当我看到提供的查询时 - hibernate 仍然不提供SELECT FOR UPDATE

如何强制 hibernate 生成 SELECT FOR UPDATE 子句?我只看到它有效的情况是这样的:

session().get(clazz, id, LockOptions.UPGRADE);

但我需要使用更复杂的查询。

最佳答案

我已经找到它不起作用的原因了。这实际上是 hibernate 3.5-3.6 中的错误并且仅在 4.0.1 中修复。

https://hibernate.atlassian.net/browse/HHH-5275

所以,我以这个解决方法结束:

MyObject myObject = criteria.uniqueResult();
MyObject lockedOne = (MyObject) session()
.get(MyObject.class, myObject.getId(), LockMode.UPGRADE_NOWAT);

关于Hibernate:标准的 lockMode 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27168048/

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