transformers setresulttransformer query aliastobean hibernate criteria hibernate-criteria

hibernate - setresulttransformer - transformers aliastobean jpa



setResultTransformer en Criterios (2)

Simplemente: cuando está haciendo los Criterios: desea que el conjunto de resultados esté en un objeto particular, puede usarlo como: por ejemplo:

.setResultTransformer(Transformers.aliasToBean(Employee.class));

Employee debe coincidir con la entidad ResultSet .

¿Cuál es el uso del método setResultTransformer en los criterios API? ¿Alguien puede explicar esto con un ejemplo simple? Leí los javadocs pero no puedo entenderlos claramente.

Saludos,


El ResultTransformer predeterminado para una consulta de Criterios que no usa setProjections () será ROOT_ENTITY .

Si tenemos Student en una relación ManyToMany con el Departamento, una consulta podría tener este aspecto ...

Session session = (Session) getEntityManager().getDelegate(); Criteria crit = session.createCriteria(Student.class) .createAlias(''departments'', ''department'');

Esta consulta devolverá duplicados. Pero establezca el ResultTransformer como ...

crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

Ahora los resultados serán distintos cuando Hibernate marque los resultados. (¿O me refiero a lo inmoral?)

Si no desea que Hibernate devuelva la consulta como una List<Student> pero prefiere manejar los resultados como una List<Object[]>

crit.setResultTransformer(CriteriaSpecification.PROJECTION)