Inheritance Single Table - methode Find
	
	
		Bonjour,
Je rencontre une erreur de conception de requête avec les méthodes find*
	Code:
	
| 12
 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:
	
$entityManager->getRepository('ProjMyBundle:ClassSubOne')->findAll()
 Me donne une requête
	Code:
	
SELECT field, field2 FROM CLASSTOP WHERE AVAL IN ()
 
Je n'ai rien dans le IN(). Le fonctionnement normal devrait donner
	Code:
	
SELECT field, field2 FROM CLASSTOP WHERE AVAL IN ('ValOne')
 
Un petit coup de main pour y voir plus clair ne serait pas de refus :oops:
Merci