2010-10-27 98 views
3

我在Spring MVC項目中使用Hibernate。Hibernate聚合+ Spring MVC

比方說我的模型有2個對象中的每個連接到Oracle表,分別USERS (USERID, NAME)USERMONEYDATA (CATEGORY, USERID, AMOUNT)

我的用戶可以添加,編輯和刪除USERMONEYDATA行,那是屬於他們的,當然。 現在,我想要一個彙總這些數據的視圖。

使用Oracle,我做了一個簡單的觀點,讓每用戶和類別的總金額:

select userid, category, sum(amount) 
from USERS a inner join USERMONEYDATA b on a.USERID = b.USERID 
group by userid, category 

但什麼是使用它的最佳方式?我應該爲這個視圖創建一個新的MODEL對象嗎?

我應該直接在Hibernate中進行聚合嗎?但是如果是的話,如果我沒有特定的POJO對象來映射它,我該如何顯示結果呢?

感謝

回答

1

如果UserUserMoneyData被映射爲Hibernate的實體,這是一個自然的選擇,在Hibernate中運行聚集查詢。

默認情況下,HQL或多個路徑JPQL SELECT子句中產生的Object[]形式的元組。由於這種數據是隻讀的,因此您可以直接顯示這些數組,而不必將它們轉換爲對象。

另一種選擇是創建POJO來表示查詢結果並使用構造函數語法SELECT NEW MoneyReport(u.userId, d.category, SUM(d.amount)) ...。這些POJO不需要是實體。

參見: