DDC448Test.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. require_once __DIR__ . '/../../../TestInit.php';
  4. class DDC448Test extends \Doctrine\Tests\OrmFunctionalTestCase
  5. {
  6. protected function setUp()
  7. {
  8. parent::setUp();
  9. $this->_schemaTool->createSchema(array(
  10. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC448MainTable'),
  11. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC448ConnectedClass'),
  12. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC448SubTable'),
  13. ));
  14. }
  15. public function testIssue()
  16. {
  17. $q = $this->_em->createQuery("select b from ".__NAMESPACE__."\\DDC448SubTable b where b.connectedClassId = ?1");
  18. $this->assertEquals(
  19. strtolower('SELECT d0_.id AS id0, d0_.discr AS discr1, d0_.connectedClassId AS connectedClassId2 FROM SubTable s1_ INNER JOIN DDC448MainTable d0_ ON s1_.id = d0_.id WHERE d0_.connectedClassId = ?'),
  20. strtolower($q->getSQL())
  21. );
  22. }
  23. }
  24. /**
  25. * @Entity
  26. * @InheritanceType("JOINED")
  27. * @DiscriminatorColumn(name="discr", type="smallint")
  28. * @DiscriminatorMap({
  29. * "0" = "DDC448MainTable",
  30. * "1" = "DDC448SubTable"
  31. * })
  32. */
  33. class DDC448MainTable
  34. {
  35. /**
  36. * @Id
  37. * @Column(name="id", type="integer")
  38. * @GeneratedValue(strategy="AUTO")
  39. */
  40. private $id;
  41. /**
  42. * @ManyToOne(targetEntity="DDC448ConnectedClass", cascade={"all"}, fetch="EAGER")
  43. * @JoinColumn(name="connectedClassId", referencedColumnName="id", onDelete="CASCADE", nullable=true)
  44. */
  45. private $connectedClassId;
  46. }
  47. /**
  48. * @Entity
  49. * @Table(name="connectedClass")
  50. * @HasLifecycleCallbacks
  51. */
  52. class DDC448ConnectedClass
  53. {
  54. /**
  55. * @Id
  56. * @Column(name="id", type="integer")
  57. * @GeneratedValue(strategy="AUTO")
  58. */
  59. protected $id; // connected with DDC448MainTable
  60. }
  61. /**
  62. * @Entity
  63. * @Table(name="SubTable")
  64. */
  65. class DDC448SubTable extends DDC448MainTable
  66. {
  67. }