Спящие агрегаты + Spring MVC - PullRequest
       2

Спящие агрегаты + Spring MVC

3 голосов
/ 27 октября 2010

Я использую Hibernate с моим проектом Spring MVC.

Допустим, моя модель имеет 2 объекта, каждый из которых связан с таблицами Oracle, соответственно USERS (USERID, NAME) и USERMONEYDATA (CATEGORY, USERID, AMOUNT)

Мои пользователи могут добавлять, редактировать и удалять строки в USERMONEYDATA, которые, конечно же, принадлежат им. Теперь я хочу получить представление, которое объединяет эти данные.

Используя оракул, я сделал простой просмотр, чтобы получить общую сумму на пользователя и категорию:

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 Ответ

1 голос
/ 27 октября 2010

Если User и UserMoneyData сопоставлены как объекты Hibernate, естественным выбором является выполнение агрегатных запросов в Hibernate.

По умолчанию предложение HQL или JPQL SELECT с несколькими путями создает кортежиформа Object[].Поскольку данные такого типа предназначены только для чтения, вы можете отображать эти массивы напрямую, без преобразования их в объекты.

Другой вариант - создать POJO для представления результатов запроса и использовать синтаксис конструктора SELECT NEW MoneyReport(u.userId, d.category, SUM(d.amount)) ...,Эти POJO не обязательно должны быть сущностями.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...