итерация массива для создания критерия гибернации - PullRequest
4 голосов
/ 12 января 2010

скажем, мой массив имеет 3 целочисленных значения объекта = 3,4,5 мне нужно создать критерии гибернации, которые выглядят так, как показано ниже

criteria.add(Restrictions.and(Restrictions.not(Restrictions.eq(
        "stepId", new Integer(3))), Restrictions.and(Restrictions
        .not(Restrictions.eq("stepId", new Integer(4))), Restrictions
        .not(Restrictions.eq("stepId", new Integer(5))))));

вышеупомянутые критерии созданы вручную, интересно, можно автоматизировать это с помощью итерации

for(Iterator iterator = integerArray.iterator; iterator.hasNext()){
    // create the criteria above
}

Ответы [ 2 ]

11 голосов
/ 12 января 2010

Да, вы можете использовать Disjunction в вашем цикле:

Disjunction disjunction = Restrictions.disjunction();
for(Iterator iterator = integerArray.iterator; iterator.hasNext()){
    disjunction.add(yourRestriction); //add your restirction here
}
criteria.add(disjunction );
7 голосов
/ 12 января 2010

Вы можете использовать ограничение в , пока принимает аргумент Array.

  Integer[] integerArray = ...
  criteria.add(Restrictions.and(Restrictions.not(
        Restrictions.in("stepId", integerArray)
  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...