QueryDSL:期待关闭,找到“(”
QueryDSL: expecting CLOSE, found '('
以下 QueryDSL 代码有什么问题:
query.from(chat).where(
chat.datePosted.goe(startDate.atStartOfDay()).
and(chat.datePosted.lt(endDate.plusDays(1).atStartOfDay()))).
groupBy(date(chat.datePosted)).
list(date(chat.datePosted), date(chat.datePosted).count());
我遇到这样的异常:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 41 [select date(chat.datePosted), count(date(chat.datePosted))
from com.test.model.Chat chat
where chat.datePosted >= ?1 and chat.datePosted < ?2
group by date(chat.datePosted)]
?
我正在使用 Spring Boot 1.3.6 和 QueryDSL 3.7.4(通过 Hibernate 的 JPA)。
我可能会拒绝它看起来像 using functions as arguments in hibernate aggregation functions 被禁止,例如:count(date(field)) 不适用于 Hibernate。真可惜!
在 count() 下简单地删除对另一个函数的任何调用就可以解决我的问题,因为结果是相同的。似乎是 Hibernate 实现问题,因为 Timo 在相关问题上提到这在 EclipseLink 下有效。
以下 QueryDSL 代码有什么问题:
query.from(chat).where(
chat.datePosted.goe(startDate.atStartOfDay()).
and(chat.datePosted.lt(endDate.plusDays(1).atStartOfDay()))).
groupBy(date(chat.datePosted)).
list(date(chat.datePosted), date(chat.datePosted).count());
我遇到这样的异常:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 41 [select date(chat.datePosted), count(date(chat.datePosted))
from com.test.model.Chat chat
where chat.datePosted >= ?1 and chat.datePosted < ?2
group by date(chat.datePosted)]
?
我正在使用 Spring Boot 1.3.6 和 QueryDSL 3.7.4(通过 Hibernate 的 JPA)。
我可能会拒绝它看起来像 using functions as arguments in hibernate aggregation functions 被禁止,例如:count(date(field)) 不适用于 Hibernate。真可惜!
在 count() 下简单地删除对另一个函数的任何调用就可以解决我的问题,因为结果是相同的。似乎是 Hibernate 实现问题,因为 Timo 在相关问题上提到这在 EclipseLink 下有效。