Как добавить свойство Hibernate, которое действительно является запросом - PullRequest
1 голос
/ 21 сентября 2009

Мы используем Hibernate для загрузки объектов, которые соответствуют определенным критериям.Если пользователь решит просмотреть детали одного из объектов, я хочу получить дополнительную информацию об объекте.Один из «атрибутов», которые я хотел бы показать, потребует довольно сложного SQL-запроса, но оценивается как простой логический.

Как правильно сделать это с Hibernate?Есть ли способ указать свойство, значение которого является результатом запроса SQL?Если да, есть ли способ предотвратить запуск запроса до тех пор, пока он не понадобится?

Или я неправильно подхожу к этому вопросу?

Ответы [ 2 ]

1 голос
/ 21 сентября 2009

Как насчет определения именованного запроса? В аннотациях гибернации вы можете иметь аннотацию для класса сущности, которая выглядит следующим образом:

@NamedNativeQuery(name = "user.someUsers", query = "select u.* from users u where someparam = :someValue...", resultClass = User.class)

Я уверен, что вы можете сделать это и в XML-конфигурации hibernate, но я не знаю синтаксис от руки. Это не будет сопоставленное свойство для самого объекта, но вы можете использовать этот запрос всякий раз, когда хотите получить эту конкретную информацию.

1 голос
/ 21 сентября 2009

В зависимости от того, насколько сложен этот запрос и что он возвращает, вы можете использовать формулу или отобразить свой «атрибут» как отдельный объект ( много-к-одному ) это будет лениво загружено.

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