1
0
mirror of synced 2025-03-21 07:23:55 +03:00

Merge pull request #877 from aaronmu/DDC-1787

Hotfix for DDC-1787
This commit is contained in:
Marco Pivetta 2013-12-14 06:22:20 -08:00
commit 6f1642b35d
2 changed files with 67 additions and 4 deletions

View File

@ -181,6 +181,10 @@ class JoinedSubclassPersister extends AbstractEntityInheritancePersister
$id = $this->em->getUnitOfWork()->getEntityIdentifier($entity);
}
if ($this->class->isVersioned) {
$this->assignDefaultVersionValue($entity, $id);
}
// Execute inserts on subtables.
// The order doesn't matter because all child tables link to the root table via FK.
foreach ($subTableStmts as $tableName => $stmt) {
@ -212,10 +216,6 @@ class JoinedSubclassPersister extends AbstractEntityInheritancePersister
$stmt->closeCursor();
}
if ($this->class->isVersioned) {
$this->assignDefaultVersionValue($entity, $id);
}
$this->queuedInserts = array();
return $postInsertIds;

View File

@ -0,0 +1,63 @@
<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
require_once __DIR__ . '/../../../TestInit.php';
/**
* @group DDC-1787
*/
class DDC1787Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public function setUp()
{
parent::setUp();
$this->_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
{
}