假设我们有:
@Entity public class Order {
@Id private int id;
@OneToMany(mappedBy="order") private List<Item> items;
...
}
和
@Entity public class Item {
@Id private int id;
@ManyToOne private Order order;
...
}
假设有10000个订单,每个订单有20个项目。
我们需要迭代所有顺序和它们的所有项。
在JPA中最好的方法是什么?
我的问题是,如果我只是迭代如下元素:
for (Order order: em.createTypeQuery("select o from Order o", Order.class).getResultList()) {
report.printOrder(order);
for (Item item: order.getItems()) {
report.printOrderItem(item);
}
}
它将导致10.001 sql查询:
10.000次:从订单id=?
(我们正在使用EclipseLink)