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 :
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
3
4
5
6
7
8 ProduitSouscrit produitSouscrit = new ProduitSouscrit(); produitSouscrit.setDematerialise(Boolean.valueOf(false)); if(produitSouscrit.getId() == null) { this.getEntityManager().persist(produitSouscrit); }
(l'erreur en entier plus bas).
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"
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 :
Même erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 produitSouscrit.setDematerialise(new Boolean(false)); produitSouscrit.setDematerialise(false);
Merci d'avance pour vos idées.






Répondre avec citation


Partager