1
我正在寻找一种智能方式将此SQL语句转换为@NamedQuery - 如果有办法呢?SQL到JPA @NamedQuery转换
SELECT MONTH(dateField), sum(value) FROM mydb.records where status ='paid' group by MONTH(dateField) order by MONTH(dateField);
我有一个名为Record(Hibernate)的JPA @实体。这详细介绍了系统中每日创建的所有发票。每个月会有很多条目。每个记录将具有支付,逾期,价值以及许多其他信息(诸如客户的姓名和地址等)的状态等。
上述说明基本上总结了所有月份数据和总和每月都支付的发票giveing一月支付的所有发票的摘要的值,都在二月支付等等.....结果看起来像出头:
datefield value
1 4500
2 5500
3 5669
我能想到的唯一的办法使用JPA @NamedQuery这样做是为了选择状态为'pai'd的表中的所有记录,然后使用我的Java代码以相当缓慢和难看的方式进行排序,排序和添加!有没有一种聪明的方法,我可以用@NamedQuery来做到这一点?
由于
感谢您的快速回复凯文,看起来很棒,比我的Java循环更简单!所以这个新的'视图'会自动映射到我创建的JPA'@'实体MONTHLY_REVENUE {}。然后在@ @ Entity MONTHLY_REVENUE中选择全部的'@'NamedQuery将产生结果? – user1843591
@ user1843591没错。 –
嗨凯文,我可以添加一个'动态'值或动态参数的视图?例如查看你描述的..xxx,其中status ='paid'和vendorid = $ {} ....我简化了我原来的问题。原始解决方案将汇总所有供应商的所有发票。我允许供应商登录并查看他们的数据,但它全部存储在一个表中,所以我只想按供应商的供应商基础进行汇总... – user1843591