Моя проблема кажется мне довольно простой, но я просто не могу найти ответ, который работает. У меня есть Hibernate Entity, у которого есть связь ManyToMany с другой сущностью, которая по умолчанию лениво выбирается. Я хочу создать критерии, которые будут возвращать сущность с загруженной ассоциацией ManyToMany.
Вот сущность, о которой идет речь (с удаленными несущественными частями):
@Entity
public class Order {
@ManyToMany
private List<Item> items;
@ManyToMany
private List<Discount> discountEntries;
...
}
Вот мои известные попытки и результаты:
Criteria criteria = getSession().createCriteria(Order.class)
.setFetchMode("items", FetchMode.SELECT)
.setFetchMode("discountEntries", FetchMode.SELECT);
criteria.list();
- загружает предметы лениво
Criteria criteria = getSession().createCriteria(Order.class)
.setFetchMode("items", FetchMode.JOIN)
.setFetchMode("discountEntries", FetchMode.JOIN);
criteria.list();
- Невозможно получить несколько сумок
Criteria criteria = getSession().createCriteria(Order.class)
.createAlias("items", "items", CriteriaSpecification.INNER_JOIN)
.setFetchMode("items", FetchMode.JOIN)
.createAlias("discountEntries", "discountEntries", CriteriaSpecification.INNER_JOIN)
.setFetchMode("discountEntries", FetchMode.JOIN);
criteria.list();
- возвращает пустой список
РЕДАКТИРОВАТЬ: Добавлена еще одна ассоциация ManyToMany, поскольку это, кажется, является частью проблемы.