2013-09-24 32 views
1

運行此Java代碼時,我得到一個例外:QueryDSL(JPA)DAYOFYEAR,請將dayOfMonth翻譯冬眠

List<Tuple> companies2accLoginCount = accoutLoginCountQuery 
        .listDistinct(new QTuple(QCompany.company1.id, QAccountLogin.accountLogin.loginDatetime.dayOfMonth().countDistinct())); 

例外:

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 48 [select distinct company1.id, count(distinct day(accountLogin.loginDatetime)) 
from de.workxl.cxlbackend.database.model.Company company1 
    left join company1.accounts as account 
    left join account.accountLogins as accountLogin 
where accountLogin.loginDatetime > ?1 
group by company1.id 
having count(distinct day(accountLogin.loginDatetime)) >= ?2] 

同樣與DAYOFYEAR。在一天或一天​​的月份之後,預計看起來不像左邊括號。

我使用Hibernate 4.2.2和2.9.0 QueryDSL

更新:我剛剛成功地遷移項目QueryDSL 3.2.3(不得不彈簧數據公地升級到1.6 .1和spring-data-jpa到1.4.1),但異常仍然存在。

+0

您是否嘗試過更新版本的Querydsl? –

回答

2

這似乎是Hibernate解析器中的一個錯誤。這適用於EclipseLink。