Как выборочно выбирать элементы из определенной таблицы через JPA - PullRequest
2 голосов
/ 15 мая 2010

Среда: JPA 1, Hibernate 3.3.x

У меня есть класс сущностей JPA (Пользователь), как мне выборочно выбрать переменные-члены (first_name, last_name) вместо выборки всех пользовательских атрибутов с использованием API JPA.

Ответы [ 2 ]

5 голосов
/ 15 мая 2010

Вы имеете в виду что-то вроде этого (и в этом случае результат вашего запроса будет Object[]):

SELECT u.firstName, u.lastName FROM User u

В качестве альтернативы, вы можете использовать выражение конструктора в предложении SELECT:

SELECT NEW com.acme.example.UserDetails(u.firstName, u.lastName) FROM User u

Класс, используемый в NEW, не обязательно является сущностью, он просто должен обеспечить надлежащий конструктор.

2 голосов
/ 16 мая 2010

Если вы запросите больше столбцов, вы получите результат объекта, который вам нужно будет привести к массиву объектов для получения значений. Лучше создать класс viewObject, в котором вы напрямую сохраните результаты:

select new full.package.name.UserView(u.firstName, u.LastName) from User u

где UserView выглядит так:

class UserView {
   String firstName, String lastName;
   // getters, setters/constuctor
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...