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

JSF Java Discussion :

Problème d'affichage dans JSF pour une clé étrangère dans JPA


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2013
    Messages : 45
    Par défaut Problème d'affichage dans JSF pour une clé étrangère dans JPA
    Bonjour
    Je travail avec JPA, EJB3, JSF, sous NetBeans et Oracle
    Énoncé :
    j'ai deux tables sur la BDD (Navire & TypeNavire) la clé primaire du TypeNavire (codeTypeNav) figure comme clé étrangère dans la table Navire;
    et par conséquence dans l'Entity Class Navire, le champ codeTypeNav est déclaré de Type TypeNavire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @JoinColumn(name = "CODE_TYPENAV", referencedColumnName = "CODE_TYPENAV")
        @ManyToOne
        private TypeNavire codeTypenav;
    et pas comme String comme il l'est dans l'Entity mère TypeNavire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        @Id
        @Basic(optional = false)
        @NotNull
        @Size(min = 1, max = 6)
        @Column(name = "CODE_TYPENAV")
        private String codeTypenav;
    Problème :
    et quand je veux affiché par exemple dans un tableau en JSF, des Navires comme suit :
    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
     
                   <p:dataTable  value="#{jSFBean.listNavire}" var="listNav">
     
                        <p:column>
                            <f:facet name="header">                            
                                <h:outputText value="Code Navire"/>                            
                            </f:facet> 
                            <h:outputText  value="#{listNav.codeNavire}" />
                        </p:column>                    
     
                        <p:column>
                            <f:facet name="header">
     
                                <h:outputText value="Code Type Navire"/>
                            </f:facet> 
                            <h:outputText value="#{listNav.codeTypenav}"/>
                        </p:column>
     
                 </p:dataTable>
    il n'y a aucune erreur qui s'affiche, et le tableau est plein, mais la colonne du CodeTypeNav est vide!!!
    aidez moi svp
    JE VOUS REMERCIE D'AVANCE
    MERCI

  2. #2
    Membre éclairé
    Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    bonjour,

    je ne maitrise pas JSF mais cette ligne me parais suspecte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{listNav.codeTypenav}"/>
    le listNav.codeTypenav est l'objet TypeNavire et pas le code. je te propose d'essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{listNav.codeTypenav.codeTypenav}"/>
    Si ça ne marchera pas essaye de vérifier déjà que codeTypenav n'est pas null avant d'arriver à la couche JSF.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2013
    Messages : 45
    Par défaut
    Citation Envoyé par chortani Voir le message
    bonjour,

    je ne maitrise pas JSF mais cette ligne me parais suspecte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{listNav.codeTypenav}"/>
    le listNav.codeTypenav est l'objet TypeNavire et pas le code. je te propose d'essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{listNav.codeTypenav.codeTypenav}"/>
    Si ça ne marchera pas essaye de vérifier déjà que codeTypenav n'est pas null avant d'arriver à la couche JSF.
    Bonjour
    j'ai fait ce que vous m'avez conseillé, et le problème persiste, c'est à dire que la colonne codeTypeNav est vide,
    alors que codeTypeNav est null mais je ne comprend pas pourquoi!!! car j'ai utilisé la requête directement sur Oracle, est ça marche il m'affiche le résultat au complet!
    merci de bien vouloir m'aider.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Sans aller jusque jsf, dans tes test unitaires, est-ce que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jSFBean.getListeNavire().get(0).getCodeTypenav().getCodeTypenav()
    retourne quelque chose?

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2013
    Messages : 45
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Sans aller jusque jsf, dans tes test unitaires, est-ce que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jSFBean.getListeNavire().get(0).getCodeTypenav().getCodeTypenav()
    retourne quelque chose?
    Merci Mr
    j'ai fait ce que vous avez demandé, mais ne retourne rien, il y a une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.NullPointerException
    et quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system.out.println("codeTypeNav de la table Navire : "+listNav.get(0).getCodeTypeNav());
    listNav est la liste issu de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Query req=em.createNativeQuery("SELECT * FROM schema1.NAVIRE a WHERE CODE_NAVIRE not in( SELECT CODE_NAVIRE FROM schema2.NAVIRE2 m ) ", Navire.class);       
            List<Navire> listNavire = (List<Navire>)req.getResultList();
    et si vous vous souvenez bien c'est bien VOUS qui me l'avez donné
    bref
    listNav.get(0).getCodeTypeNav()
    il affiche null [codeTypeNav de la table Navire : null] (sans erreur)
    MERCI de m'aider

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ben a priori, c'est que tes navires dans ta table n'ont pas de CODE_NAVIRE associé . Du coup JPA fait son boulot, il met un null

  7. #7
    Nouveau candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut meme problem aidezr moii
    Citation Envoyé par gerxwcv Voir le message
    Bonjour
    Je travail avec JPA, EJB3, JSF, sous NetBeans et Oracle
    Énoncé :
    j'ai deux tables sur la BDD (Navire & TypeNavire) la clé primaire du TypeNavire (codeTypeNav) figure comme clé étrangère dans la table Navire;
    et par conséquence dans l'Entity Class Navire, le champ codeTypeNav est déclaré de Type TypeNavire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @JoinColumn(name = "CODE_TYPENAV", referencedColumnName = "CODE_TYPENAV")
        @ManyToOne
        private TypeNavire codeTypenav;
    et pas comme String comme il l'est dans l'Entity mère TypeNavire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        @Id
        @Basic(optional = false)
        @NotNull
        @Size(min = 1, max = 6)
        @Column(name = "CODE_TYPENAV")
        private String codeTypenav;
    Problème :
    et quand je veux affiché par exemple dans un tableau en JSF, des Navires comme suit :
    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
     
                   <p:dataTable  value="#{jSFBean.listNavire}" var="listNav">
     
                        <p:column>
                            <f:facet name="header">                            
                                <h:outputText value="Code Navire"/>                            
                            </f:facet> 
                            <h:outputText  value="#{listNav.codeNavire}" />
                        </p:column>                    
     
                        <p:column>
                            <f:facet name="header">
     
                                <h:outputText value="Code Type Navire"/>
                            </f:facet> 
                            <h:outputText value="#{listNav.codeTypenav}"/>
                        </p:column>
     
                 </p:dataTable>
    il n'y a aucune erreur qui s'affiche, et le tableau est plein, mais la colonne du CodeTypeNav est vide!!!
    aidez moi svp
    JE VOUS REMERCIE D'AVANCE
    MERCI

Discussions similaires

  1. [AC-2007] Problème d'affichage de résultat d'une requete dans champs de texte
    Par Bubulle232 dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/01/2012, 19h12
  2. Réponses: 0
    Dernier message: 13/12/2010, 09h34
  3. Réponses: 1
    Dernier message: 25/07/2007, 09h21
  4. Réponses: 2
    Dernier message: 22/05/2007, 16h15
  5. Réponses: 2
    Dernier message: 07/09/2006, 17h05

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