Merge branch 'DDC-742'
This commit is contained in:
commit
dd5574162a
@ -1941,6 +1941,7 @@ class UnitOfWork implements PropertyChangedListener
|
||||
$pColl->setInitialized(false);
|
||||
} else {
|
||||
$this->loadCollection($pColl);
|
||||
$pColl->takeSnapshot();
|
||||
}
|
||||
$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