3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 require_once __DIR__ . '/../../../TestInit.php';
7 class DDC279Test extends \Doctrine\Tests\OrmFunctionalTestCase
9 protected function setUp()
12 $this->_schemaTool->createSchema(array(
13 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC279EntityXAbstract'),
14 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC279EntityX'),
15 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC279EntityY'),
16 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC279EntityZ'),
23 public function testDDC279()
25 $x = new DDC279EntityX();
26 $y = new DDC279EntityY();
27 $z = new DDC279EntityZ();
36 $this->_em->persist($x);
37 $this->_em->persist($y);
38 $this->_em->persist($z);
43 $query = $this->_em->createQuery(
44 'SELECT x, y, z FROM Doctrine\Tests\ORM\Functional\Ticket\DDC279EntityX x '.
45 'INNER JOIN x.y y INNER JOIN y.z z WHERE x.id = ?1'
46 )->setParameter(1, $x->id);
48 $result = $query->getResult();
53 $this->assertEquals(1, count($result));
55 $this->assertEquals($expected1, $result[0]->y->data);
56 $this->assertEquals($expected2, $result[0]->y->z->data);
63 * @InheritanceType("JOINED")
64 * @DiscriminatorColumn(name="discr", type="string")
65 * @DiscriminatorMap({"DDC279EntityX" = "DDC279EntityX"})
67 abstract class DDC279EntityXAbstract
72 * @Column(name="id", type="integer")
77 * @column(type="string")
86 class DDC279EntityX extends DDC279EntityXAbstract
89 * @OneToOne(targetEntity="DDC279EntityY")
90 * @JoinColumn(name="y_id", referencedColumnName="id")
101 * @Id @GeneratedValue
102 * @Column(name="id", type="integer")
107 * @column(type="string")
112 * @OneToOne(targetEntity="DDC279EntityZ")
113 * @JoinColumn(name="z_id", referencedColumnName="id")
124 * @Id @GeneratedValue
125 * @Column(name="id", type="integer")
130 * @column(type="string")