JPA:星期几的汇总

时间:2017-05-06 21:17:48

标签: java hibernate jpa openjpa

我看到JPA缺乏提供日期/时间提取功能。例如,如何实现以下简单目标

calculate total revenue by given days of week (i.e. revenue only on Friday, Saturday, Sunday)?

理想情况下应该有一个API

select sum(revenue) from salesreport where day_of_week(date) in (:daysList);

我认为没有简单的方法可以在JPA(我使用OpenJPA)而不是本机查询中实现它。某些JPA供应商提供Year()Month()Day()(每月的某一天),但没有提供星期几的日期

1 个答案:

答案 0 :(得分:0)

使用Hibernate,您可以

SELECT EXTRACT(WEEK FROM d.tstamp), SUM(d.revenue) 
FROM Dosh d 
GROUP BY EXTRACT(WEEK FROM d.tstamp)

要使其正常工作,底层的RDBMS必须支持EXTRACT函数。

我看过一份报告,声称在EclipseLink上也能做到这一点。