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 :

Aide sur un projet JEE avec EclipseLink


Sujet :

JPA Java

  1. #1
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut Aide sur un projet JEE avec EclipseLink
    Bonjour à tous,

    Débutant en JEE, je me suis lancé dans un projet Libre pour gérer des projets. Mais voilà, je n'ai jamais vraiment fait de JPA, et j'ai des erreurs bizarres. Je crée donc ce topic à la recherche d'une aide pour résoudre les problèmes que je rencontre, mais aussi éventuellement pour me donner des conseils sur la manière global dont le code est orienté. Comme c'est mon premier projet en JEE, je ne fais certainement pas tout comme il faut.

    Contexte: JEE, JPA (EclipseLink), MySQL, Maven, Glassfish (si vous avez un serveur moins lourd à me conseiller d'ailleurs...)

    Le code étant accessible sur Github, je vous propose d'utiliser des pointeurs vers les fichiers plutôt que de copier coller trop de code ici.

    Mon premier problème, dès la servlet Index, un appel à PersonFacade.count() qui lève une exception (PersonFacade hérite d'AbstractFacade) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ATTENTION: EJB5184:A system exception occurred during an invocation on EJB PersonFacade, method: public int fr.xinta.atemia.db.facade.AbstractFacade.count()
    ATTENTION: javax.ejb.EJBException
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.IllegalArgumentException: No [EntityType] was found for the key class [fr.xinta.atemia.db.entity.Person] in the Metamodel - please verify that the [Entity] class was referenced in persistence.xml using a specific <class>fr.xinta.atemia.db.entity.Person</class> property or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element.
    Or, mon persistence.xml contient bien <exclude-unlisted-classes>false</exclude-unlisted-classes>... Où est donc le problème ?
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  2. #2
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut
    J'ai une autre erreur que j'avais commenté pour obtenir celle du dessus. Visiblement, il n'est pas possible d'avoir ceci comme attribut d'une entité :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @OneToMany
    List<int[]> job;

    Comment est-ce que je peux faire pour obtenir l'équivalent en étant valide JPA ?
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  3. #3
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,
    Avant de répondre à ta dernière question, peut on savoir ce que tu veux modéliser fonctionnellement? une réponse en français suffira à ce que tu comprennes ton erreur modélisée techniquement
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  4. #4
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut
    Pour mon premier problème, j'ai remplacé

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        private EntityManager entityManager;
     
        public EntityManager getEntityManager() {
            if (entityManager == null) {
                entityManager = Persistence.createEntityManagerFactory(PERSISTENCE).createEntityManager();
            }
            return this.entityManager;
        }

    Par
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        @PersistenceContext(unitName = PERSISTENCE)
        private EntityManager entityManager;
     
        public EntityManager getEntityManager() {
            return this.entityManager;
        }

    et ça ne crashe plus.
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  5. #5
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut
    Pour mon second problème, c'est extrait de l'entité Week. En gros, pour chaque semaine, chaque personne impliqué dans le projet a un certain nombre de jours affecté à une des 5 tâches possibles. J'ai donc dans ma classe Week un ArrayList dont l'index correspond au numéro de la personne, et correspondant à cette personne, un tableau d'entier, dont l'index va de 0 à 4 (qui correspondent aux 5 tâches possibles, un ENUM) et dont la valeur correspond aux nombres de jours affectés à cette tâche pour la semaine (d'ailleurs, maintenant que j'y pense, j'aurais pu mettre un short vu que ça dépassera jamais 5).

    Au début j'avais fait tout ça de manière beaucoup plus propre avec des HashMap, mais comme je galère avec JPA a persisté tout ça, j'ai mis une liste en pensant que ça serait plus simple...
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  6. #6
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par Flaburgan Voir le message
    Pour mon second problème, c'est extrait de l'entité Week. En gros, pour chaque semaine, chaque personne impliqué dans le projet a un certain nombre de jours affecté à une des 5 tâches possibles. J'ai donc dans ma classe Week un ArrayList dont l'index correspond au numéro de la personne, et correspondant à cette personne, un tableau d'entier, dont l'index va de 0 à 4 (qui correspondent aux 5 tâches possibles, un ENUM) et dont la valeur correspond aux nombres de jours affectés à cette tâche pour la semaine (d'ailleurs, maintenant que j'y pense, j'aurais pu mettre un short vu que ça dépassera jamais 5).

    Au début j'avais fait tout ça de manière beaucoup plus propre avec des HashMap, mais comme je galère avec JPA a persisté tout ça, j'ai mis une liste en pensant que ça serait plus simple...
    Bonjour @Flaburgan, visiblement tu as des soucis de conception indépendant du J2EE.Il manque une vision Objet dans ton approche.Le mapping JPA s'appuie essentiellement sur des diagrammes de classes issus d'une conception Objet. Dans ton cas, si j'ai bien compris, Un Job (Tache) doit être affecté à une Personne, et dans une Semaine (Week), on doit executer n (5 en occurrence) Job (Tache), Il apparait donc une relation entre 3 Objets. Je te proposerai pour un début de faire un petit diagramme de Classe UML de cette approche, avant d'aborder le mapping JPA.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  7. #7
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut
    Comme dit au dessus, j'avais modéliser tout ça correctement (et différemment) avec des HashMaps. Le problème c'est que j'ai pas réussi à utiliser JPA avec mes HashMaps de l'époque, donc je me suis dit que ce serait peut être plus facile à faire uniquement avec des listes (et un tableau) même si du coup mon code ressemble à de la bidouille...

    En un mot : pour chaque personne, pour chaque semaine, pour chaque tâche, on a un nombre de jour de la semaine affectés à cette tâche.
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2010, 10h01
  2. aide sur un projet de carte a puce
    Par abdel5 dans le forum C++
    Réponses: 1
    Dernier message: 09/01/2007, 23h12
  3. Aide sur un projet
    Par riadh_ado dans le forum MFC
    Réponses: 1
    Dernier message: 08/07/2006, 20h42
  4. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 12h02

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