У меня есть 2 таблицы:
- мастер
table
с отдельными атрибутами некоторых объектов(id, name, title, ...)
- таблица с повторяющимися атрибутами
(master_id, attribute_name, attribute_value)
Пример данных для #2:
- 10, "authors", "John Bill"
- 10, "authors", "Merry J"
- 10, "owners", "Chris O."
- 11, "authors", "Andrew K."
Это отношение один ко многим:
<set name="repeating" table="xxx" cascade="none" mutable="false" lazy="true" fetch="join">
<key column="...."/>
<one-to-many class="...." />
</set>
Я хочу найти главный объект (id=10)
, где "authors" = "John Bill"
и "authors" = "Merry J"
и "owners" = "Chris O."
Для первого условия я могу сделать это так:
session.createCriteria(Master.class)
.createCriteria("repeating")
.add(Restrictions.eq("attributeName", "authors"))
.add(Restrictions.eq("attributeValue", "John Bill"))
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
Как добавить другие условия с помощью критериев?
Спасибо