Merge branch 'DDC-742'
This commit is contained in:
commit
dd5574162a
@ -1941,6 +1941,7 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
$pColl->setInitialized(false);
|
$pColl->setInitialized(false);
|
||||||
} else {
|
} else {
|
||||||
$this->loadCollection($pColl);
|
$this->loadCollection($pColl);
|
||||||
|
$pColl->takeSnapshot();
|
||||||
}
|
}
|
||||||
$this->originalEntityData[$oid][$field] = $pColl;
|
$this->originalEntityData[$oid][$field] = $pColl;
|
||||||
}
|
}
|
||||||
|
109
tests/Doctrine/Tests/ORM/Functional/Ticket/DDC742Test.php
Normal file
109
tests/Doctrine/Tests/ORM/Functional/Ticket/DDC742Test.php
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
||||||
|
|
||||||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../../TestInit.php';
|
||||||
|
|
||||||
|
class DDC742Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
||||||
|
{
|
||||||
|
protected function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
try {
|
||||||
|
$this->_schemaTool->createSchema(array(
|
||||||
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC742User'),
|
||||||
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC742Comment')
|
||||||
|
));
|
||||||
|
} catch(\Exception $e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIssue()
|
||||||
|
{
|
||||||
|
$user = new DDC742User();
|
||||||
|
$user->title = "Foo";
|
||||||
|
$user->favoriteComments = new ArrayCollection();
|
||||||
|
|
||||||
|
$comment1 = new DDC742Comment();
|
||||||
|
$comment1->content = "foo";
|
||||||
|
|
||||||
|
$comment2 = new DDC742Comment();
|
||||||
|
$comment2->content = "bar";
|
||||||
|
|
||||||
|
$comment3 = new DDC742Comment();
|
||||||
|
$comment3->content = "baz";
|
||||||
|
|
||||||
|
$user->favoriteComments->add($comment1);
|
||||||
|
$user->favoriteComments->add($comment2);
|
||||||
|
|
||||||
|
$this->_em->persist($user);
|
||||||
|
$this->_em->persist($comment1);
|
||||||
|
$this->_em->persist($comment2);
|
||||||
|
$this->_em->persist($comment3);
|
||||||
|
$this->_em->flush();
|
||||||
|
$this->_em->clear();
|
||||||
|
|
||||||
|
$user = $this->_em->find(get_class($user), $user->id);
|
||||||
|
$comment3 = $this->_em->find(get_class($comment3), $comment3->id);
|
||||||
|
$user->favoriteComments->add($comment3);
|
||||||
|
$this->_em->flush();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Entity
|
||||||
|
* @Table(name="users")
|
||||||
|
*/
|
||||||
|
class DDC742User
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* User Id
|
||||||
|
*
|
||||||
|
* @Id
|
||||||
|
* @GeneratedValue(strategy="AUTO")
|
||||||
|
* @Column(type="integer")
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
public $id;
|
||||||
|
/**
|
||||||
|
* @Column(length=100, type="string")
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $title;
|
||||||
|
/**
|
||||||
|
* @ManyToMany(targetEntity="DDC742Comment", cascade={"persist"}, fetch="EAGER")
|
||||||
|
* @JoinTable(
|
||||||
|
* name="user_comments",
|
||||||
|
* joinColumns={@JoinColumn(name="user_id",referencedColumnName="id")},
|
||||||
|
* inverseJoinColumns={@JoinColumn(name="comment_id", referencedColumnName="id")}
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
* @var Doctrine\ORM\PersistentCollection
|
||||||
|
*/
|
||||||
|
public $favoriteComments;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Entity
|
||||||
|
* @Table(name="comments")
|
||||||
|
*/
|
||||||
|
class DDC742Comment
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* User Id
|
||||||
|
*
|
||||||
|
* @Id
|
||||||
|
* @GeneratedValue(strategy="AUTO")
|
||||||
|
* @Column(type="integer")
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
public $id;
|
||||||
|
/**
|
||||||
|
* @Column(length=100, type="string")
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $content;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user