Запутался в разных / совокупных запросах с (N) Hibernate - PullRequest
1 голос
/ 08 апреля 2010

Я не уверен, как подходить к запросам, которые не отображают 1: 1, к моим постоянным объектам - другими словами, к отдельным и агрегированным запросам. Например, мне нужно получить отдельный список значений свойств для заполнения раскрывающегося списка.

Должен ли я написать класс и отображение для "сущностей", которые возвращаются этим запросом? Или я должен просто использовать собственный поставщик БД и вместо этого работать с собственными наборами данных?

Ответы [ 2 ]

2 голосов
/ 09 апреля 2010

Если я правильно понимаю, ваша проблема может быть решена скалярными запросами в HQL. Например:

Query q = session.createQuery("select i.id, i.description, i.initialPrice" +
    "from Item i where i.endDate > current_date()");

Iterator results = q.list().iterator();
while ( results.hasNext() ) {
  Object[] result = (Object[]) results.next();
  Long id = (Long) result[0];
  String description = (String) result[1];
  BigDecimal price = (BigDecimal) result[1];
}

Вы также можете использовать distinct в таких запросах.

Вот другой пример .

Конечно, то же самое можно сделать, используя собственный SQL из Hibernate .

0 голосов
/ 15 апреля 2010

Если агрегатный запрос действительно сложный, создайте представление из агрегатного запроса и отображение только для чтения на представление.

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