我運行的Grails 1.3.6,我有這樣的代碼:如何使限制在Grails HQL executeUpdate()中工作?
String hql = '''
UPDATE
ApiResponse a
SET
a.lockId = :lockId
WHERE
a.lockId = 0
ORDER BY
a.dateAdded asc
LIMIT 5
'''
ApiResponse.executeUpdate(hql, [lockId : workerId])
看來,這個代碼更新數據庫中的所有行,而不是5個最早的條目。這是否意味着LIMIT在HQL中不起作用?請幫助我如何在GORM或HQL中實現相同的SQL邏輯。基本上,我需要使用LIMIT進行批量更新。
我認爲限制僅限於選擇。我認爲你的解決方法是唯一的方法。但是應該有一種方法來提高效率,因爲我認爲遍歷所有行非常緩慢,只是爲了編寫id列表。有關hql的更多信息,請訪問http://grails.asia/grails-tutorial-for-beginners-hql-queries – JavaDev 2015-02-11 06:18:38