commit
4d425317b4
@ -2195,6 +2195,11 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$overrideLocalValues = isset($hints[Query::HINT_REFRESH]);
|
$overrideLocalValues = isset($hints[Query::HINT_REFRESH]);
|
||||||
|
|
||||||
|
// If only a specific entity is set to refresh, check that it's the one
|
||||||
|
if(isset($hints[Query::HINT_REFRESH_ENTITY])) {
|
||||||
|
$overrideLocalValues = $hints[Query::HINT_REFRESH_ENTITY] === $entity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($overrideLocalValues) {
|
if ($overrideLocalValues) {
|
||||||
|
131
tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1458Test.php
Normal file
131
tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1458Test.php
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
||||||
|
|
||||||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
|
use Doctrine\Tests\Models\CMS\CmsUser;
|
||||||
|
use Doctrine\Tests\Models\CMS\CmsGroup;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../../TestInit.php';
|
||||||
|
|
||||||
|
class DDC1258Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
||||||
|
{
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
$this->_schemaTool->createSchema(array(
|
||||||
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\TestEntity'),
|
||||||
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\TestAdditionalEntity')
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIssue()
|
||||||
|
{
|
||||||
|
$testEntity = new TestEntity();
|
||||||
|
$testEntity->setValue(3);
|
||||||
|
$testEntity->setAdditional(new TestAdditionalEntity());
|
||||||
|
$this->_em->persist($testEntity);
|
||||||
|
$this->_em->flush();
|
||||||
|
$this->_em->clear();
|
||||||
|
|
||||||
|
// So here the value is 3
|
||||||
|
$this->assertEquals(3, $testEntity->getValue());
|
||||||
|
|
||||||
|
$test = $this->_em->getRepository(__NAMESPACE__ . '\TestEntity')->find(1);
|
||||||
|
|
||||||
|
// New value is set
|
||||||
|
$test->setValue(5);
|
||||||
|
|
||||||
|
// So here the value is 5
|
||||||
|
$this->assertEquals(5, $test->getValue());
|
||||||
|
|
||||||
|
// Get the additional entity
|
||||||
|
$additional = $test->getAdditional();
|
||||||
|
|
||||||
|
// Still 5..
|
||||||
|
$this->assertEquals(5, $test->getValue());
|
||||||
|
|
||||||
|
// Force the proxy to load
|
||||||
|
$additional->getBool();
|
||||||
|
|
||||||
|
// The value should still be 5
|
||||||
|
$this->assertEquals(5, $test->getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Entity
|
||||||
|
*/
|
||||||
|
class TestEntity
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @Id
|
||||||
|
* @Column(type="integer")
|
||||||
|
* @GeneratedValue(strategy="AUTO")
|
||||||
|
*/
|
||||||
|
protected $id;
|
||||||
|
/**
|
||||||
|
* @Column(type="integer")
|
||||||
|
*/
|
||||||
|
protected $value;
|
||||||
|
/**
|
||||||
|
* @OneToOne(targetEntity="TestAdditionalEntity", inversedBy="entity", orphanRemoval=true, cascade={"persist", "remove"})
|
||||||
|
*/
|
||||||
|
protected $additional;
|
||||||
|
|
||||||
|
public function getValue()
|
||||||
|
{
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setValue($value)
|
||||||
|
{
|
||||||
|
$this->value = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAdditional()
|
||||||
|
{
|
||||||
|
return $this->additional;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setAdditional($additional)
|
||||||
|
{
|
||||||
|
$this->additional = $additional;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @Entity
|
||||||
|
*/
|
||||||
|
class TestAdditionalEntity
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @Id
|
||||||
|
* @Column(type="integer")
|
||||||
|
* @GeneratedValue(strategy="AUTO")
|
||||||
|
*/
|
||||||
|
protected $id;
|
||||||
|
/**
|
||||||
|
* @OneToOne(targetEntity="TestEntity", mappedBy="additional")
|
||||||
|
*/
|
||||||
|
protected $entity;
|
||||||
|
/**
|
||||||
|
* @Column(type="boolean")
|
||||||
|
*/
|
||||||
|
protected $bool;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->bool = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBool()
|
||||||
|
{
|
||||||
|
return $this->bool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setBool($bool)
|
||||||
|
{
|
||||||
|
$this->bool = $bool;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user