2013-12-13 2 views
3

Я новичок в JPA, но должны реализовать свой проект в этой технологииКак передать список аргументов в запросе критериев, jpa?

, что я пытаюсь сделать, это построить через CriteriaQuery некоторый дб запрос, но не имеют ни малейшего представления о том, как указать список параметров в коде ниже:

CriteriaBuilder qb = em.getCriteriaBuilder(); 
    CriteriaQuery<MyClass> c = qb 
      .createQuery(MyClass.class); 
    Root<MyClassPK> p = c 
      .from(MyClass.class); 

    c.where(qb.equal(qb.trim((p.<MyClass> get("id")).<String> get("Name")), 
    HERE LIST OF ARGS HOW TO PASS ??));  
TypedQuery<MyClass> q = em.createQuery(c); 

код выглядит довольно сложной причиной сложной архитектуры архива. Может ли кто-нибудь сказать мне, как решить мою проблему? Или, может быть, только одно решение для (...)?

ответ

2

Если я хорошо понял ваш вопрос, вам нужно «в» состоянии:

CriteriaBuilder qb = em.getCriteriaBuilder(); 
CriteriaQuery<MyClass> c = qb.createQuery(MyClass.class); 
Root<MyClassPK> p = c.from(MyClass.class); 

// c.where(qb.equal(qb.trim((p.<MyClass> get("id")).<String> get("Name")), HERE LIST OF ARGS HOW TO PASS ??));  

List<String> names = new ArrayList<String>(); 
names.add("name1"); 
names.add("name2"); 
names.add("name3"); 
c.where(qb.trim((p.<MyClass> get("id")).<String> get("Name")).in(names)); 

TypedQuery<MyClass> q = em.createQuery(c); 
+0

спасибо за ответ! Я попробую на работу после выходных, привет –

+0

, к сожалению, ваш совет не работает. Мое затмение подчеркивает метод укладки и говорит: «Пожалуйста, переименуйте в файл» ... Спасибо –

+0

Я пропустил a), я исправлю его сразу –

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