Bonjour,

Je suis sur un projet java et je tente désespérément de persister un objet en base de données. L'opération semble basique et pourtant je me heurte à un mur depuis un moment.

J'ai un objet "ProduitSouscrit" qui possède un attribut "dematerialise" de type "Boolean" (il aurait surement été préférable d'utiliser un "boolean" mais le gars qui a codé cette classe n'était visiblement pas de cet avis).

Quoi qu'il en soit, je crée un "new ProduitSouscrit()", je valorise son attribut "dematerialise" via un "produitSouscrit.setDematerialise(Boolean.valueOf(false));" et je tente de le persister. En code, ça donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
ProduitSouscrit produitSouscrit = new ProduitSouscrit();
produitSouscrit.setDematerialise(Boolean.valueOf(false));
 
if(produitSouscrit.getId() == null)
{
	this.getEntityManager().persist(produitSouscrit);
}
Aucun soucis avec l'EntityManager, je l'utilise pour d'autres persist et ca passe crème. Par contre, au moment de persister le ProduitSouscrit, il me sort :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Caused by org.hibernate.PropertyValueException with message: "not-null property references a null or transient value: com.soclecommun.produit.entite.ProduitSouscrit.dematerialise"
(l'erreur en entier plus bas).

Je n'arrive pas à comprendre le pourquoi de l'erreur... que ca soit en mode debug ou via un "System.out.println()", je m'assure que l'attribut "dematerialise" est bien valoriser. Est-ce que cela viendrait du fait que c'est un "Boolean" avec un grand "B" ?

J'ai essayé également :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
produitSouscrit.setDematerialise(new Boolean(false));
produitSouscrit.setDematerialise(false);
Même erreur.

Merci d'avance pour vos idées.

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
 
org.hibernate.engine.Nullability.checkNullability(Nullability.java:95)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110)
org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:636)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:628)
org.hibernate.engine.EJB3CascadingAction$1.cascade(EJB3CascadingAction.java:28)
org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascade(Cascade.java:153)
org.hibernate.event.def.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:454)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:288)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110)
org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:636)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:628)
org.hibernate.engine.EJB3CascadingAction$1.cascade(EJB3CascadingAction.java:28)
org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:319)
org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:265)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:242)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascade(Cascade.java:153)
org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:479)
org.hibernate.event.def.DefaultPersistEventListener.entityIsPersistent(DefaultPersistEventListener.java:134)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:107)
org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:636)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:628)
org.hibernate.engine.EJB3CascadingAction$1.cascade(EJB3CascadingAction.java:28)
org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:319)
org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:265)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:242)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascade(Cascade.java:153)
org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:479)
org.hibernate.event.def.DefaultPersistEventListener.entityIsPersistent(DefaultPersistEventListener.java:134)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:107)
org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:636)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:628)
org.hibernate.engine.EJB3CascadingAction$1.cascade(EJB3CascadingAction.java:28)
org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:319)
org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:265)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:242)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascade(Cascade.java:153)
org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:479)
org.hibernate.event.def.DefaultPersistEventListener.entityIsPersistent(DefaultPersistEventListener.java:134)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:107)
org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:636)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:628)
org.hibernate.engine.EJB3CascadingAction$1.cascade(EJB3CascadingAction.java:28)
org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
org.hibernate.engine.Cascade.cascade(Cascade.java:153)
org.hibernate.event.def.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:454)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:288)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110)
org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61)
org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:645)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:619)
org.hibernate.impl.SessionImpl.persist(SessionImpl.java:623)
org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:618)
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
$Proxy882.persist(Unknown Source)
org.jboss.seam.persistence.EntityManagerProxy.persist(EntityManagerProxy.java:137)
com.soclecommun.premiereCommande.web.action.PremiereCommandeAction.passerPremiereCommande(Unknown Source)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:618)
org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32)
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
com.soclecommun.produit.web.action.NouveauProduitAction_$$_javassist_seam_59.passerPremiereCommande(NouveauProduitAction_$$_javassist_seam_59.java)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:618)
org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:335)
org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:348)
org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:387)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:995)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
com.jsf.web.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:178)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
com.jsf.web.SpringLocaleFilter.doFilter(SpringLocaleFilter.java:58)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:766)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:674)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:498)
com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464)
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:263)
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)