我有如下的实体课程。我正在使用open jpa。
Class RootClass{
A a;
}
Class A{
List<B> b;
}
Class B {
C c;
}
Class C {
String name;
}
当b是单个对象而不是list时,我使用了以下语句 选择名称。它工作正常。
Root<RootClass> rootElement = myQuery.from(RootClass.Class);
... ...
Predicate predicate = criteriaBuilder.equal(rootElement.get("a").get("b").get("c"). <String>get("name"),userName);
但是当b被更改为List时,上面的代码不起作用。请提供一些关于如何使用Root获取列表的指示。
答案 0 :(得分:0)
您需要的是join
而不是get
:
Root<RootClass> rootElement = myQuery.from(RootClass.Class);
...
Predicate predicate = criteriaBuilder.equal(rootElement.join("a").join("b").
get("c").<String>get("name"), userName);