나는 Grails를 1.3.6을 실행하는거야 나는이 코드를 가지고 :Grails HQL executeUpdate()에서 LIMIT 작업을 수행하는 방법?
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])
이 코드는 DB의 모든 행 대신 5 개 오래된 항목을 업데이트 것으로 보인다. 이것이 LIMIT가 HQL에서 작동하지 않는다는 것을 의미합니까? GORM 또는 HQL에서 동일한 SQL 로직을 달성하는 방법을 알려주십시오. 기본적으로 LIMIT을 사용하여 일괄 업데이트를 수행해야합니다.
나는 한도는 선택에 불과하다고 생각합니다. 귀하의 해결 방법이 유일한 방법이라고 생각합니다. 그러나 ID 목록을 작성하기 위해 모든 행을 반복하는 것이 매우 느린 것을 볼 때이 방법을보다 효율적으로 만드는 방법이 있어야합니다. 여기에 대한 자세한 내용은 http://grails.asia/grails-tutorial-for-beginners-html-queries를 참조하십시오. – JavaDev