diff --git a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php index 3c502e3d7..f94d79e96 100644 --- a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php +++ b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php @@ -345,9 +345,12 @@ class BasicEntityPersister implements EntityPersister . ' WHERE ' . implode(' = ? AND ', $identifier) . ' = ?'; $types = []; - foreach ($identifier as $fieldName) { - $types[] = $versionedClass->fieldMappings[$fieldName]['type']; + foreach ($id as $field => $value) { + foreach ($this->getTypes($field, $value, $versionedClass) as $type) { + $types[] = $type; + } } + $flatId = $this->identifierFlattener->flattenIdentifier($versionedClass, $id); $value = $this->conn->fetchColumn($sql, array_values($flatId), 0, $types);