Критерии нетерпеливой коллекции с выборкой, чтобы избежать n + 1 выбора
Допустим, что Предмет и Предложение - это объекты: Предмет имеет много предложений. Они отображаются вHibernate в типичных отношениях родитель / ребенок:
<class name="Item" table="ITEM">
...
<set name="bids" inverse="true">
<key column="ITEM_ID"/>
<one-to-many class="Bid"/>
</set>
</class>
Как я могу избежать выбора n + 1 при попытке получить доступ к ставкам каждого элемента после выполнения этого запроса?
List<Item> items = session.createCriteria(Item.class)
.createAlias("bids", "b").
.add(Restrictions.gt("b.amount", 100)).
.list();
Note Мне нуженeager fetching для ставок, ноwith a further restriction on the collection (b.amount & gt; 100)
Я безуспешно попробовал следующее:
List<Item> items = session.createCriteria(Item.class)
.setFetchMode("bids", FetchMode.JOIN).
.createAlias("bids", "b").
.add(Restrictions.gt("b.amount", 100)).
.list();
List<Item> items = session.createCriteria(Item.class)
.createCriteria("bids")
.add(Restrictions.gt("amount", 100)).
.list();