Bonjour,
Tout d'abord voici ma problématique :
1)Un objet A contient un set d'objet B (en moyenne 25 objets B).
2) Il y a un batch-size de 100 entre A et B
2)Je dois charger disons 2000 objet A et ensuite charger tous les objets B appartenant à ces objets A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <Set name="setObjetB" lazy="true" batch-size="100" inverse="true" cascade="all-delete-orphan"> <key column="objetBid"/> <one-to-many class="com.objetB"/> </Set>
J'ai essayé 2 stratégies :
1) Charger tous les objets A et ensuite charger les objets B. Le batch-size s'active, c'est rapide mais ça consomme de la mémoire
2) Utiliser un scrollableResult pour charger les objets A. Le batch-size ne s'active pas, c'est moins rapide mais moins consommateur de mémoire.
Perfs :
1) temps = 36s
mem utilisé = 37 Mo
2)temps = 30s
mem utilisé = 54mo
A votre avis quel est la meilleur stratégie ?
Merci
Partager