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