hibernate - query - java hql
Los criterios de Hibernate se unen a 3 tablas (1)
El modo de búsqueda solo dice que la asociación debe ser recuperada. Si desea agregar restricciones a una entidad asociada, debe crear un alias o un subcriterio. Generalmente prefiero usar alias, pero YMMV:
Criteria c = session.createCriteria(Dokument.class, "dokument");
c.createAlias("dokument.role", "role"); // inner join by default
c.createAlias("role.contact", "contact");
c.add(Restrictions.eq("contact.lastName", "Test"));
return c.list();
Esto, por supuesto, está bien explicado en el manual de referencia de Hibernate , y el javadoc para Criteria incluso tiene ejemplos. Lea la documentación: tiene mucha información útil.
Estoy buscando un criterio de hibernación para obtener lo siguiente:
Dokument.class se asigna a Role roleId
Role.class tiene un ContactPerson contactId
Contact.class Nombre Apellido
Deseo buscar First or LastName en la clase Contact y recuperar una lista de Dokuments conectados.
He intentado algo como esto:
session.createCriteria(Dokument.class)
.setFetchMode("role",FetchMode.JOIN)
.setFetchMode("contact",FetchMode.JOIN)
.add(Restrictions.eq("LastName","Test")).list();
Me sale un error no pude resolver la propiedad "LastName" para la clase "Dokument"
¿Alguien puede explicar por qué la unión busca en Dokument y no en todas las tablas unidas? ¡Gracias de antemano por toda la ayuda!