我有两个具有双向@OneToOne映射的类。
Class A { @OneToOne(fetch = FetchType.Lazy, mappedBy="a") private B b; } Class B { @OneToOne(fetch = FetchType.Eager) private A a; }
我需要编写代码来检索B的所有实例,这些实例没有与之关联的A实例。我还需要为所有没有B的A编写类似的查询。
我努力了:
Criteria criteria = getSession().createCriteria(B.class) criteria.add(Restrictions.isNull("a")
但这似乎总是返回null。有什么想法吗?
这对两个方向都应该起作用:
Criteria criteria = session.createCriteria(B.class, "b"); criteria.createAlias("b.a", "a", Criteria.LEFT_JOIN); criteria.add(Restrictions.isNull("a.id"));