Estoy confundido. Emmanuel Bernard escribió en ANN-418
que @Lob
son perezosos por defecto (es decir, ni siquiera necesita usar @Basic(fetch = FetchType.LAZY)
anotación).
Algunos usuarios informan que la carga diferida de un @Lob
no funciona con todos los controladores/bases de datos
.
Algunos usuarios informan que funciona cuando se usa instrumentación de bytecode (¿javassit? ¿cglib?).
Pero no puedo encontrar ninguna referencia clara de todo esto en la documentación.
Al final, la solución alternativa recomendada es usar mapas uno a uno "falsas" en lugar de propiedades. Elimine los campos LOB de su clase existente, cree nuevas clases que hagan referencia a la misma tabla, la misma clave principal y solo los campos LOB necesarios como propiedades. Especifique las asignaciones como uno a uno, fetch="select", lazy="true". Mientras su objeto principal todavía esté en su sesión, debería obtener exactamente lo que desea. (simplemente transponga esto a las anotaciones).