Сомнение в отношении JPA именованного запроса - PullRequest
0 голосов
/ 15 ноября 2010

Я пытаюсь выполнить именованный запрос

@NamedQuery(name="getEmployeeDetails",query="select e.username,e.email,e.image,e.firstname,e.lastname from Employee e where e.empid=?1")

Теперь, когда я выполняю этот запрос в EJB 3.0 Session Bean, какой объект я должен вернуть. Я пытался вернуть Listits, возвращая Vector, который создает classcast.исключение. Таблица сотрудников содержит поля, такие как пароль и другие конфиденциальные данные, которые я не хочу получать. Поэтому я не использую select e from Employee e.Я учусь JPA, может кто-нибудь помочь.

Ответы [ 2 ]

6 голосов
/ 16 ноября 2010

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

Запрос: SELECT NEW package_name.Employee(e.username,e.email,e.image,e.firstname,e.lastname) FROM Employee e where e.empid=?1;

Он вернет сущность Employee с выбранными полями &остальные будут иметь значения по умолчанию.

5 голосов
/ 15 ноября 2010

Проверьте возвращаемый тип, вызвав .getClass() возвращаемого объекта.Я предполагаю, что это массив.

Но это не совсем хороший способ использовать JPA.Выберите всю сущность, а затем просто не используйте то, что вам не нужно.Это не такой хит производительности.

...