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 :

Relations entre les tables


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut Relations entre les tables
    Bonjour,

    Une question simple:

    En utilisant les JPA, normalement je ne suis plus censé utilisé le SQL, non ?

    Si j'ai une table père(Account) et une table fils(Fact) bien configuré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @OneToMany(targetEntity=Fact.class,mappedBy="account",cascade=CascadeType.ALL)
        private Set<Fact> facts = new HashSet<Fact>();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @ManyToOne(optional=false)
        @JoinColumn(name="Account_CODE",nullable=false,referencedColumnName="CODE")

    Comment je peux obtenir tous les fils d'un compte sans passer par du SQL ?

    Quand je fais mon hashset est vide !!!

    Merci d'aider un novice

    --
    cdt
    Mhamed

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Peut-être un problème de "lazy-loading"

    Si la relation est mappée fetch = FetchType.LAZY
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Account unAccount = entityManager.find(Account.class, monID); 
    // ici, facts n'est pas initialisé
     
    unAccount.getFacts().size();
    // ici, il est chargé
    Tu peux préciser fetch = FetchType.EAGER si tu veux systématiquement charger le Set, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @OneToMany(targetEntity=Fact.class, mappedBy="account", cascade=CascadeType.ALL, fetch = FetchType.EAGER)
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    Merci !

    cdt.

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

Discussions similaires

  1. Créer et effacer les relations entre les tables en VB
    Par polianita dans le forum Access
    Réponses: 7
    Dernier message: 04/08/2006, 11h54
  2. [MySQL] aide pour MyAdmin-relation entre les tables
    Par bucarest dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/04/2006, 13h35
  3. Pourquoi les relations entre les tables
    Par ghita269 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/12/2005, 11h54
  4. Relation entre les tables
    Par mzt.insat dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/11/2005, 08h17
  5. Relation entre les tables
    Par adelyx dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/04/2005, 23h06

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