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

Java EE Discussion :

EAGER CASCADE liste entitybean [EJB3 Entity]


Sujet :

Java EE

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Points : 40
    Points
    40
    Par défaut EAGER CASCADE liste entitybean
    Bonjour à tous,

    Je suis actuellement encore débutant dans l'utilisation d'EJB entity et j'ai donc une question que j'aimerais eclaircir.

    C'est au sujet des entitybean, et de la relation entre ces entitybeans.

    J'ai un entitybean User, un entitybean Article et un Comment. Pour faire plus simple, on ne va parler que de User et de Article.

    Un User peut avoir plusieurs Article, et un Article n'a qu'un User, donc il y a une relation @ManytoOne et @OneToMany qui fonctionne bien, création dans ma bdd etc.

    J'aimerais pouvoir supprimer un User et que cela supprime automatiquement tous les Articles associé automatiquement, donc cascade=CascadeType.ALL, cependant j'ai compris qu'il fallait aussi mettre fetch=FetchType.EAGER pour pouvoir remplir automatiquement la liste d'Article des Users. Cependant cette liste n'est pas mise à jour.

    Après plusieurs heures, je me suis rendu compte que cette liste était surement mise à jour lors de la création des entitybean en mémoire du serveur, donc si j'ajoute un Article après, la liste n'est pas mise à jour.

    J'aimerais donc savoir si je doit ajouter aussi à la liste à la main, ou si il y avait une fonction que je pourrais mettre dans le getter de la liste, pour la mettre à jour par rapport à la bdd, un truc du genre monentitymanager.refresh(lalisteDArticle).

    J'espère avoir été le plus clair possible, et je peut vous passer du code si çà peut vous aider à m'aider .

    Merci d'avance,

    Bye

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Finalement, j'ai reussi à faire ce que je voulais, pour ceux que çà intéresse, j'ai fait un em.refresh(user) pour raffraichir mon utilisateur et reremplir sa liste d'Article.

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    As-tu le code de ta solution car j'ai un problème similaire au tiens ?

    Merci.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    je n'ai plus touché aux EJB depuis quelques semaines maintenant, mais voici ma méthode qui me posait problème et que j'ai résolu avec un refresh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public User getUserCourant()
    {
            if (userCourant!=null) {
                userCourant = this.findUserById(userCourant.getId());
                em.refresh(userCourant);
                return userCourant;
            }else
                return null;
    }
    public User findUserById(int id) {
            return em.find(User.class, id);
    }
    userCourant étant pour moi un variable contenant l'utilisateur connecté, si il y a eu connection.
    em est mon EntityManager

    Voilà je ne peut pas trop t'aider plus avec les compétences que j'ai dans cette techno, mais si çà peut t'aider je peut t'envoyer mon projet complet, il n'est pas fini, et c'est le gros fouilli dedans, mais si çà peut t'aider.

    Bye

  5. #5
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par Nikita0511 Voir le message
    je n'ai plus touché aux EJB depuis quelques semaines maintenant, mais voici ma méthode qui me posait problème et que j'ai résolu avec un refresh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public User getUserCourant()
    {
            if (userCourant!=null) {
                userCourant = this.findUserById(userCourant.getId());
                em.refresh(userCourant);
                return userCourant;
            }else
                return null;
    }
    public User findUserById(int id) {
            return em.find(User.class, id);
    }
    userCourant étant pour moi un variable contenant l'utilisateur connecté, si il y a eu connection.
    em est mon EntityManager

    Voilà je ne peut pas trop t'aider plus avec les compétences que j'ai dans cette techno, mais si çà peut t'aider je peut t'envoyer mon projet complet, il n'est pas fini, et c'est le gros fouilli dedans, mais si çà peut t'aider.

    Bye
    Merci.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

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

Discussions similaires

  1. Cascading List of values in JASPER
    Par micwic dans le forum Jasper
    Réponses: 8
    Dernier message: 08/10/2008, 22h05
  2. Réponses: 8
    Dernier message: 13/12/2007, 15h31
  3. [Hibernate] Pb avec List et cascade
    Par mauvais_karma dans le forum Hibernate
    Réponses: 2
    Dernier message: 14/04/2006, 15h02
  4. [VBA-E]Comportement de liste deroulante en cascade
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2006, 14h17
  5. Réponses: 2
    Dernier message: 08/03/2006, 12h27

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