Как сопоставить запрос на присоединение к не-сущностному классу в JPA? - PullRequest
3 голосов
/ 17 февраля 2011

В спящем режиме

Запросы соединения могут быть сопоставлены с не-сущностным классом. Как отобразить запрос базы данных в объект [на Java]?

<class name=... select="select A.field_a, B.field_b, ... from A, B, ...">

Как мне добиться того же в JPA / Hibernate?

1 Ответ

6 голосов
/ 17 февраля 2011

В hibernate вы можете вызывать конструктор любого произвольного класса внутри предложения select запроса.

@NamedQuery( name = "myScalarQuery" query =
"select new org.stackoverflow.hibernate.QueryResultObject(A.field_a, B.field_b) 
  from A, B
  where a.someUsefulProperty = b.someComparableProperty")

и т. Д.(обратите внимание, что требуется полное имя класса)

Тогда вам просто нужен класс с соответствующим конструктором

public class QueryResultObject {

public QueryResultObject(TypeOfFieldA fieldA, TypeOfFieldB fieldB) {
//etc
}

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