3 namespace Doctrine\Tests\ORM\Functional\Ticket;
9 class DDC1595Test extends \Doctrine\Tests\OrmFunctionalTestCase
11 public function setUp()
15 $this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\DebugStack);
17 $this->_schemaTool->createSchema(array(
18 $this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC1595BaseInheritance'),
19 $this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC1595InheritedEntity1'),
20 $this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC1595InheritedEntity2'),
24 public function testIssue()
26 $e1 = new DDC1595InheritedEntity1();
28 $this->_em->persist($e1);
32 $sqlLogger = $this->_em->getConnection()->getConfiguration()->getSQLLogger();
33 $repository = $this->_em->getRepository(__NAMESPACE__ . '\\DDC1595InheritedEntity1');
35 $entity1 = $repository->find($e1->id);
39 "SELECT t0.id AS id1, t0.type FROM base t0 WHERE t0.id = ? AND t0.type IN ('Entity1')",
40 $sqlLogger->queries[count($sqlLogger->queries)]['sql']
43 $entities = $entity1->getEntities()->getValues();
46 "SELECT t0.id AS id1, t0.type FROM base t0 INNER JOIN entity1_entity2 ON t0.id = entity1_entity2.item WHERE entity1_entity2.parent = ? AND t0.type IN ('Entity2')",
47 $sqlLogger->queries[count($sqlLogger->queries)]['sql']
52 $entity1 = $repository->find($e1->id);
53 $entities = $entity1->getEntities()->count();
56 "SELECT COUNT(*) FROM entity1_entity2 t WHERE parent = ?",
57 $sqlLogger->queries[count($sqlLogger->queries)]['sql']
66 * @InheritanceType("SINGLE_TABLE")
67 * @DiscriminatorColumn(name="type", type="string")
69 * "Entity1" = "DDC1595InheritedEntity1",
70 * "Entity2" = "DDC1595InheritedEntity2"
73 abstract class DDC1595BaseInheritance
77 * @Column(type="integer")
86 * @Table(name="entity1")
88 class DDC1595InheritedEntity1 extends DDC1595BaseInheritance
91 * @ManyToMany(targetEntity="DDC1595InheritedEntity2", fetch="EXTRA_LAZY")
92 * @JoinTable(name="entity1_entity2",
93 * joinColumns={@JoinColumn(name="parent", referencedColumnName="id")},
94 * inverseJoinColumns={@JoinColumn(name="item", referencedColumnName="id")}
99 public function getEntities()
101 return $this->entities;
107 * @Table(name="entity2")
109 class DDC1595InheritedEntity2 extends DDC1595BaseInheritance