vi la siguiente declaración en el libro "hibernar en acción". cualquiera me puede decir cómo anular la estrategia en tiempo de ejecución. y ¿puedes hacer lo contrario? ¿Tengo la estrategia de búsqueda establecida como floja como falsa y quiero establecerla como verdadera?cómo anular la estrategia de recuperación de hibernación en tiempo de ejecución
"La extracción diferida le permite decidir qué cantidad del gráfico de objeto se carga en el primer hit de la base de datos y qué asociaciones se deben cargar solo cuando son las primeras accedidas. La recuperación diferida es un concepto fundamental en la persistencia de objetos y el primer paso para alcanzar un rendimiento aceptable es . Recomendamos que, para empezar, todas las asociaciones se configuren para la recuperación de perezoso (o quizás perezoso por lotes) en el archivo de asignación. Esta estrategia puede entonces ser anulado en tiempo de ejecución por las consultas de esa fuerza con ganas ir a buscar a producirse.”
Parece que Hibernate no está contento con que se agregue una 'búsqueda de unión izquierda' a menos que la entidad de destino aparezca en la lista de selección cuando se utilizan los criterios de JPA2. Produce el error "búsqueda especificada de obtención de unión, pero el propietario de la asociación recuperada no estaba presente en la lista de selección" si se agrega un root.fetch ("someChildProperty") para solicitar una búsqueda de unión izquierda. Ideas? JPA2 parece hacer que sea increíblemente difícil decir "busca esto de forma perezosa la mayor parte del tiempo, pero ansiosamente en esta única situación". –
¡Muchas gracias! Muy apreciado, Andrew! –