我看到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()
(每月的某一天),但没有提供星期几的日期
答案 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上也能做到这一点。