如何使用条件API

时间:2015-04-24 18:27:01

标签: jpa-2.0 openjpa

我有如下的实体课程。我正在使用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获取列表的指示。

1 个答案:

答案 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);