He creado una clase en la que he configurado algunos de sus campos (otras entidades) para que sean cargables LAZY. Ahora necesito usar este objeto después de que se haya desconectado de la sesión, así que obviamente necesito asegurarme de que todos los campos que necesito se llenen antes de separarlo. Intenté simplemente llamar a los buscadores a estos campos flojos, pero eso no pareció funcionar. Alguien tiene una idea de cómo forzar estos campos para ser cargados?Carga diferida de Hibernate en objetos separados
Respuesta
Hibernate.initialize(yourObject)
forzará-inicializará el objeto/colección que se le pasa. Necesitas una sesión activa para esto.
Si la entidad está separada, tendría que volver a conectar el objeto (usando merge(..)
) a una sesión activa y luego inicializarlo.
+1 Bozho ......... –
'merge' es solo para algunos casos muy especiales. Como regla general recomiendo 'update' – pakore
@pakore - bueno, la diferencia creo que' merge (..) 'también puede insertar un nuevo registro. Pero estoy más acostumbrado a la semántica de JPA, por lo que podría ser un poco diferente aquí. – Bozho
Puede volver a adjuntarlo a la sesión. Esta es la forma normal.
session.update(yourObject); //This reattachs the object to the current session.
yourObject.someGetter(); //This will work now.
sé que le ha pedido Hibernate pero EclipseLink tiene esta función, por lo que valdría la pena echarle un vistazo si está utilizando JPA y no atado a una implementación dada. Usted podría encontrarse con otros problemas que migran a EclipseLink aunque ..
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
puede agregar esta línea en el archivo de configuración, se puede recuperar sus objetos perezosos incluso se separa, pero debe ser el uso posterior a la versión 4.1.7 ya que hay algún problema de pérdida de conexión con la versión anterior. Consulte here
- 1. Deshabilitar la carga diferida en Hibernate
- 2. Spring + Hibernate Error de carga diferida
- 3. Evitar que Dozer active la carga diferida de Hibernate
- 4. PHP Objetos de carga diferida e inyección de dependencia
- 5. ¿Biblioteca de carga diferida?
- 6. Carga diferida, carga diferida y carga ansiosa en el marco de la entidad
- 7. ¿Carga diferida del iframe?
- 8. Carga diferida en Knockout JS
- 9. Carga difusa de Hibernate y Hazelcast
- 10. nhibernate opciones de carga diferida
- 11. UITableView optimización de carga diferida
- 12. Carga diferida de los atributos
- 13. Carga diferida de TreeView en .NET
- 14. Páginas de carga diferida en UIScrollView
- 15. La carga diferida en Rails 3.2.6
- 16. UITableView con desplazamiento infite y carga diferida
- 17. imágenes carga diferida dentro de jQuery Mobile
- 18. Carga diferida de imágenes con degradación (JavaScript)
- 19. imágenes de carga diferida y SEO
- 20. Elementos de carga diferida con filtrado
- 21. Patrón de repositorio con carga diferida usando POCO
- 22. Hibernate: Habilitar la recuperación diferida en la API de Criterios
- 23. LINQ to SQL: en el procesamiento de la carga de asociaciones con carga diferida
- 24. Evaluación diferida en Ruby
- 25. Implementación de módulos con carga diferida en VBScript
- 26. Excepción de inicialización diferida de Grails e Hibernate
- 27. Cómo convertir esta consulta LINQ en carga diferida
- 28. GWT: carga diferida de recursos de JS externos
- 29. Entity Framework: ObjectContext.ExecuteStoreQuery produce objetos separados
- 30. Hibernate carga lenta no funciona
¿está seguro de que su sesión está abierta durante la llamada a getters? –
Sesión si definitivamente abierto cuando llamo a los getters –