Bonjour,
J'ai un traitement Batch avec Hibernate qui dure trop longtemps.
Avec les logs je me suis apercu que je ramenais des grappes d'objets dont je n'ai rien a faire.
Je cherche donc a diminuer au Maximum mes requetes Criteria, et donc comment optimiser.
Je Veux uniquement ramener les libelles de la Class B dans mon criteria sans ramener le reste de la grappe
Ici uniquement la classe A et les libelles des deux classes B sans les classes C et D .
J'aiMais pour chaque collection de chaque classe "fille", je dois mettre le fetch.select , je trouve cela un peu lourd ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Pour l instant je fais un Criteria crit = ((Session) getEntityManager().getDelegate()).createCriteria(A.class); crit.setFetchMode("filsB2.maListe", FetchMode.SELECT); crit.setFetchMode("filsB1.maListe", FetchMode.SELECT); crit.setFetchMode(COLLECTION A EVITER DE CHARGER, FetchMode.SELECT); return crit.list(); Classe A { String nom; List l1; B filsB1; B filsB2; int x; D maclasse D; } Class B { String libelle; List maListe; Class C; } Class C { List lc; String nom; int xx; } Class D { List ld01; List ld02; String prenom }
Il a t il mieux Merci ??
Partager