【发布时间】:2016-09-17 07:14:56
【问题描述】:
@Query("select new map(count(t.status) as allCount,sum(case when t.status='Approved' then 1 else 0 end) as approvedCount, "
+ "sum(case when t.status='Overdue' then 1 else 0 end) as overdueCount,"
+ "sum(case when t.status='Rejected' then 1 else 0 end) as rejectedCount,"
+ "sum(case when t.status='Awaiting Approval' then 1 else 0 end) as awaitingApprovalCount,"
+ "sum(case when t.status='Not Submitted' then 1 else 0 end) as notSubmittedCount) "
+ "from Timesheet as t where t.emplId=:employeeId and (t.startDate between date_add(:startDate, interval -6 day) and date_add(:endDate,interval 6 day))"
+ "and (t.endDate between date_add(:startDate, interval -6 day) and date_add(:endDate,interval 6 day))")
它抛出异常的地方为org.hibernate.hql.internal.ast.QuerySyntaxException : Expecting CLOSE, found 'day' near line 1.
【问题讨论】:
-
任何 JPQL 参考资料都会告诉您...“date_add”、“interval”、“day”是无效的 JPQL 关键字。 JPQL != SQL
标签: java hibernate jpa spring-data-jpa