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 :

[BUG] mes listes mappées me retournent null


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut [BUG] mes listes mappées me retournent null
    Bonjour à tous !!

    Une fois de plus je sollicite votre aide sur un problème épineux qui me rend fou.

    J'utilise les EJB3 avec IBM Websphère (aie!!) et IBM RAD8 (re-aie).

    Je souhaite récupérer un employé dans ma base de donnée, jusqu'ici tous se passe bien, j'arrive a récupérer ses infos via mon bean entity sans soucis, en revanche certaines informations ne passent pas et me retournent null, il s'agit des List que le mapping entre deux entities devrait me retourner.

    En effet si je souhaite récupérer par exemple les applications dont l'employé est manager je fais ça :

    Sur mon entitie Employee :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	@OneToMany(mappedBy="manager")
    	private List<Application> applicationsManager;
    Sur mon entitie Application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        @ManyToOne
    	private Employee manager;
    Est ce mon mapping qui est mauvais ? Ma construction de base qui n'est pas comprise par JPA lors de la génération des entities en reverse engineering ?

    Ce qui est bizarre c'est que tous le reste fonctionne tant qu'il ne s'agit pas de listes d'entities a retourner...

    Quelqu'un aurait il une idée ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut
    Up si il vous plais, ce problème est vraiment gênant et j'ai très peu de temps pour le résoudre, personne n'aurais une petite piste ?

    J'ai posté sur deux forum, recherché sur plusieurs moteurs de recherche, consulté trois analyste développeurs (et pas des moins bons) sans avoir la moindre piste...

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 61
    Par défaut
    Si votre problème est toujours d'actualité, je pense à deux pistes (sous réserve que vos informations en base sont bonnes)

    La première est de rajouter le nom de la colonne de jointure que l'entité ManyToOne

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne
    @JoinColumn(name="employee_id")
    private Employee manager;
    La deuxieme est du fait que @OneToMany fait des liaison à la demande :
    (fetch=FetchType.LAZY)

    Il faut donc, sous réserve que le problème vienne de là, soit recuperer manuellement les informations de la liste soit spécifier un chargement des données au chargement de l'entitée Employee( fetch=FetchType.EAGER)

  4. #4
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( fetch=FetchType.EAGER)
    Par défaut le comportement du fetch est EAGER, donc pas besoin de spécifier si vous voulez un chargement simultané. Je pense que le pb viendrait plutot de ta premiere hypothese sur le joinColumn qui manquait.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut
    J'ai finit par trouver . En fait mon projet EJB3 ne comprenais pas la facette "Module EJB" je suis donc allé dans clic droit sur projet>> propriété >> Facettes de projet, j'ai coché "Module EJB" et c'était niquel (ce qui parais logique) , ce qui est louche c'est que je pouvais tous de même utiliser les ejb avant ça ...

    Merci pour votre aide

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

Discussions similaires

  1. GetDC retourne NULL Oo
    Par Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2007, 18h46
  2. Réponses: 3
    Dernier message: 02/03/2007, 12h41
  3. Bug? (The List must be able to access one data set)
    Par nicolemans72 dans le forum BIRT
    Réponses: 3
    Dernier message: 19/01/2007, 21h53
  4. opérateur + dans SELECT retourne null ?
    Par david_chardonnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2007, 11h47
  5. [CSS] Améliorer mes listes ul li
    Par barthoose dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/09/2005, 00h14

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