gpt4 book ai didi

database - 使用 executeUpdate() 进行 Grails 悲观锁定

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

我找不到任何有关如何在 grails 中通过 executeUpdate() 命令使用悲观锁定的信息。这可能吗?

[更新] 根据 Burt 的建议,这是我得到的查询。请注意,我使用了已弃用的 UPGRADE 而不是 PESSIMISTIC_WRITE 因为此选项不存在。

def session = sessionFactory.currentSession
def query = session.createQuery("UPDATE SensorProcessed s SET s.batch=:batch WHERE s.device.id=:deviceId AND s.batch.id=:batchId AND s.sensor.id=:sensorId AND s.rollupKey=:rollupKey")
query.setLockMode ("s", LockMode.UPGRADE)
query.setParameter("batch",ignored)
query.setParameter("deviceId",device.id)
query.setParameter("batchId",batch.id)
query.setParameter("sensorId",sensor.id)
query.setParameter("rollupKey",rollupKey)
def updatedRows = query.executeUpdate()

谢谢,
亚伯拉罕。

最佳答案

它不受支持,但它很简单,可以访问 Hibernate API 并在那里使用它。将 session 工厂的依赖注入(inject)添加到您的服务或 Controller :

def sessionFactory

然后在您的方法中将 executeUpdate 调用替换为常规的 Hibernate 更新:
def session = sessionFactory.currentSession
def query = session.createQuery("your HQL")
query.setLockMode alias, LockMode.PESSIMISTIC_WRITE
// set query variable values
query.executeUpdate()

关于database - 使用 executeUpdate() 进行 Grails 悲观锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6152206/

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