【发布时间】:2013-10-09 22:35:26
【问题描述】:
我正在寻找一种将这条 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 月支付的所有发票等等.....The结果看起来像:
datefield value
1 4500
2 5500
3 5669
我能想到使用 JPA @NamedQuery 执行此操作的唯一方法是选择表中状态为“已支付”的所有记录,然后使用我的 Java 代码以相当慢的速度进行排序、排序和添加和丑陋的时尚!有没有一种聪明的方法可以用@NamedQuery 做到这一点?
谢谢
【问题讨论】:
标签: sql hibernate jpa relational-database java-ee-6