Ho due classi con un bi-directional @OneToOne che mappano l'un l'altro.Seleziona l'entità in cui non è presente l'associazione Herternate OneToOne
Class A {
@OneToOne(fetch = FetchType.Lazy, mappedBy="a")
private B b;
}
Class B {
@OneToOne(fetch = FetchType.Eager)
private A a;
}
Ho bisogno di scrivere codice per recuperare tutte le istanze di B a cui non è associata un'istanza di A. Ho anche bisogno di scrivere una query simile per tutti A, che non hanno alcun B.
ho provato:
Criteria criteria = getSession().createCriteria(B.class)
criteria.add(Restrictions.isNull("a")
ma questo sembra tornare sempre null. Pensieri?
Opere. Non riuscivo a capire perché isNull stava aggiungendo il null alla proprietà sbagliata nella mia query con OneToOne. – MattC
Dato che 'Criteria.LEFT_JOIN' è depotenziato ora puoi usare' criteria.createAlias ("b.a", "a", JoinType.LEFT_OUTER_JOIN); ' –