Esto es exactamente lo que las proyecciones son para. Aquí está un ejemplo:
Criteria cr = session.createCriteria(User.class)
.setProjection(Projections.projectionList()
.add(Projections.property("id"), "id")
.add(Projections.property("Name"), "Name"))
.setResultTransformer(Transformers.aliasToBean(User.class));
List<User> list = cr.list();
De hecho, si nos fijamos en la documentación de "propiedad perezoso ir a buscar" que específicamente dicen:
"A (? Mejor) manera diferente para evitar la columna innecesaria lee, al menos para las transacciones de solo lectura es usar las características de proyección de las consultas HQL o Criteria. Esto evita la necesidad de procesamiento de bytecode de tiempo de compilación y es ciertamente una solución preferida ".
Por cierto, hay una cuestión relacionada que también puede estar interesado en: Hibernate Query By Example and Projections
¿Es posible hacerlo a través de HQL querry? – Antoniossss