Mam dwie klasy z dwukierunkowym mapowaniem @OneToOne.Wybierz jednostkę, w której nie występuje skojarzenie Hibernacja OneToOne.
Class A {
@OneToOne(fetch = FetchType.Lazy, mappedBy="a")
private B b;
}
Class B {
@OneToOne(fetch = FetchType.Eager)
private A a;
}
Potrzebuję napisać kod, aby pobrać wszystkie wystąpienia B, które nie mają powiązania z wystąpieniem A. Ja też trzeba napisać podobną zapytanie dla wszystkich A, które nie mają B.
Próbowałem:
Criteria criteria = getSession().createCriteria(B.class)
criteria.add(Restrictions.isNull("a")
ale to wydaje się zawsze zwraca wartość null. Myśli?
Działa. Nie mogłem się domyślić, dlaczego isNull dodawał wartość zerową do niewłaściwej właściwości w moim zapytaniu za pomocą OneToOne. – MattC
Jako, że 'Criteria.LEFT_JOIN' jest teraz wykupione, można użyć' criteria.createAlias ("b.a", "a", JoinType.LEFT_OUTER_JOIN); ' –