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 但最后一个已弃用。
我有一个带有 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 但最后一个已弃用。