开发者

iterate array to create hibernate criteria statement

let say my array has 3 integer obj开发者_StackOverflowect value= 3,4,5 i would need to create hibernate criteria that look like below

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))))));

the above criteria is created manually, i wonder can automate this through iteration

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


Yes, you can use Disjunction in your loop:

Disjunction disjunction = Restrictions.disjunction();
for(Iterator iterator = integerArray.iterator; iterator.hasNext()){
    disjunction.add(yourRestriction); //add your restirction here
}
criteria.add(disjunction );


You can use in restriction while takes Array argument.

  Integer[] integerArray = ...
  criteria.add(Restrictions.and(Restrictions.not(
        Restrictions.in("stepId", integerArray)
  );
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜