Grosses collections et lazy : besoin d'explication
Bonjour à tous,
J'ai parcouru un peu les différents topics au sujet du lazy d'hibernate, mais j'ai encore du mal à bien utiliser hibernate pour de grosses sélections.
Donc j'ai un mapping de ce type :
Code:
1 2 3 4 5
|
<set name="probesetsOfCdf" lazy="extra" >
<key column="pbset_cdf_id"/>
<one-to-many class="app.Probeset"/>
</set> |
Donc ce set doit contenir plus de 50 000 élements, j'ai donc essayé de mettre le lazy à "extra" pour que cette portion de code fonctionne :
Code:
1 2 3
|
Set<Probeset> pbsets = cdf.getProbesetsOfCdf();
System.out.println("TEST CDF = " + pbsets.size()); |
Du coup, je pensais que c'était gagné, càd que j'ai enfin pu "charger" une grosse collection, mais en faisant :
Code:
1 2 3 4 5 6
|
Iterator iter = pbsets.iterator();
while (iter.hasNext()) {
Probeset p = (Probeset)iter.next();
System.out.println(p.getPbsetName());
} |
Et bien là, c'est le drame :
Citation:
java.lang.OutOfMemoryError: Java heap space
Donc voilà, comment fait-on pour travailler sur une grosse collection et pour que Hibernate se charge lui-même de charger les élements quand on en a besoin...C'est avec la configuration du lazy qu'on peut le faire?
Merci d'avance pour vos réponses.