65 lines
1.6 KiB
PHP
65 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
use Doctrine\Tests\Models\Generic\DateTimeModel;
|
|
use Doctrine\Common\Collections\Criteria;
|
|
|
|
/**
|
|
* @group DDC-2106
|
|
*/
|
|
class DDC2106Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
{
|
|
protected function setUp()
|
|
{
|
|
parent::setUp();
|
|
$this->_schemaTool->createSchema(array(
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC2106Entity'),
|
|
));
|
|
}
|
|
|
|
public function testDetachedEntityAsId()
|
|
{
|
|
// We want an uninitialized PersistentCollection $entity->children
|
|
$entity = new DDC2106Entity();
|
|
$this->_em->persist($entity);
|
|
$this->_em->flush();
|
|
$this->_em->detach($entity);
|
|
$entity = $this->_em->getRepository(__NAMESPACE__ . '\DDC2106Entity')->findOneBy(array());
|
|
|
|
// ... and a managed entity without id
|
|
$entityWithoutId = new DDC2106Entity();
|
|
$this->_em->persist($entityWithoutId);
|
|
|
|
$criteria = Criteria::create()->where(Criteria::expr()->eq('parent', $entityWithoutId));
|
|
$entity->children->matching($criteria)->count();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @Entity
|
|
*/
|
|
class DDC2106Entity
|
|
{
|
|
/**
|
|
* @Id
|
|
* @GeneratedValue(strategy="IDENTITY")
|
|
* @Column(type="integer")
|
|
*/
|
|
public $id;
|
|
|
|
/** @ManyToOne(targetEntity="DDC2106Entity", inversedBy="children") */
|
|
public $parent;
|
|
|
|
/**
|
|
* @OneToMany(targetEntity="DDC2106Entity", mappedBy="parent", cascade={"persist"})
|
|
*/
|
|
public $children;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->children = new \Doctrine\Common\Collections\ArrayCollection;
|
|
}
|
|
}
|
|
|