DDC448Test.php 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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('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 = ?', $q->getSQL());
  19. }
  20. }
  21. /**
  22. * @Entity
  23. * @InheritanceType("JOINED")
  24. * @DiscriminatorColumn(name="discr", type="smallint")
  25. * @DiscriminatorMap({
  26. * "0" = "DDC448MainTable",
  27. * "1" = "DDC448SubTable"
  28. * })
  29. */
  30. class DDC448MainTable
  31. {
  32. /**
  33. * @Id
  34. * @Column(name="id", type="integer")
  35. * @GeneratedValue(strategy="AUTO")
  36. */
  37. private $id;
  38. /**
  39. * @ManyToOne(targetEntity="DDC448ConnectedClass", cascade={"all"}, fetch="EAGER")
  40. * @JoinColumn(name="connectedClassId", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE", nullable=true)
  41. */
  42. private $connectedClassId;
  43. }
  44. /**
  45. * @Entity
  46. * @Table(name="connectedClass")
  47. * @HasLifecycleCallbacks
  48. */
  49. class DDC448ConnectedClass
  50. {
  51. /**
  52. * @Id
  53. * @Column(name="id", type="integer")
  54. * @GeneratedValue(strategy="AUTO")
  55. */
  56. protected $id; // connected with DDC448MainTable
  57. }
  58. /**
  59. * @Entity
  60. * @Table(name="SubTable")
  61. */
  62. class DDC448SubTable extends DDC448MainTable
  63. {
  64. }