Merge branch 'FixPostgresFailures'
This commit is contained in:
commit
c948ad852e
@ -1105,6 +1105,22 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (!$class->idGenerator->isPostInsertGenerator()) {
|
||||||
|
// if we have a pre insert generator we can't be sure that having an id
|
||||||
|
// really means that the entity exists. We have to verify this through
|
||||||
|
// the last resort: a db lookup
|
||||||
|
|
||||||
|
// Last try before db lookup: check the identity map.
|
||||||
|
if ($this->tryGetById($id, $class->rootEntityName)) {
|
||||||
|
return self::STATE_DETACHED;
|
||||||
|
} else {
|
||||||
|
// db lookup
|
||||||
|
if ($this->getEntityPersister(get_class($entity))->exists($entity)) {
|
||||||
|
return self::STATE_DETACHED;
|
||||||
|
} else {
|
||||||
|
return self::STATE_NEW;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return self::STATE_DETACHED;
|
return self::STATE_DETACHED;
|
||||||
}
|
}
|
||||||
@ -1745,7 +1761,7 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
*/
|
*/
|
||||||
public function lock($entity, $lockMode, $lockVersion = null)
|
public function lock($entity, $lockMode, $lockVersion = null)
|
||||||
{
|
{
|
||||||
if ($this->getEntityState($entity) != self::STATE_MANAGED) {
|
if ($this->getEntityState($entity, self::STATE_DETACHED) != self::STATE_MANAGED) {
|
||||||
throw new InvalidArgumentException("Entity is not MANAGED.");
|
throw new InvalidArgumentException("Entity is not MANAGED.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,15 +150,15 @@ class BasicFunctionalTest extends \Doctrine\Tests\OrmFunctionalTestCase
|
|||||||
$user->username = 'gblanco';
|
$user->username = 'gblanco';
|
||||||
$user->status = 'developer';
|
$user->status = 'developer';
|
||||||
|
|
||||||
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_NEW, $this->_em->getUnitOfWork()->getEntityState($user));
|
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_NEW, $this->_em->getUnitOfWork()->getEntityState($user), "State should be UnitOfWork::STATE_NEW");
|
||||||
|
|
||||||
$this->_em->persist($user);
|
$this->_em->persist($user);
|
||||||
|
|
||||||
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_MANAGED, $this->_em->getUnitOfWork()->getEntityState($user));
|
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_MANAGED, $this->_em->getUnitOfWork()->getEntityState($user), "State should be UnitOfWork::STATE_MANAGED");
|
||||||
|
|
||||||
$this->_em->remove($user);
|
$this->_em->remove($user);
|
||||||
|
|
||||||
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_NEW, $this->_em->getUnitOfWork()->getEntityState($user));
|
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_NEW, $this->_em->getUnitOfWork()->getEntityState($user), "State should be UnitOfWork::STATE_NEW");
|
||||||
|
|
||||||
$this->_em->persist($user);
|
$this->_em->persist($user);
|
||||||
$this->_em->flush();
|
$this->_em->flush();
|
||||||
@ -166,10 +166,10 @@ class BasicFunctionalTest extends \Doctrine\Tests\OrmFunctionalTestCase
|
|||||||
|
|
||||||
$this->_em->remove($user);
|
$this->_em->remove($user);
|
||||||
|
|
||||||
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_REMOVED, $this->_em->getUnitOfWork()->getEntityState($user));
|
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_REMOVED, $this->_em->getUnitOfWork()->getEntityState($user), "State should be UnitOfWork::STATE_REMOVED");
|
||||||
$this->_em->flush();
|
$this->_em->flush();
|
||||||
|
|
||||||
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_NEW, $this->_em->getUnitOfWork()->getEntityState($user));
|
$this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_NEW, $this->_em->getUnitOfWork()->getEntityState($user), "State should be UnitOfWork::STATE_NEW");
|
||||||
|
|
||||||
$this->assertNull($this->_em->find('Doctrine\Tests\Models\CMS\CmsUser', $id));
|
$this->assertNull($this->_em->find('Doctrine\Tests\Models\CMS\CmsUser', $id));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user