2015-04-24 38 views
1

我有实体类如下。我正在使用公开的jpa。如何使用标准获取值列表API

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

+0

对不起,不正确的格式。我无法在移动版本的SO中做到这一点。 – Pravin

+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); 
相关问题