Je suis confus. Emmanuel Bernard a écrit dans ANN-418
ce @Lob
sont paresseux par défaut (c'est-à-dire que vous n'avez même pas besoin d'utiliser le @Basic(fetch = FetchType.LAZY)
annotation).
Certains utilisateurs signalent que le chargement paresseux d'un @Lob
ne fonctionne pas avec tous les pilotes/bases de données
.
Certains utilisateurs signalent que cela fonctionne lors de l'utilisation de instrumentation de bytecode (javassit? cglib?).
Mais je ne trouve aucune référence claire de tout cela dans la documentation.
À la fin, la solution de contournement recommandée est d'utiliser un "faux" mappage un à un au lieu de propriétés. Supprimez les champs LOB de votre classe existante, créez de nouvelles classes faisant référence à la même table, à la même clé primaire et uniquement aux champs LOB nécessaires en tant que propriétés. Spécifiez les mappages comme un à un, fetch="select", lazy="true". Tant que votre objet parent est toujours dans votre session, vous devriez obtenir exactement ce que vous voulez. (il suffit de transposer ceci aux annotations).