У мене є Order
клас, у якому є список, OrderTransactions
і я відобразив його за допомогою картографії зі сплячим режимом «багато в чому»:
@OneToMany(targetEntity = OrderTransaction.class, cascade = CascadeType.ALL)
public List<OrderTransaction> getOrderTransactions() {
return orderTransactions;
}
Вони Order
також мають поле orderStatus
, яке використовується для фільтрації за такими критеріями:
public List<Order> getOrderForProduct(OrderFilter orderFilter) {
Criteria criteria = getHibernateSession()
.createCriteria(Order.class)
.add(Restrictions.in("orderStatus", orderFilter.getStatusesToShow()));
return criteria.list();
}
Це працює, і результат, як очікувалося.
Тепер ось моє питання : Чому, коли я чітко встановлюю тип вибору EAGER
, Order
s відображається декілька разів у списку результатів?
@OneToMany(targetEntity = OrderTransaction.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
public List<OrderTransaction> getOrderTransactions() {
return orderTransactions;
}
Як мені доведеться змінити свій код критеріїв, щоб досягти такого ж результату, як новий параметр?