Order
リストのあるクラスがあり、次のOrderTransactions
ように1対多のHibernateマッピングでマッピングしました。
@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;
}
新しい設定で同じ結果を得るには、どのように基準コードを変更する必要がありますか?