Friday, August 5, 2011

Adding complex and & Ors in hibernate

Recently i had to do a query as:

select * from t_table where (t.a=’a’ and t.b=’b’) or (t.a=’aa’ and t.b=’bb’). One way to get over this is via HQL query… which i hate.. i wanted to do it using criterias… finally Conjunction and disjunctions came for resque. Below is the code.

Session session = getSession();
try {
Criteria crit = session.createCriteria(Table.class);
Disjunction conMerOrs = Restrictions.disjunction();
for (AB ab: ABList) {
Conjunction ands = new Conjunction();
ands.add(Restrictions.eq("a", ab.a()));
ands.add(Restrictions.eq("b", ab.b));
ors.add(ands);
}
crit = crit.add(ors);
return crit.list();
} finally {
session.close();
}



let me know if it helped

No comments:

Post a Comment