Hibernate - 限制条件 parent class

Hibernate - Criteria with restriction on parent class

我有一个带有 child B 的对象 A。我为 B 创建了一个条件,但尝试对 A 使用限制。但是,这不起作用:

Criteria criteria = getCurrentSession().createCriteria(B.class, "p");
criteria.add(eq("B.name", nameB));
criteria.add(eq("B.a.name", nameA));

return criteria.list();

我收到以下错误:

org.hibernate.QueryException: could not resolve property: a.name of: model.B

如果重要的话,我在 B.a 属性 上有一个 FetchType.LAZY。我试图将其更改为 FetchType.EAGER 但没有帮助。

感谢文档,我解决了它。

criteria.add(eq("nom", nomB)).setFetchMode("a", FetchMode.JOIN).createCriteria("a").add(eq("nom", nomA));

FetchMode.JOIN 类似于 FetchMode.EAGER 但最后一个已弃用。