0

grails で executeUpdate() コマンドを使用して悲観的ロックを使用する方法に関する情報が見つかりません。これは可能ですか?

[更新] Burt の提案によると、これが結果のクエリです。このオプションがないため、PESSIMISTIC_WRITE の代わりに非推奨の UPGRADE を使用したことに注意してください。

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()

ありがとう、
エイブラハム。

4

2 に答える 2

0

私はちょうどこれを見ました:

http://grails.org/doc/latest/guide/single.html#5.3.5悲観的ロックと楽観的ロック

DB が悲観的ロックをサポートしていることを確認する必要があることに注意してください。

于 2011-05-27T12:44:22.987 に答える