Tengo dos clases con un mapeo @OneToOne bidireccional entre ellas.Seleccionar entidad donde la asociación Hibernate OneToOne no está presente
Class A {
@OneToOne(fetch = FetchType.Lazy, mappedBy="a")
private B b;
}
Class B {
@OneToOne(fetch = FetchType.Eager)
private A a;
}
Necesito escribir código para recuperar todas las instancias de B que no tienen una instancia de A asociada a ellas. También tengo que escribir una consulta similar para todos los A que no tienen B.
he intentado:
Criteria criteria = getSession().createCriteria(B.class)
criteria.add(Restrictions.isNull("a")
pero esto parece volver siempre nula. ¿Pensamientos?
Trabajos. No pude entender por qué isNull estaba agregando el valor nulo a la propiedad incorrecta en mi consulta con OneToOne. – MattC
Como 'Criteria.LEFT_JOIN' se ha deperciado ahora puede usar' criteria.createAlias ("b.a", "a", JoinType.LEFT_OUTER_JOIN); ' –