Micro optimization in computeChangeSet when using readOnly entities.
This commit is contained in:
parent
67497ed834
commit
3cfa479c01
@ -471,19 +471,21 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
*/
|
*/
|
||||||
public function computeChangeSet(ClassMetadata $class, $entity)
|
public function computeChangeSet(ClassMetadata $class, $entity)
|
||||||
{
|
{
|
||||||
if ( ! $class->isInheritanceTypeNone()) {
|
|
||||||
$class = $this->em->getClassMetadata(get_class($entity));
|
|
||||||
}
|
|
||||||
|
|
||||||
$oid = spl_object_hash($entity);
|
$oid = spl_object_hash($entity);
|
||||||
|
|
||||||
if (isset($this->readOnlyObjects[$oid])) {
|
if (isset($this->readOnlyObjects[$oid])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( ! $class->isInheritanceTypeNone()) {
|
||||||
|
$class = $this->em->getClassMetadata(get_class($entity));
|
||||||
|
}
|
||||||
|
|
||||||
$actualData = array();
|
$actualData = array();
|
||||||
|
|
||||||
foreach ($class->reflFields as $name => $refProp) {
|
foreach ($class->reflFields as $name => $refProp) {
|
||||||
$value = $refProp->getValue($entity);
|
$value = $refProp->getValue($entity);
|
||||||
|
|
||||||
if (isset($class->associationMappings[$name])
|
if (isset($class->associationMappings[$name])
|
||||||
&& ($class->associationMappings[$name]['type'] & ClassMetadata::TO_MANY)
|
&& ($class->associationMappings[$name]['type'] & ClassMetadata::TO_MANY)
|
||||||
&& $value !== null
|
&& $value !== null
|
||||||
|
Loading…
x
Reference in New Issue
Block a user