123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace Doctrine\Tests\ORM\Functional\Ticket;
- use Doctrine\ORM\Query;
- require_once __DIR__ . '/../../../TestInit.php';
- 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;
- }
|