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

Doctrine2 PHP Discussion :

Relation bidirectionnelle


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut Relation bidirectionnelle
    Bonjour,

    J'ai un souci pour mettre en place ma relation bidirectionelle.

    j'ai deux entités (A & B)

    A est en OnetoMany comme suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    * @ORM\OneToMany(targetEntity="[CHEMIN]\A", mappedBy="mappedby")
    protected $inversedby;
    et B est en ManytoOne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    * @ORM\ManyToOne(targetEntity="[CHEMIN]\B", inversedBy="inversedby")
         * @ORM\JoinColumn(name="[MACOLONNE]_id", referencedColumnName="id")
    protected $mappedby;
    et j'utilise ceci pour récupérer mes données en base.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->doctrine->getRepository('[BUNDLE]:A')->findById(1)
    Je n'ai aucun message d'erreur mais quand je regarde dans le debugger, aucun jointure n'est faite, il récupére uniquement les champs depuis ma table A, et n'effectue aucune jointure automatique sur ma table B ? Est ce que j'ai oublié un truc ?

    Merci d'avance

    decad7

  2. #2
    Membre éprouvé Avatar de anta_res
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 93
    Par défaut
    Que se passe t'il lorsque tu fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $a = $this->doctrine->getRepository('[BUNDLE]:A')->findById(1);
    var_dump($a->getInversedby());
    C'est lorsque tu fait ta demande pour récupérer l'objet B que symfony vas faire la requête pour le récupérer. Je crois que c'est ce que l'on appel le "lazy loading"

    Si tu veut récupérer tes 2 entités directement il faut faire un requête perso en spécifiant la jointure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT a,b FROM a WHERE a.inversedby b

Discussions similaires

  1. Relation bidirectionnelle à favoriser ?
    Par Grumium dans le forum Hibernate
    Réponses: 6
    Dernier message: 18/01/2010, 14h01
  2. [EJB3 Entity] Suppression et relation bidirectionnelle
    Par KillThatGirl dans le forum Java EE
    Réponses: 1
    Dernier message: 31/01/2009, 18h08
  3. [Modèle Relationnel] Relations bidirectionnelles entre 3 tables
    Par Tchupacabra dans le forum Schéma
    Réponses: 2
    Dernier message: 06/11/2008, 14h31
  4. Réponses: 1
    Dernier message: 14/08/2008, 19h23
  5. JPA - Relation bidirectionnel
    Par JoloKossovar dans le forum JPA
    Réponses: 3
    Dernier message: 26/05/2008, 13h54

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