Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java QueryDSL:应为关闭,找到“(”_Java_Hibernate_Jpa_Querydsl - Fatal编程技术网

Java QueryDSL:应为关闭,找到“(”

Java QueryDSL:应为关闭,找到“(”,java,hibernate,jpa,querydsl,Java,Hibernate,Jpa,Querydsl,以下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()); 我

以下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)]
?


我正在通过Hibernate使用Spring Boot 1.3.6和QueryDSL 3.7.4 JPA。

尽管我可能拒绝,但它看起来是禁止的,例如:countdatefield与Hibernate不兼容。真糟糕


在我的例子中,简单地删除对count下另一个函数的任何调用就可以做到这一点,因为结果是相同的。这似乎是Hibernate实现的问题,因为Timo提到了在EclipseLink下可以工作的相关问题。

似乎与EclipseLink相关,但我不相信Hibernate无法解析如此简单的查询。它看起来像ssue大约是endDate.plusDays1.atStartOfDay-可能尝试先计算它,然后传入值?DATE不是有效的JPQL函数。任何JPQL引用都会告诉您这一点您可能是对的,但我也尝试过queryDSL本身或StringExpression append支持的纯旧concat,但这也不起作用,因此根因为是另外一回事。@JohnHarris不,这最后效果很好,请看答案。