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.