From 600af3e617e511a8fe843cba22357beec519e104 Mon Sep 17 00:00:00 2001 From: Aaron Muylaert Date: Sat, 14 Dec 2013 13:24:47 +0100 Subject: [PATCH] Add failing test for DDC-1787. Using joined table inheritance, when persisting multiple new entities that are subclasses of a baseclass that has the @Version attribute set, only the last persisted entity will have it's version set. --- .../ORM/Functional/Ticket/DDC1787Test.php | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1787Test.php diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1787Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1787Test.php new file mode 100644 index 000000000..9e3037bed --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1787Test.php @@ -0,0 +1,63 @@ +_schemaTool->createSchema(array( + $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1787Foo'), + $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1787Bar'), + )); + } + + public function testIssue() + { + $bar = new DDC1787Bar; + $bar2 = new DDC1787Bar; + + $this->_em->persist($bar); + $this->_em->persist($bar2); + $this->_em->flush(); + + $this->assertSame(1, $bar->getVersion()); + } +} + +/** + * @Entity + * @InheritanceType("JOINED") + * @DiscriminatorColumn(name="discr", type="string") + * @DiscriminatorMap({"bar" = "DDC1787Bar"}) + */ +class DDC1787Foo +{ + /** + * @Id @Column(type="integer") @GeneratedValue(strategy="AUTO") + */ + private $id; + + /** + * @Version @Column(type="integer") + */ + private $version; + + public function getVersion() + { + return $this->version; + } +} + +/** + * @Entity + */ +class DDC1787Bar extends DDC1787Foo +{ +}