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)
);
精彩评论