как работает новое ключевое слово в hql? - PullRequest
3 голосов
/ 27 января 2010

Я нашел этот пример в документации jboss.

select new Family(mother, mate, offspr)
from DomesticCat as mother
    join mother.mate as mate
    left join mother.kittens as offspr

Откуда взялся класс Family. Нужно ли импортировать куда-либо или использовать полностью определенное имя класса?

Ответы [ 3 ]

3 голосов
/ 27 января 2010

Family - это обычный POJO с соответствующим конструктором, который либо должен быть объявлен, либо полностью квалифицирован.

2 голосов
/ 27 января 2010

Family должен быть объектом Java с соответствующим конструктором. Импорт необязателен, если объект является нормальным сопоставленным объектом (либо с использованием аннотаций, либо в XML-коде отображения гибернации).

1 голос
/ 27 января 2010

Импорт необязателен, если он найден по другой причине. : -)

Да, оно должно существовать. Это класс, который не является сущностью, вы создаете его для понятной обработки трех столбцов. Требуется конструктор, соответствующий вызову.

По сути, это как если бы вы сделали:

  • запрос, который возвращает список (с тремя столбцами)
  • цикл в списке, создает объект Family, содержащий столбцы, и возвращает список этих результатов
...