2010-10-27 102 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不需要是实体。

参见: