73 lines
2.1 KiB
PHP
73 lines
2.1 KiB
PHP
<?php
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
use Doctrine\ORM\Query;
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
/**
|
|
* @group DDC-371
|
|
*/
|
|
class DDC371Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
{
|
|
protected function setUp()
|
|
{
|
|
parent::setUp();
|
|
//$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
|
|
$this->_schemaTool->createSchema(array(
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC371Parent'),
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC371Child')
|
|
));
|
|
}
|
|
|
|
public function testIssue()
|
|
{
|
|
$parent = new DDC371Parent;
|
|
$parent->data = 'parent';
|
|
$parent->children = new \Doctrine\Common\Collections\ArrayCollection;
|
|
|
|
$child = new DDC371Child;
|
|
$child->data = 'child';
|
|
|
|
$child->parent = $parent;
|
|
$parent->children->add($child);
|
|
|
|
$this->_em->persist($parent);
|
|
$this->_em->persist($child);
|
|
|
|
$this->_em->flush();
|
|
$this->_em->clear();
|
|
|
|
$children = $this->_em->createQuery('select c,p from '.__NAMESPACE__.'\DDC371Child c '
|
|
. 'left join c.parent p where c.id = 1 and p.id = 1')
|
|
->setHint(Query::HINT_REFRESH, true)
|
|
->getResult();
|
|
|
|
$this->assertEquals(1, count($children));
|
|
$this->assertNotInstanceOf('Doctrine\ORM\Proxy\Proxy', $children[0]->parent);
|
|
$this->assertFalse($children[0]->parent->children->isInitialized());
|
|
$this->assertEquals(0, $children[0]->parent->children->unwrap()->count());
|
|
}
|
|
}
|
|
|
|
/** @Entity */
|
|
class DDC371Child {
|
|
/** @Id @Column(type="integer") @GeneratedValue */
|
|
private $id;
|
|
/** @Column(type="string") */
|
|
public $data;
|
|
/** @ManyToOne(targetEntity="DDC371Parent", inversedBy="children") @JoinColumn(name="parentId") */
|
|
public $parent;
|
|
}
|
|
|
|
/** @Entity */
|
|
class DDC371Parent {
|
|
/** @Id @Column(type="integer") @GeneratedValue */
|
|
private $id;
|
|
/** @Column(type="string") */
|
|
public $data;
|
|
/** @OneToMany(targetEntity="DDC371Child", mappedBy="parent") */
|
|
public $children;
|
|
}
|
|
|