Bonjour,
Ma question peut se résumer ainsi :
Comment réinitialiser les Collection LAZY quand on as plus besoin des données qu'elles contienent mais que l'on souhaite quand même pouvoir eventuellement les recharger par la suite de façon transparente via le mechanisme Lazy.
Je développe une application qui parcourt une arborescence de taille importante en chargeant chaque branche de façon LAZY.
A l'ouverture de mon application je crée une Session hibernate que je clos à la sortie de l'application.
Cela fonctionne très bien, mes objets sont effectivement chargés à la demande de façon transparente dans mon code applicatif (traces SQL hibernate à l'appui)
Par contre actuellement je n'ais pas trouvé de moyen propre pour libérer les objets chargés via une relation OneToMany lazy.
Un .clear() brutal sur la collection lazy fera qu'elle ne pourra plus jamais être rechargée de façon transparente.
Le seul moyen que j'ai trouvé actuellement est de faire un refresh() sur l'entité propriétaire de la collection lazy ce qui semble réinitialiser toutes les relations OneToMany Lazy que l'entité possède.
Je trouve cela un peu violent d'être obligé de passer par la base pour pouvoir libérer des objets de mon cache
N'y as t'il pas un mechanisme hibernate qui permette de réinitialiser les collections Lazy sans être obligé de passer par la base ?
Merci d'avance pour votre aide.
Partager