我正在寻找一种将这条 SQL 语句转换为 @NamedQuery 的智能方法——如果有办法的话?
SELECT MONTH(dateField), sum(value) FROM mydb.records where status ='paid' group by MONTH(dateField) order by MONTH(dateField);
我有一个名为 Record (Hibernate) 的 JPA @Entity。这详细说明了系统中每天创建的所有发票。每个月都会有很多条目。每条记录都会有已付款、逾期、价值以及许多其他信息,例如客户的姓名和地址等。
上面的语句基本上按月总结了所有数据,并总结了每月所有支付发票的价值,总结了 1 月份支付的所有发票,2 月份支付的所有发票等等......结果看起来有点像:
datefield value
1 4500
2 5500
3 5669
我能想到使用 JPA @NamedQuery 执行此操作的唯一方法是选择表中状态为“已支付”的所有记录,然后使用我的 Java 代码以相当缓慢和丑陋的方式进行排序、排序和添加!有没有一种聪明的方法可以用@NamedQuery 做到这一点?
谢谢