Grails에서 HSQLDB를 사용하여 xqlxz Grails : HQL 쿼리의 "집합 함수가 아닙니다"문제
select a from Article a join a.tags t
where t.name in (:tags)
group by a
having count(t)=:tag_count
로 HQL 쿼리하기 SqlException "Not in aggregate function ..."이 발생합니다. 생성 된 SQL을 살펴보면
SELECT a.id, a.title, a.url, ....
..
GROUP BY a.id
HAVING ..
가 제공됩니다. 일부 MySQL 제품에서는이 기능이 작동하지만 HSQLDB에서는 들리지 않았습니다. 나는 이해하지 못한다 :
- 왜 Hibernate는 잘못된 SQL을 생성합니까? 아니면 그렇지 않습니까?
- HSQLDB가 에서 그룹핑을 허용하지 않는 이유는 무엇입니까? 로트를 선택하는 동안 그냥 ID를 사용했습니다. 결국 기본 키를 의미합니다. SELECT는 무작위 또는 현재 시간과 같은 비 결정적 값을 제공하지 않습니다.
@Tom : 답변을 업데이트했습니다. 검토하시기 바랍니다. –
자, 그래도 열심히 MySQL을 이해하는 것이 아니라 Grails/HQL 응용 프로그램이나 DataSource/HSQLDB 구성에서 Hibernate가 제대로 작동하도록하는 방법에 대해 걱정하지 않습니다. – Tom
@Tom : 그래서 당신은 Hibernate가 유효한 SQL 질의를 생성하게하고 싶습니까? HSQLDB에이 옵션을 풀 수있는 옵션이 있는지 알지 못하지만 쿼리를 변경할 수 있습니다. –