【发布时间】:2012-04-30 08:21:57
【问题描述】:
我正在尝试使用 Hibernate 从表中检索大约 1 亿行。我有一个包含费用集合的持久实体项目(另一个持久实体)。鉴于我将迭代结果并访问每个对象的费用,我想急切地获取费用以避免 n+1 问题。
我还应该提到我想将它加入另一个名为 Provider 的表(一对一映射但没有外键)。我试过了:
String query = "select new " + Order.class.getName()
+ "(i, p) from Item i left join fetch i.fees f, Provider p where "
+ "p.factoryId=i.factoryId and p.factoryRef=i.factoryRef";
return session.createQuery(query).scroll();
我的 Order 类包含一个 Provider 字段和一个 Item 字段。我收到此错误:
引起:org.hibernate.QueryException:查询指定连接 正在获取,但获取的关联的所有者不存在 选择列表
我想最终得到一个可滚动的订单列表,其中包含项目(急切收取的费用)和提供者。
【问题讨论】:
标签: java hibernate hql eager scrollableresults