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

Symfony PHP Discussion :

Inheritance Single Table - methode Find [2.x]


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Inheritance Single Table - methode Find
    Bonjour,

    Je rencontre une erreur de conception de requête avec les méthodes find*

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
     
    namespace Proj\Bundle\MyBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
    /**
     * ClassTop
     *
     * @ORM\Table()
     * @ORM\Entity(repositoryClass="Proj\Bundle\MyBundle\Repository\ClassTopRepository")
     * @ORM\InheritanceType("SINGLE_TABLE")
     * @ORM\DiscriminatorColumn(name="aVal", type="string")
     * @ORM\DiscriminatorMap({ "ValOne" = "ClassSubOne", "ValTwo" = "ClassSubTwo", "ValThree" = "ClassSubThree" })
     * 
     */
    class ClassTop
    {
        .....
    }
     
    class ClassSubOne extends ClassTop
    {
        ....
    }
     
    class ClassSubTwo extends ClassTop
    {
        ....
    }
     
    class ClassSubThree extends ClassTop
    {
        ....
    }
    La commande doctrine:schema:create a bien créer une table avec la colonne discriminator.

    Lorsque je veux récupérer les éléments ClassSubOne via le repository j'ai une erreur au niveau de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entityManager->getRepository('ProjMyBundle:ClassSubOne')->findAll()
    Me donne une requête
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT field, field2 FROM CLASSTOP WHERE AVAL IN ()

    Je n'ai rien dans le IN(). Le fonctionnement normal devrait donner
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT field, field2 FROM CLASSTOP WHERE AVAL IN ('ValOne')

    Un petit coup de main pour y voir plus clair ne serait pas de refus

    Merci

  2. #2
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bon...

    J'ai contourné le problème en utilisant inheritanceType("JOINED") qui bizarement fonctionne correctement

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

Discussions similaires

  1. Routes et Single-table inheritance
    Par Javix dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 07/04/2009, 15h22
  2. Héritage (single-table inheritance)
    Par Javix dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 27/01/2009, 14h04
  3. Utilisation d'une Single Table Inheritance et des migrations
    Par redpopo dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 08/12/2008, 17h55
  4. methode find
    Par bachilbouzouk dans le forum ASP
    Réponses: 9
    Dernier message: 26/04/2005, 11h47
  5. [Single Table Inheritance] Documentation
    Par seb_asm dans le forum Design Patterns
    Réponses: 2
    Dernier message: 10/03/2005, 14h18

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