Salve a tutti,
vorrei la delucidazione su un dubbio sulle strategie di caricamento di Hibernate.

Se non sbaglio la differenza tra lazy false e lezy extra è che:
false => carica tutta la collezione alla prima richiesta (sia in lettura che in scrittura ed è qui il mio dubbio)
extra => carica solo l'oggetto di cui si ha bisogno in un dato momento (quindi se si itera su una collezione mappata come lazy extra si avranno collection.size() caricamenti)

Se io ho una collezione molto grande, ma in cui voglio solo scrivere (nello specifico scrivo eventi di log) se la mappo come lazy false, alla prima scrittura, verrà caricata tutta la collezione in memoria (con i possibili danni che ne consegue), invece se la mappo come lazy extra, questa non verrà caricata.

Sto dicendo bene? o c'è qualcosa che mi sfugge?


PS: nello specifico ho una collezione che può eventualmente caricare 100K di oggetti, e se voglio solo aggiungere un nuovo oggetto di log faccio:

obj.logCollection.add(<log>);

in questo caso se la collezione logCollection viene mappata come lazy false, verrà comunque caricata in memoria, nel caso di lazy = extra invece questo non succede.

E' corretto?