问题标签 [pessimistic-locking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - jOOQ SELECT FOR UPDATE 锁从未释放
我正在使用 jOOQ 对一行执行 SELECT FOR UPDATE 以同步后续的 MERGE 操作。但是,当 MERGE 完成时,FOR UPDATE 持有的锁永远不会被释放。我的 DataSourceConnectionProvider 已收到 ComboPooledDataSource(连接池)。
我没有对连接做任何明确的事情。我所做的就是:
1) 获取 DSL 上下文
2) 执行 SELECT FOR UPDATE .. NO WAIT
3) 执行 MERGE
4) 让线程返回
关于如何确保释放锁的任何想法?
java - 将本机查询转换为休眠查询
我有以下方法从数据库表中提取数据
如何将此本机查询转换为 Hibernate 查询(不使二级缓存无效)?我读过相当于
选择 ... 更新
在 Hibernate 中,可以通过
PESSIMISTIC_WRITE
grails - GORM where 查询中的悲观锁定
我想用 GORM 的 where 查询实现悲观锁。
就像是
我知道,我可以通过标准 API 来实现:
有没有办法通过“where”查询来实现这一点?
oracle - 休眠悲观锁定不适用于 Oracle 数据库?
我有一个可以由多个线程调用的事务方法。
为了避免StaleStateException
发生并发调用,我在休眠中使用了悲观锁定,但它没有像我预期的那样工作,我仍然得到StaleStateException
. 然后我查看了日志,发现对象没有正确锁定,这是我的日志:
我的交易方法在这里:
这是我的带有锁定的DAO方法:
从日志中可以看出,requirementCoverages
返回的findAllFromTestId
不是锁定的。requirementCoverage
仅在开始后才获得每个锁for (RequirementCoverage requirementCoverage : requirementCoverages)
。
所以我认为原因StaleStateException
是一个线程获取列表requirementCoverages
并试图访问每个对象,但同时requirementCoverages
已被另一个线程修改。
我对吗?有没有办法锁定列表requirementCoverages
阻止另一个线程访问它?任何帮助表示赞赏。
jakarta-ee - 锁定实体
我目前面临在 JPA 中锁定实体的问题。我有一个来自数据库的几个实体的列表。对于每个元素,都有一个编辑按钮,用于加载用于编辑该条目的视图。每次客户端尝试编辑条目时,我都想检查实体是否被锁定,以防止客户端甚至加载实体的编辑掩码。
我加载实体的方法:
调用的方法:
发生的情况是第一个 syso 打印 NONE,因为没有应用锁。然后锁被设置,第二个 syso 打印 PESSIMISTIC_WRITE。当我刷新页面或使用另一个选项卡/浏览器并单击同一实体的编辑按钮时,第一个 syso 应该打印 PESSIMISTIC_WRITE,因为我从未删除锁定,但它再次打印 NONE。你们能帮我理解如何实现这种功能吗?
问候
jpa - java.lang.NoSuchFieldError: PESSIMISTIC_WRITE error with jpaConsumer in apache camel
I am getting the below error with PESSIMISTIC_WRITE while using same jpa component in 2 routes although camel jpa is by default PESSIMISTIC_WRITE from 2.13.0 which I am using
Error:
my camel-context
purchaseOrder class
asp.net-mvc - NHibernate - 如何在 ASP.NET MVC 操作中处理关键事务
我有一个处理关键事务的操作,但我不确定处理该事务的最佳方式是什么。
这是我需要做的一个简化示例:
我要问的第一件事是:在这种操作中,我们可以同时对同一订单有多个请求(即:浏览器对同一订单的快速请求),我是否应该使用悲观锁定来真正确保一个交易时间或有一种方法可以确保BeginOrderProcess
几乎不会同时使用乐观锁定(考虑到它可能会更快)对同一订单的两个并发请求进行两次调用?
第二件事:我这样做是完全错误的方式吗?有更好的方法来处理这样的案例吗?换句话说,我应该如何处理这个?:)
hibernate - grails/hibernate - 通过 getAll() 方法使用锁
如文件所述,我们可以像这样使用获取悲观锁:
我试图用 getAll 来思考同样的问题,但它不起作用
错误:
有没有另一种方法来获得一个列表的悲观锁?
谢谢
grails - 使用hasMany在哪里添加悲观锁?
假设我有这个代码
领域
控制器
应该为每个子实例添加锁还是在获取父实例时添加它?
mysql - 如何在 yii 框架中进行悲观锁定?
如何悲观锁定yii?我在谷歌搜索,没有看到任何关于“如何在 yii 中悲观锁定”的帖子。所以我问每个知道的人都可以告诉我。