hibernate - Grails:HQL查询的 “Not in aggregate function”问题

标签 hibernate grails hql hsqldb

通过HQL查询

select a from Article a join a.tags t 
where t.name in (:tags) 
group by a 
having count(t)=:tag_count

在Grails中使用HSQLDB会产生SqlException“不在聚合函数中……”。查看生成的SQL提供
SELECT a.id, a.title, a.url, ....
..
GROUP BY a.id
HAVING ..

我听说过,在某些MySQL产品中,此方法有效,但显然在HSQLDB中无效。我不明白:
  • 为什么Hibernate生成错误的SQL?还是不是?
  • 为什么HSQLDB在选择批次时不允许仅对id进行分组,我的意思是毕竟它是主键,而我的SELECT并没有引入不确定性值,例如随机或当前时间
  • 最佳答案

    刚在Hibernate问题追踪器中找到this bug。看来这是一个已经存在五年的已知问题。看到如此基本的东西可以被打破这么长时间总是令人惊讶。

    关于hibernate - Grails:HQL查询的 “Not in aggregate function”问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5496171/

    相关文章:

    spring - HQL - 使用 H2 和 MySQL 在 where 子句中列出可以为空的列表

    java - 使用 JPA 进行事务管理 : how to perform a rollback if an error occurs at runtime

    grails - Grails。如何在项目符号中格式化字符串

    list - 如何将 Controller 操作返回的列表中的每个值打印到gsp表的每一行中?

    java - HQL语言如何像代码一样连接查询两个表

    hadoop - 我可以区分Hive中的每一列吗?

    hibernate - 一对一与多对一(单向)

    java - 仅当 isAdmin 为 true 时才显示在线用户

    java - Hibernate 更新数据库架构后运行代码?

    grails - 如何在Bootstrap的Grails audit-trail插件中设置默认的createdBy和editedBy?