I have 2 tables:
- a master
table
with single attributes of some objects(id, name, title, ...)
- a table with repeating attributes
(master_id, attribute_name, attribute_value)
Example data for #2:
- 10, "authors", "John Bill"
- 10, "authors", "Merry J"
- 10, "owners", "Chris O."
- 11, "authors", "Andrew K."
It's a one-to-many relation:
<set name="repeating" table="xxx" cascade="none" mutable="false" lazy="true" fetch="join">
<key column="...."/>
<one-to-many class="...." />
</set>
I want to find the master object (id=10)
where "authors" = "John Bill"
and "authors" = "Merry J"
and "owners" = "Chris O."
For the first condition I can do it in that way:
session.createCriteria(Master.class)
.createCriteria("repeating")
.add(Restrictions.eq("attributeName", "authors"))
.add(Restrictions.eq("attributeValue", "John Bill"))
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
How can I add other conditions using Criteria?
Thanks