Estoy tratando de usar Hibernate para recuperar aproximadamente 100 millones de filas de una tabla. Tengo un elemento de entidad persistente que contiene una colección de tarifas dentro (otra entidad persistente). Dado que I será iterar sobre el resultado y acceder a las tarifas para cada objeto, quiero buscar con impaciencia las tarifas para evitar el problema n + 1.Buscando colecciones de recolección de Hibernate con ScrollableResults
También debo mencionar que quiero unirme a otra tabla llamada Proveedor (asignación uno a uno pero sin clave externa). Intenté:
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();
Mi clase de orden contiene un campo Proveedor y un campo Artículo. Me sale este error:
Caused by: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list
me gustaría terminar con una lista desplazable de la Orden que contienen Artículo (con las tasas recuperada tempranamente) y proveedor.
Creo que esta respuesta es correcta. Si es así, debería dejar que Hibernate sepa que está obteniendo 'Item's cambiando la consulta para devolver' List' en lugar de construir 'Order':' select i, p from ... '. Luego tendrá que crear el 'Order's manualmente. –