diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/GHxxxxTest.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/GHxxxxTest.php new file mode 100644 index 00000000000..59ccf0e2f3b --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/GHxxxxTest.php @@ -0,0 +1,71 @@ +setUpEntitySchema([ + GHxxxxBaseClass::class, + GHxxxxSubClass::class, + ]); + } + + public function testNumericDescriminatorColumn() : void + { + $entity = new GHxxxxSubClass(); + $entity->value = 'test'; + $this->_em->persist($entity); + $this->_em->flush(); + $this->_em->clear(); + + $repository = $this->_em->getRepository(GHxxxxSubClass::class); + $hydrated = $repository->find($entity->id); + + self::assertSame('test', $hydrated->value); + } +} + +/** + * @Entity() + * @Table(name="ghxxxx") + * @InheritanceType("JOINED") + * @DiscriminatorColumn(name="discr", type="integer") + * @DiscriminatorMap({ + * 1 = GHxxxxBaseClass::class, + * 2 = GHxxxxSubClass::class + * }) + */ +class GHxxxxBaseClass +{ + /** + * @Id @GeneratedValue + * @Column(type="integer") + */ + public $id; +} + +/** + * @Entity() + */ +class GHxxxxSubClass extends GHxxxxBaseClass +{ + /** + * @Column(name="test", type="string") + * @var string + */ + public $value; +}