lazy inner initialize entre diferencia hibernate criteria outer-join

inner - (Lazy) LEFT OUTER JOIN usando la API de criterios de Hibernate



join fetch jpa (3)

Una unión está en la solicitud SQL. No puede ser flojo.

Con Hibernate, para recuperar estos datos de forma perezosa, simplemente excluirlos de la solicitud HQL. Luego, cuando acceda a los captadores de su entidad (si su sesión aún está abierta), se cargará automáticamente (no es necesario que escriba esa parte de la solicitud).

Quiero realizar una UNIÓN EXTERIOR IZQUIERDA entre dos tablas usando la API de Criteria. Todo lo que pude encontrar en la documentación de Hibernate es este método:

Criteria criteria = this.crudService .initializeCriteria(Applicant.class) .setFetchMode("products", FetchMode.JOIN) .createAlias("products", "product");

Sin embargo, esto realiza una combinación interna o una combinación externa derecha, debido a la cantidad de resultados que devuelve.

También quiero que mi unión sea Lazy. ¿Cómo puedo hacer esto?

¡Aclamaciones!

ACTUALIZACIÓN: parece que usar alias hace que la unión INNER JOIN se realice automáticamente. Hay algo en la "historia de fondo" que aún no he captado. Entonces, no hay alias hoy. Esto me deja el problema de aplicar restricciones a las dos tablas, porque ambas tienen una columna (o propiedad, si es más apropiado) '' nombre ''.


Si necesita unirse a la tabla de productos, simplemente haga lo siguiente:

..... createAlias ​​("productos", "producto", Criteria.LEFT_JOIN);


La API de la respuesta de Sdavids está en deprecated ahora. Su versión actualizada es

.... createAlias ​​("employee", "emp", JoinType.LEFT_OUTER_JOIN)