views:

236

answers:

2

let say my array has 3 integer object 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
}
+3  A: 

You can use in restriction while takes Array argument.

  Integer[] integerArray = ...
  criteria.add(Restrictions.and(Restrictions.not(
        Restrictions.in("stepId", integerArray)
  );
Chandra Patni
+2  A: 

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 );
o.k.w