2015-04-24 2 views
1

У меня есть классы Entity, как показано ниже. Я использую open jpa.Как получить список значений с использованием критериев API

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

Когда б был один объект вместо списка, я использовал следующее заявление выберите имя. Он работал нормально.

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

Но когда b изменяется как Список, вышеуказанный код не работает. Пожалуйста, предоставьте несколько указателей на то, как получить список с использованием 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^