【问题标题】:How to get list of values using criteria API如何使用标准 API 获取值列表
【发布时间】:2015-04-24 18:27:01
【问题描述】:

我有如下的实体类。我正在使用 open jpa。

Class RootClass{
 A a;
}
Class A{
  List<B> b;
}
Class B {
  C c;
}
Class C {
  String name;
}

当 b 是单个对象而不是列表时,我使用以下语句 选择名称。它工作正常。

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 获取列表的指示。

【问题讨论】:

  • 很抱歉没有正确格式化。我无法在 SO 的移动版本中做到这一点。
  • 我给你格式化

标签: jpa-2.0 openjpa


【解决方案1】:

你需要的是join而不是get

Root<RootClass> rootElement = myQuery.from(RootClass.Class);
...
Predicate predicate = criteriaBuilder.equal(rootElement.join("a").join("b").
    get("c").<String>get("name"), userName);

【讨论】:

    猜你喜欢
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多