Bonjour à tous,
j'utilise dans un projet Spring 2/Hibernate 3.2/JSF 1.1, et je bute depuis un petit moment sur un problème d’on je ne trouve aucune solution : LazyLoadingException
Ayant parcouru des pages et des pages, je suis tombé sur ce forum :
http://www.developpez.net/forums/arc...p/t-35594.html
La personne avait rencontré le même problème…mais sa solution ne semble pas marcher chez moi !! :’(
Mon problème ce situe à ce niveau :
J’ai une relation one-to-many reliant un Client à aucune ou plusieurs Adresse.
Je souhaite que cette relation soit en mode lazy=true. Et c’est pour cette raison que mon cauchemar existe !
Tout comme le lien fournis plus haut, j’affiche la liste de tous les clients (sans charger leur adresse). Et lorsque je clique sur un de ces clients, je stocke celui-ci dans une variable en session pour la passer à une autre page dans le but de l’éditer.
Le passage s’effectue avec merveille mais lorsque les adresses sont demandées j’obtiens ce joli message d’erreur :
En effet, entre deux appels de mes pages JSF, la session hibernate a été fermé.
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 01:05:52,002 ERROR LazyInitializationException:<init>:19 - could not initialize proxy - the owning Session was closed org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:172) at fr.labmestre.client.model.Client$$EnhancerByCGLIB$$9426579d.getNom(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82) at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141) at com.sun.el.parser.AstValue.getValue(AstValue.java:96) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:183) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56) at javax.faces.component.UIOutput.getValue(UIOutput.java:77) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:217) at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135) at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:75) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:440) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:242) at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:580) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) 9 févr. 2007 01:05:52 com.sun.facelets.FaceletViewHandler handleRenderException GRAVE: Error Rendering View[/pages/office/edit/ed_client.xhtml] javax.faces.el.EvaluationException: /pages/office/edit/ed_client.xhtml @30,28 value="#{clientEditBean.client.nom}": Exception getting value of property nom of base of type : fr.labmestre.client.model.Client$$EnhancerByCGLIB$$9426579d at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60) at javax.faces.component.UIOutput.getValue(UIOutput.java:77) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:217) at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135) at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:75) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419) at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:440) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216) at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536) at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:242) at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:580) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
En attendant j’avançais mon projet en mettant explicitement lazy= "false"…tout marche très bien.
J’ai donc mis en place un filtre OSIV (Open Session In View) fourni par Spring ! En attendant de celui qu’il crée une nouvelle session et rende possible le chargement des adresses demandées spécifiquement pour le client mis en variable de session.
Mais avec ou sans la même erreur ressort !
Je sais qu’il existe OpenSessionInViewInterceptor qui, si j’ai bien compris, remplis exactement le même rôle mais ce mettrait dans application-context-spring.xml au lieu de Web.xml pour OpenSessionInView.
Face à ce problème un petit coup de main ne serait pas de refus car là….je sèche…
Je vous fournis tous les éléments de mon projet en espérant que l’un d’entre-vous aura rencontrer le même problème et aura une solution à me proposer!...et si possible facile à mettre en place (là j’en demande peut-être trop….).
ClientsBean - liste des clients
ClientEditBean - Edition d'un client
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 package fr.labmestre.client.ui; import org.apache.log4j.Logger; import java.util.*; import fr.labmestre.common.exception.LabMestreException; import fr.labmestre.common.ui.*; import fr.labmestre.client.model.Client; import fr.labmestre.client.model.service.ClientServiceAble; import fr.labmestre.common.model.Adresse; import fr.labmestre.common.UtilsFunc; import fr.labmestre.common.Constants; public class ClientsBean extends PersonneBean { private static Logger log = Logger.getLogger(ClientsBean.class); private ClientServiceAble clientService; private Client client; public ClientsBean() { super(); } public ClientServiceAble getClientService(ClientServiceAble clientService) { return this.clientService; } public void setClientService(ClientServiceAble clientService) { this.clientService = clientService; } //Récupère l'identifiant d'un client existant et l'affecte ou en crée un nouveau public void setId(long id) { if (id > 0) { try { System.out.println("je suis dans SETID"); Client cl1 =this.clientService.getClient(id); UtilsFunc.setSessionAttribute(Constants.CLIENT_KEY,cl1); }catch (LabMestreException e) { log.error("impossible de chargers tous les utilisateurs"+e); } } } public String newClient() { //création d'une variable de session avec un nouveau client UtilsFunc.setSessionAttribute(Constants.CLIENT_KEY,new Client()); return super.redirectBean.forward(); } public void refresh() { super.personnes.clear(); try { //fais appel au DAO pour charger tous les clients super.personnes =this.clientService.getClients(); }catch (LabMestreException e) { log.error("impossible de chargers tous les utilisateurs"); } } public List getClients() { //création du tableaux qui contiendra les clients super.personnes=new ArrayList(); this.refresh(); return super.personnes; } public void setClients(List clients) { super.personnes=clients; } }
Personne - Object de base pour client
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 package fr.labmestre.client.ui; import fr.labmestre.client.model.Client; import fr.labmestre.client.model.service.ClientServiceAble; import fr.labmestre.client.ui.ClientsBean; import fr.labmestre.common.ui.RedirectToBean; import java.util.List; import java.util.Set; import java.util.ArrayList; import java.util.Iterator; import fr.labmestre.common.exception.LabMestreException; import fr.labmestre.common.model.Adresse; import fr.labmestre.common.Constants; import fr.labmestre.common.Visit; import fr.labmestre.common.UtilsFunc; import javax.faces.component.UIData; import javax.faces.component.UIOutput; import javax.faces.context.FacesContext; import javax.faces.model.SelectItem; import org.apache.log4j.*; public class ClientEditBean{ private static final Logger log=Logger.getLogger(ClientEditBean.class); private Client client; private RedirectToBean redirectBean; private ClientServiceAble clientService; private UIData dataTableAdresse; private List adresses; public ClientEditBean() { } public ClientServiceAble getClientService(ClientServiceAble clientService) { return this.clientService; } public void setClientService(ClientServiceAble clientService) { this.clientService = clientService; } public List getAdressesList() { this.adresses=new ArrayList(((Client) UtilsFunc.getSessionAttribute(Constants.CLIENT_KEY)).getAdresses()); return this.adresses; } public void setDataTableAdresse(UIData dataTableAdresse) { this.dataTableAdresse=dataTableAdresse; } public UIData getDataTableAdresse() { return this.dataTableAdresse; } public List getTypeAdresseList() { List listTypeAdresse=new ArrayList(); listTypeAdresse.add(new SelectItem(Adresse.TYPE_ADRESS_FACTURATION)); listTypeAdresse.add(new SelectItem(Adresse.TYPE_ADRESS_LIVRAISON)); return listTypeAdresse; } public Client getClient() { this.client=(Client)UtilsFunc.getSessionAttribute(Constants.CLIENT_KEY); return this.client; } public RedirectToBean getRedirectBean() { return redirectBean; } public void setRedirectBean(RedirectToBean redirectBean) { this.redirectBean = redirectBean; } public void removeAdresse() { int row = dataTableAdresse.getRowIndex(); Iterator itAdresse=this.client.getAdresses().iterator(); int i=0; boolean found=false; while (itAdresse.hasNext()&&found==false) { Adresse adresse=(Adresse)itAdresse.next(); if(i==row) { this.client.getAdresses().remove(adresse); found=true; } i++; } } public void createAdresse() { this.client.getAdresses().add(new Adresse()); } public void createClient() { try { this.clientService.saveClient(this.client); }catch (LabMestreException e) { log.error("Impossible d'ajouter l'utilisateur"+this.client.getIdPersonne()+":"+this.client.getNom()+":"+this.client.getPrenom()); } } public void saveClient() { if (this.client.getIdPersonne()==0) { try { this.createClient(); }catch (Exception e) { log.error("Impossible d'ajouter l'utilisateur"+this.client.getIdPersonne()+e); } }else { try { this.updateClient(); }catch (Exception e) { log.error("Utilisateur modifié, impossible de le modifier dans la base de donnée"); log.error(e); } } this.cancel(); } public void updateClient() { try { this.clientService.updateClient(this.client); }catch (LabMestreException e) { log.error("Utilisateur modifié, impossible de le modifier dans la base de donnée"+this.client.getIdPersonne()+":"+this.client.getNom()+":"+this.client.getPrenom()); } } public String save() { this.saveClient(); return this.redirectBean.backward(); } public void cancel() { //supprime la variable de session client UtilsFunc.removeSessionAttribute(Constants.CLIENT_KEY); this.redirectBean.backward(); } }
Client - Object métier
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 package fr.labmestre.common.model; import fr.labmestre.common.CoordonneePostal; import java.util.Date; public class Personne { protected long idPersonne; protected String nom; protected String prenom; protected java.util.Date dateNaissance; protected String tel; protected String fax; protected String email; public void setIdPersonne(long value) { this.idPersonne = value; } public long getIdPersonne() { return idPersonne; } public long getORMID() { return getIdPersonne(); } public void setNom(String value) { this.nom = value; } public String getNom() { return nom; } public void setPrenom(String value) { this.prenom = value; } public String getPrenom() { return prenom; } public void setDateNaissance(java.util.Date value) { this.dateNaissance = value; } public java.util.Date getDateNaissance() { return dateNaissance; } public void setTel(String value) { this.tel = value; } public String getTel() { return tel; } public void setFax(String value) { this.fax = value; } public String getFax() { return fax; } public void setEmail(String value) { this.email = value; } public String getEmail() { return email; } public String toString() { return String.valueOf(getIdPersonne()); } }
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 package fr.labmestre.client.model; import fr.labmestre.common.model.Personne; import java.util.Iterator; import fr.labmestre.common.model.Adresse; import java.util.Date; public class Client extends Personne{ private String statutJuridique; private String siteWeb; private String commentaire; private String raccourciFax; private java.util.Set adresses = new java.util.HashSet(); public void setRaccourciFax(String value) { this.raccourciFax = value; } public String getRaccourciFax() { return raccourciFax; } public void setAdresses(java.util.Set value) { this.adresses = value; } public java.util.Set getAdresses() { return adresses; } public void setStatutJuridique(String value) { this.statutJuridique = value; } public String getStatutJuridique() { return statutJuridique; } public void setSiteWeb(String value) { this.siteWeb = value; } public String getSiteWeb() { return siteWeb; } public void setCommentaire(String value) { this.commentaire = value; } public String getCommentaire() { return commentaire; } }
ClientDaoImpl - Dao pour charger les Objets Client
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 package fr.labmestre.client.model.dao; import org.apache.log4j.Logger; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import fr.labmestre.client.model.Client; import java.io.Serializable; import java.util.*; public class ClientDaoImpl extends HibernateDaoSupport implements ClientDaoAble{ private Logger log = Logger.getLogger(ClientDaoImpl.class); public Client getClient(Long idPersonne) { Client user=(Client) this.getHibernateTemplate().load(Client.class,idPersonne); return user; } public List getClients() { return (List) this.getHibernateTemplate().loadAll(Client.class); } public void saveClient(Client value) { this.getHibernateTemplate().save(value); } public void updateClient(Client value) { this.getHibernateTemplate().update(value); } public void deleteClient(Client value) { this.getHibernateTemplate().delete(value); } }
Partager