Bonsoir,
je travaille avec hibernate, spring mvc. Lorsque j'essai de charger une list d'objet, l'application mais trops de temps pour donner la réponse. Comment peut on optimiser la performance avec hibernate.
voici la requette qui est appelée pour obtenir tous mes contrat qui se trouve en BD.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
List<Contrat> myListContrat=getHibernateTemplate().find("from Contrat");
		return myListContrat;
Il faut note que le nombre de contrat en BD est beaucoup(+1000) voici ma classe contrat avec les mapping
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
 
@Entity
@Table(name = "contrat")
public class Contrat {
	private int id;	
	private String numeroReelContrat;	
	private Apporteur apporteur;
	private String nomApportGestion;
	private Souscripteur souscripteur;
	private Fournisseur fournisseur;	
	private Typeproduit typeProduit;
	private Produit produit;
	private Date dateEffet;	
	private Date dateResilisation;
	private Integer nobreAssure;
	private String college;	
	private Float tauxPrevoyance;
	private Float trancheA;
	private Float trancheB;
	private Float trancheC;
	private Float trancheD;
	private Float agirc;
	private Float forfait;
	private Float montantForfait;
	private Float tauxSante; 
	private Float tauxIsole;
	private Float tauxFamille;
	private Float couple;
	private Float tauxAdulte;
	private Float tauxEnfant;
	private Float tauxUnique;
	private Float primeannuellettc;
	private Integer fractionnement;	
	private Float tauxDelegue;
	private Float tauxPartenaire;
	private Float tauxLacentrale;
	private Integer nombreMois;	
	private List<Assure> listAssure=new ArrayList<Assure>();
	private Set<AssuresContrat>listAssuresContrat=new HashSet<AssuresContrat>();
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNomApportGestion() {
		return nomApportGestion;
	}
	public void setNomApportGestion(String nomApportGestion) {
		this.nomApportGestion = nomApportGestion;
	}
	public String getNumeroReelContrat() {
		return numeroReelContrat;
	}
	public void setNumeroReelContrat(String numeroReelContrat) {
		this.numeroReelContrat = numeroReelContrat;
	}
	public Date getDateEffet() {
		return dateEffet;
	}
	public void setDateEffet(Date dateEffet) {
		this.dateEffet = dateEffet;
	}
	public String getCollege() {
		return college;
	}
	public void setCollege(String college) {
		this.college = college;
	}
 
	@ManyToOne
	public Souscripteur getSouscripteur() {
		return souscripteur;
	}
	public void setSouscripteur(Souscripteur souscripteur) {
		this.souscripteur = souscripteur;
	}
	@ManyToOne
	public Fournisseur getFournisseur() {
		return fournisseur;
	}
	public void setFournisseur(Fournisseur fournisseur) {
		this.fournisseur = fournisseur;
	}
	@ManyToOne
	public Apporteur getApporteur() {
		return apporteur;
	}
	public void setApporteur(Apporteur apporteur) {
		this.apporteur = apporteur;
	}
	@ManyToOne
	public Produit getProduit() {
		return produit;
	}
	public void setProduit(Produit produit) {
		this.produit = produit;
	}
	@ManyToOne
	public Typeproduit getTypeProduit() {
		return typeProduit;
	}
	public void setTypeProduit(Typeproduit typeProduit) {
		this.typeProduit = typeProduit;
	}
	public Date getDateResilisation() {
		return dateResilisation;
	}
	public void setDateResilisation(Date dateResilisation) {
		this.dateResilisation = dateResilisation;
	}
	public Integer getNobreAssure() {
		return nobreAssure;
	}
	public void setNobreAssure(Integer nobreAssure) {
		this.nobreAssure = nobreAssure;
	}
	public Float getTauxPrevoyance() {
		return tauxPrevoyance;
	}
	public void setTauxPrevoyance(Float tauxPrevoyance) {
		this.tauxPrevoyance = tauxPrevoyance;
	}
	public Float getTrancheA() {
		return trancheA;
	}
	public void setTrancheA(Float trancheA) {
		this.trancheA = trancheA;
	}
	public Float getTrancheB() {
		return trancheB;
	}
	public void setTrancheB(Float trancheB) {
		this.trancheB = trancheB;
	}
	public Float getTrancheC() {
		return trancheC;
	}
	public void setTrancheC(Float trancheC) {
		this.trancheC = trancheC;
	}
	public Float getTrancheD() {
		return trancheD;
	}
	public void setTrancheD(Float trancheD) {
		this.trancheD = trancheD;
	}
	public Float getAgirc() {
		return agirc;
	}
	public void setAgirc(Float agirc) {
		this.agirc = agirc;
	}
	public Float getForfait() {
		return forfait;
	}
	public void setForfait(Float forfait) {
		this.forfait = forfait;
	}
	public Float getMontantForfait() {
		return montantForfait;
	}
	public void setMontantForfait(Float montantForfait) {
		this.montantForfait = montantForfait;
	}
	public Float getTauxSante() {
		return tauxSante;
	}
	public void setTauxSante(Float tauxSante) {
		this.tauxSante = tauxSante;
	}
	public Float getTauxIsole() {
		return tauxIsole;
	}
	public void setTauxIsole(Float tauxIsole) {
		this.tauxIsole = tauxIsole;
	}
	public Float getTauxFamille() {
		return tauxFamille;
	}
	public void setTauxFamille(Float tauxFamille) {
		this.tauxFamille = tauxFamille;
	}
	public Float getCouple() {
		return couple;
	}
	public void setCouple(Float couple) {
		this.couple = couple;
	}
	public Float getTauxAdulte() {
		return tauxAdulte;
	}
	public void setTauxAdulte(Float tauxAdulte) {
		this.tauxAdulte = tauxAdulte;
	}
	public Float getTauxEnfant() {
		return tauxEnfant;
	}
	public void setTauxEnfant(Float tauxEnfant) {
		this.tauxEnfant = tauxEnfant;
	}
	public Float getTauxUnique() {
		return tauxUnique;
	}
	public void setTauxUnique(Float tauxUnique) {
		this.tauxUnique = tauxUnique;
	}
	public Float getPrimeannuellettc() {
		return primeannuellettc;
	}
	public void setPrimeannuellettc(Float primeannuellettc) {
		this.primeannuellettc = primeannuellettc;
	}
	public Integer getFractionnement() {
		return fractionnement;
	}
	public void setFractionnement(Integer fractionnement) {
		this.fractionnement = fractionnement;
	}
	public Float getTauxDelegue() {
		return tauxDelegue;
	}
	public void setTauxDelegue(Float tauxDelegue) {
		this.tauxDelegue = tauxDelegue;
	}
	public Float getTauxPartenaire() {
		return tauxPartenaire;
	}
	public void setTauxPartenaire(Float tauxPartenaire) {
		this.tauxPartenaire = tauxPartenaire;
	}
	public Float getTauxLacentrale() {
		return tauxLacentrale;
	}
	public void setTauxLacentrale(Float tauxLacentrale) {
		this.tauxLacentrale = tauxLacentrale;
	}
	public Integer getNombreMois() {
		return nombreMois;
	}
	public void setNombreMois(Integer nombreMois) {
		this.nombreMois = nombreMois;
	}
	@ManyToMany(fetch=FetchType.EAGER)
	@JoinTable(name="assurescontrat",joinColumns=@JoinColumn(name="contrat_id"),
			inverseJoinColumns=@JoinColumn(name="assure_id"))
	public List<Assure> getListAssure() {
		//listAssure.size();
		return listAssure;
	}
	public void setListAssure(List<Assure> listAssure) {
		//listAssure.size();
		this.listAssure = listAssure;
	}
	@OneToMany(mappedBy="contrat",fetch=FetchType.EAGER)
	public Set<AssuresContrat> getListAssuresContrat() {
		//listAssuresContrat.size();
		return listAssuresContrat;
	}
	public void setListAssuresContrat(Set<AssuresContrat> listAssuresContrat) {
		//listAssuresContrat.size();
		this.listAssuresContrat = listAssuresContrat;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((agirc == null) ? 0 : agirc.hashCode());
		result = prime * result
				+ ((apporteur == null) ? 0 : apporteur.hashCode());
		result = prime * result + ((college == null) ? 0 : college.hashCode());
		result = prime * result
				+ ((fournisseur == null) ? 0 : fournisseur.hashCode());
		result = prime
				* result
				+ ((nomApportGestion == null) ? 0 : nomApportGestion.hashCode());
		result = prime
				* result
				+ ((numeroReelContrat == null) ? 0 : numeroReelContrat
						.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final Contrat other = (Contrat) obj;
		if (agirc == null) {
			if (other.agirc != null)
				return false;
		} else if (!agirc.equals(other.agirc))
			return false;
		if (apporteur == null) {
			if (other.apporteur != null)
				return false;
		} else if (!apporteur.equals(other.apporteur))
			return false;
		if (college == null) {
			if (other.college != null)
				return false;
		} else if (!college.equals(other.college))
			return false;
		if (fournisseur == null) {
			if (other.fournisseur != null)
				return false;
		} else if (!fournisseur.equals(other.fournisseur))
			return false;
		if (nomApportGestion == null) {
			if (other.nomApportGestion != null)
				return false;
		} else if (!nomApportGestion.equals(other.nomApportGestion))
			return false;
		if (numeroReelContrat == null) {
			if (other.numeroReelContrat != null)
				return false;
		} else if (!numeroReelContrat.equals(other.numeroReelContrat))
			return false;
		return true;
	}
 
 
 
 
}
merci de votre reaction