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,Orders会在结果列表中多次出现?
@OneToMany(targetEntity = OrderTransaction.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)public List<OrderTransaction> getOrderTransactions() {
return orderTransactions;}如何更改我的条件代码以使用新设置达到相同的结果?
四季花海
临摹微笑
慕标琳琳
随时随地看视频慕课网APP
相关分类