Имеем Entity User и entityManager в одном ejb
public class User implements Serializable{
private Integer id;
private String firstName;
далее еще много других полей этого юзера, которые нам не интересны.
}
Хотим следующий запрос
Select u.id, u.firstname from User u
Такой запрос вернет объект вида: Object [], а хотим объект типизированный.
Допустим есть слой ДТО в другом ejb
package com;
public class TestPojo implements Serializable{
//создаем конструктор с 2-мя полями, поле firstName в этом классе это title
public TestPojo(int id, String firstName) {
this.id = id;
title = firstName;
}
}
Query query = entityManager.
createQuery("Select new com.TestPojo(u.id,u.firstName) FROM User u");
List<TestPojo> testPojoList=query.getResultList();
Смотрим логи и видим что достаются только те поля, которые нужны.
select
user0_.id as col_0_0_,
user0_.firstname as col_1_0_
from
tbl_users user0_