选择不存在Hibernate OneToOne关联的实体

abu*_*ker 5 hibernate

我有两个类,彼此之间有双向的@OneToOne映射.

Class A {
@OneToOne(fetch = FetchType.Lazy, mappedBy="a")
private B b;
}

Class B {
@OneToOne(fetch = FetchType.Eager)
private A a;
}
Run Code Online (Sandbox Code Playgroud)

我需要编写代码来检索B的所有实例,这些实例没有与之关联的A实例.我还需要为没有B的所有A编写类似的查询.

我试过了:

Criteria criteria = getSession().createCriteria(B.class)
criteria.add(Restrictions.isNull("a")
Run Code Online (Sandbox Code Playgroud)

但这似乎总是返回null.思考?

JB *_*zet 9

这应该适用于两个方向:

Criteria criteria = session.createCriteria(B.class, "b");
criteria.createAlias("b.a", "a", Criteria.LEFT_JOIN);
criteria.add(Restrictions.isNull("a.id"));
Run Code Online (Sandbox Code Playgroud)