Chargement paresseux de Spring Hibernate Blob
Le chargement paresseux dans Hibernate permet une récupération différée des données, réduisant ainsi la consommation de mémoire et améliorant les performances. Cependant, certains utilisateurs ont rencontré des problèmes de chargement paresseux des LOB (Large Object Binary) dans Hibernate.
Dans une configuration Hibernate typique avec MySQL, TOMCAT, Spring et Hibernate, les entités annotées avec @Lob devraient avoir une récupération paresseuse. par défaut. Cependant, certains utilisateurs signalent que ce comportement est incohérent entre les différents pilotes et bases de données.
Un problème potentiel est lié à l'instrumentation du bytecode. L'utilisation de frameworks comme Javaassist ou cglib pour la manipulation du bytecode peut affecter la façon dont Hibernate interprète les annotations de chargement différé.
Dans les cas où le chargement différé des LOB échoue, la solution de contournement recommandée consiste à utiliser des mappages un-à-un comme espace réservé pour le Champs LOB. Cela implique de créer des classes distinctes qui font référence à la même table et à la même clé primaire, mais qui contiennent uniquement les champs LOB nécessaires en tant que propriétés. Les mappages doivent être configurés comme fetch="select" et lazy="true". Cela garantit que les données LOB ne sont récupérées que lorsqu'elles sont explicitement demandées.
En implémentant cette solution, vous pouvez efficacement activer le chargement paresseux des LOB tout en résolvant les problèmes de compatibilité potentiels ou les limitations du mécanisme de chargement paresseux d'Hibernate.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!