Hibernate criteria query to match against all child collection elements
- by Andrew Harrison
Hi,
This question is very similar to link text but the responses were minimal to that question.
I have a parent class with a Set of child entities. The child entities are just a wrapper for a string and live in a different table to the parent entity. I want to have a criteria query that returns the parent entities when all the members of the set of child entities return true to a condition. This condition is matching against one of a list of strings. Here's where I am:
Criteria c = criteria();
Criteria ands = c.createCriteria("ands");
Disjunction dis = Restrictions.disjunction();
for (String value : values) {
dis.add(Restrictions.like("value", "%" + value + "%"));
}
ands.add(dis);
return list(c);
"ands" is the set of entities with a "value" field that is a string.
"criteria()" creates a criteria for the parent class. "list()" just calls criteria.list();
This is just matching against any of the elements, rather than all.
Hope this makes sense. Any help much appreciated.