JPA soporta envolver los resultados de la consulta JPQL con instancias de clases de resultado personalizado. Esto es especialmente útil para las consultas con múltiples expresiones SELECT, donde objetos de resultado personalizados pueden proporcionar una alternativa orientada a objetos a la representación de los resultados como Object [] elementos.
String queryTxt = "SELECT NEW com.DocumentoAdjunto(o.codigo, o.descripcion) FROM Documento AS o WHERE 1=1";
EntityManager em = Documento.entityManager();
TypedQuery
typedQuery = em.createQuery(queryTxt , DocumentoAdjunto.class);
List
results = typedQuery.getResultList();