grails - 如何使 LIMIT 在 Grails HQL executeUpdate() 中工作?

标签 grails hql grails-orm

我正在运行 grails 1.3.6,我有这段代码:

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 进行批量更新。

最佳答案

我做什么(grails 1.3.7):

ExAus.executeQuery( "select distinct <field> from <controller>", [max: 20, offset: 0] )

关于grails - 如何使 LIMIT 在 Grails HQL executeUpdate() 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884931/

相关文章:

grails - 如何停止在终端上获取调试消息?

grails - 我有一堆数据,我需要一个使用 Grails 的数据过滤器

grails - 在Grails 3.x中使用JPA注释进行映射

grails - 如何在 grails 中编写 hasMany 属性的约束

postgresql - 针对内存中的 h2 数据源运行 Jasper Reports?

java - Grails 项目 - Servlet 调用 - ClassNotFoundException : javax. servlet.AsyncContext

hibernate - 查询以删除表中的所有行 hibernate

java - 使用 hql 的 "IN"语句

java - 从 hibernate 返回映射

Grails 2.5.3 未正确绑定(bind)浮点字段