Я пытаюсь использовать Hibernate для извлечения примерно 100 миллионов строк из таблицы. У меня есть постоянный элемент объекта, который содержит набор комиссий внутри (другой постоянный объект). Учитывая, что я буду перебирать результат и получать доступ к сборам для каждого объекта, я хочу с нетерпением получать сборы, чтобы избежать проблемы 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();
Класс My Order содержит поле Provider и поле Item. Я получаю эту ошибку:
Вызвано: org.hibernate.QueryException: в запросе указана выборка объединения, но владелец извлеченной ассоциации не присутствует в списке выбора
Я хотел бы получить прокручиваемый список Order, который содержит Item (с нетерпеливо полученными сборами) и Provider.