sql >> Base de Datos >  >> RDS >> Mysql

Spring, Hibernate, Blob carga diferida

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).