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 :

Relation entre les objet et requête en base de donnée


Sujet :

JPA Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 28
    Points
    28
    Par défaut Relation entre les objet et requête en base de donnée
    Bonjour,

    Je suis plus ou moins entrain de bricoler avec les EJB3.

    J'ai crée un objet User et un object Message.

    Il y a une relation 1->n entre les 2 (un user à pluiseurs message).

    J'ai donc dans User une méthode getMessages() avec la jolie anotation @OneToMany que j'ai trouvé dans les tuto.

    Ma question est la suivante : Est ce que quand je fais un em.find(User.class,"Login)

    Est ce qu'il va juste me rechercher mon User ou est ce qu'il prend aussi tous les messages d'un coup lors de la requete?

    Merci

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Par défaut, non, il va seulement chercher le User.
    Les messages du User sont récupérés en mode lazy, I.e. seulement quand tu accède au leur getter (user.getMessages()).
    Mais tu peux contrôler ceci dans l'annotation @OneToMany:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @ManyToMany(fetch=FetchType.EAGER)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @ManyToMany(fetch=FetchType.LAZY)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Ok merci de cette réponse

    Est ce que je peux pousser le vice jusqu'à faire un truc du genre par défaut chopper uniquement les 10 derniers messages, etc... Afin de ne pas parcourir toute ma base et monter tous mes objects en mémoire juste pour lire un message?

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Non, du moins à ma connaissance, c'est pas possible.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Ok, merci pour ces réponses qui vont m'être très précieuses.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par serj' Voir le message
    Ok, merci pour ces réponses qui vont m'être très précieuses.
    Ben si, c'est possible, en utilisant une requête HQL...

    je t'invite a consulter la doc pour cela :-)

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Hello,
    Juste pour clarifier les choses, quand je disais que c'est pas possible, je parlais de la situation où le mapping est réalisé avec l'annotation @oneToMany.
    Par contre, comme le dit denis, c'est faisable (avec l'objet Query de JPA par exemple).

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

Discussions similaires

  1. Comparaison entre les différentes colonnes d'une base de données
    Par ovz974 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/06/2015, 08h37
  2. relation entre les objets dans un fichier de mouvement
    Par info_sara dans le forum Développement 2D, 3D et Jeux
    Réponses: 18
    Dernier message: 07/05/2013, 20h58
  3. Relation entre les tables (diagramme de la base de données)
    Par unix27 dans le forum Sql Developer
    Réponses: 1
    Dernier message: 13/10/2012, 19h47
  4. Réponses: 4
    Dernier message: 02/09/2009, 15h03
  5. Question sur les relations entre les objets
    Par kedare dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 18/04/2008, 14h13

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