悲观锁定不适用于查询 API

发布于 2024-09-05 12:33:53 字数 596 浏览 8 评论 0原文

List esns=session.createQuery("from Pool e where e.status=:status "+
                        "order by uuid asc")
                        .setString("status", "AVAILABLE")
                        .setMaxResults(n)
                        .setLockMode("e", LockMode.PESSIMISTIC_WRITE)
                        .list();

我编写了上述查询,但是它没有生成for update查询并且正在发生同步更新。

我使用的是 3.5.2 版本,它有一个 Criteria API 中的错误< /a>,查询 API 中是否也存在相同的错误,或者我做错了什么?

List esns=session.createQuery("from Pool e where e.status=:status "+
                        "order by uuid asc")
                        .setString("status", "AVAILABLE")
                        .setMaxResults(n)
                        .setLockMode("e", LockMode.PESSIMISTIC_WRITE)
                        .list();

I have the above query written, however it is not generating for update query and simultaneous updates are happening.

I am using 3.5.2 version and it has a bug in Criteria API, is the same bug present in query API as well or I am doing something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

┾廆蒐ゝ 2024-09-12 12:33:53

setLockOptions 工作正常。这是与此相同的错误

setLockOptions is working fine. It is the same bug as this one.

琴流音 2024-09-12 12:33:53

尝试使用 LockModeType.PESSIMISTIC_FORCE_INCRMENT,看看 这个解决方案

Try to use LockModeType.PESSIMISTIC_FORCE_INCREMENT, take a look at this solution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文