Comme le precise Sinok il faut que tu mettes lazy=true sur les collections, sinon tu vas tout charger en mémoire alors tu n'en as pas forcement besoin.
De plus je te recommande d'ajouter dans le mapping de tes classes lazy=true
<class lazy="true"></class>
cela permet de charger les classes à la demande (regarde bien la doc hibernate sur ce point).
Sans ses ajouts, lorsque tu chargeras un objet depuis la base tu n'executeras pas 1 select, mais une infinité (ie : tu vas monté la base en mémoire).
Les différents caches :
Cache de la session : Ce cache a de multiples roles. Je ne considére pas ce cache comme un cache (super lol . C'est une structure qui permet (pour l'objet session) d'effectuer le dirty-checking, de garantir l'unicité d'une instance d'objet (ie : tu n'as qu'un objet Character d'id 1), de gerer les cycles dans ton arborescence d'objet, de faire des controles de cohérences sur les objets que tu manipules et quand meme d'éviter de faire trop de requetes quand tu demandes 10 fois le meme objet . Edit : Une chose etonnante c'est que l'on remarque que le cache de la session provoque une forte consommation mémoire, mais qu'en réalité il permet d'économiser la mémoire
Cache de second level : Cache de données ...
Partager