Hibernate Criteria使用FetchType.EAGER多次返回子项
我有一个Order
包含列表的类,OrderTransactions
我用一对多的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();}
这有效,结果如预期。
现在这里是我的问题:为什么,当我明确地设置fetch类型时EAGER
,Order
s会在结果列表中多次出现?
@OneToMany(targetEntity = OrderTransaction.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)public List<OrderTransaction> getOrderTransactions() { return orderTransactions;}
如何更改我的条件代码以使用新设置达到相同的结果?
临摹微笑
慕标琳琳
相关分类