我找不到有關如何在grails中使用executeUpdate()命令的悲觀鎖定的任何信息。這可能嗎?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()
謝謝
亞伯拉罕。
你能描述你想要什麼去做? – 2011-05-27 15:20:15
嘗試執行更新時,我收到了過時的對象異常,但只是很少。我發現這通常發生在一個不同的服務更新同一個表時。我希望這第二項服務用悲觀鎖更新它 – Abe 2011-05-28 07:46:51