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 :

EJB, héritage et JSF


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 83
    Par défaut EJB, héritage et JSF
    Bonsoir

    J'ai un petit problème avec un héritage d'EJB dans mon application. J'ai deux classes Animal et Food qui héritent de la classe Product. La stratégie utilisée pour cet héritage est de type SINGLE_TABLE avec un DiscriminatorColumn appelé product_type dans la classe Product et des DiscriminatorValue (Animal et Food) pour les deux classes qui héritent.

    Je voudrais maintenant afficher la liste de tous mes produits dans une page JSF. Pour celà, j'utilise une DataTable avec un objet de type ListDataModel. Voici le code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <h:dataTable id="productsDataTable" value="#{ProductBean.listDataModel}" var="product">               
     <h:column>
          <h:outputText value="#{product.name}" />
     </h:column>
     <h:column>
          <h:outputText value="#{product.price}" />
     </h:column>
     <h:column>
          <h:outputText value="#{product.product_type}" />
     </h:column>
    </h:dataTable>
    Lorsque je lance l'application et que j'affiche cette page, j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The class 'com.testapp.model.Animal' does not have the property 'product_type'.
    Je pensais que l'attribut product_type était crée automatiquement et de façon implicite mais ce n'est apparemment pas le cas. J'ai essayé de rajouter cet attribut dans mes classes Animal et Food mais cela provoque une erreur lors de la génération des tables pendant le déploiement de l'application (colonne product_type en double).

    Comment dois-je m'y prendre ?

    Merci

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 83
    Par défaut
    Bonjour

    J'ai fini par trouver une solution. Comme le contenu de cette colonne discriminante devait contenir le type de produit (en fait la classe...), j'ai modifié mon code de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{product.class.simpleName}" />
    Du coup si le produit est de la sous classe Animal, ça affiche Animal dans le champs, et pareil pour Food

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Injection d'EJB dans un JSF Managed bean
    Par velocity dans le forum JSF
    Réponses: 1
    Dernier message: 30/05/2013, 12h32
  2. librairies pour ejb 3, jpa, jsf
    Par geeksDeve dans le forum JSF
    Réponses: 2
    Dernier message: 10/07/2012, 12h04
  3. EJB List <object[]> +JSF(page xhtml)
    Par sino100100 dans le forum JSF
    Réponses: 4
    Dernier message: 24/08/2009, 13h51
  4. JAVA EE EJB et JSP/JSF
    Par Damien2888 dans le forum JSF
    Réponses: 3
    Dernier message: 05/01/2009, 12h19
  5. Réponses: 4
    Dernier message: 02/08/2008, 18h56

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