我有一个带有孩子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,但它没有帮助。
答案 0 :(得分:0)
由于文档的原因,我解决了这个问题。
criteria.add(eq("nom", nomB)).setFetchMode("a", FetchMode.JOIN).createCriteria("a").add(eq("nom", nomA));
FetchMode.JOIN与FetchMode.EAGER类似,但最后一个不推荐使用。