1
0
mirror of synced 2024-12-14 23:26:04 +03:00

Merge branch 'DDC-742'

This commit is contained in:
Benjamin Eberlei 2010-08-15 19:51:26 +02:00
commit dd5574162a
2 changed files with 110 additions and 0 deletions

View File

@ -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;
} }

View 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;
}