Есть два класса A и B. Класс A содержит набор объектов класса B. Класс B имеет поле X. Я хотел бы иметь возможность возвращать список объектов класса A, которые имеют в своих коллекциях объекты типа B, имеющие определенное значение их свойства X. Возможно ли это вообще?
До сих пор я пробовал что-то вроде:
Root<A> root = criteriaQuery.from(A.class);
criteriaQuery.select(root);
criteriaQuery.where(root.get("bCollection").get("x").in("value"))
но конечно не работает. Как справиться с этим? Класс B отображается как вложенный компонент следующим образом:
<set name="bCollection" table="bCollection">
<key column="a_id" />
<composite-element
class="example.B">
<many-to-one name="x" column="b_id" not-null="false"
cascade="none" foreign-key="b_fk" />
</composite-element>
</set>
Я надеюсь, что кто-то знает... спасибо!