IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

Problème de Null avec @Embeddable


Sujet :

JPA Java

  1. #1
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut Problème de Null avec @Embeddable
    Bonjour je rencontre cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.el.PropertyNotFoundException: /gestionAgent.xhtml @46,103 value="#{agentsController.agent.adresse.tel}": Target Unreachable, 'null' returned null
    Au niveau de mon controller.

    Voici le code Adresse
    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
    @Embeddable
    public class Adresse implements Serializable { 
       @Column(name = "bp")
        private String bp;
     
        @Column(name = "ville")
        private String ville;
     
        @Column(name = "tel")
        private String tel;
     
        @Column(name = "adresse")
        private String adresse;
    //getter setter
    }
    et l'agent

    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
     
    @Entity
    @Table(name = "agent")
    public class Agent implements Serializable {
     
        @Id 
        @Basic(optional=false)
        @NotNull
        @Size(max = 254)
        @Column(name = "login", unique= true)
        private String login;
     
     
        @Embedded
        private Adresse adresse;
     
     
        public Agent() {
        adresse=new Adresse();
        }
     
        public Adresse getAdresse() {
            return adresse;
        }
     
        public void setAdresse(Adresse adresse) {
            this.adresse = adresse;
        }
     
     
     
     
    }
    D'après ce que j'ai eu à lire vu que j'utilises Hibernate comme implémentation.
    lorsque lors de l'enregistrement d'un agent qui n'a pas d'adresse le fait que que tous les champs d'un Objet @Embedded sont nulles,Hibernate rend l'objet null.

    Si Vous connaissez des solutions particulières pour ce cas.Je vous remercies de aide.

    Cordialement

  2. #2
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Bonjour,
    Tu peux essayer de mettre l'attribut "nullable" à true sur la propriété tel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Column(name = "tel", nullable = true)     
    private String tel;
    Une autre solution mais qui ne te concerne pas je pense :
    Tu peux mettre l'annotation @Embedded sur toute la classe Adresse
    en lui ajoutant l'attribut "nullable = false" ou true.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Embedded(nullable = true)
    C'est le cas où toutes les propriétés de la classe Adresse peuvent être nulles.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut
    Justement j'y ai pensé à ces solutions.le problème est que lorsque
    devient null alors tu vois il y'aura une exception
    sur .Logiquement c'est cela.
    Voilà une des raisons pourquoi j'ai instancié adresse dans le constructeur de agent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public Agent() {
        adresse=new Adresse();
        }
    Mais il suffit que l'une des valeurs de la classe Adresse soit chargé pour que cela marche mais cela ne resouds pas le problème.

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/03/2012, 15h38
  2. Réponses: 6
    Dernier message: 20/09/2009, 21h52
  3. [PostgreSQL 8.1] Problème de jointures avec une Fk null
    Par Reward dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/11/2006, 08h25
  4. [PostgreSQL] [PostgreSQL] Problème de syntaxe (NULL) avec PHP et Postgresql
    Par el_butcho dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 16/07/2006, 18h28
  5. Problème de "select" avec des valeurs a null
    Par SchpatziBreizh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2005, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo