summaryrefslogtreecommitdiff
path: root/vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php')
-rw-r--r--vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php b/vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php
new file mode 100644
index 0000000..0af3162
--- /dev/null
+++ b/vendor/doctrine/orm/src/Exception/EntityIdentityCollisionException.php
@@ -0,0 +1,39 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\ORM\Exception;
6
7use Exception;
8
9use function sprintf;
10
11final class EntityIdentityCollisionException extends Exception implements ORMException
12{
13 public static function create(object $existingEntity, object $newEntity, string $idHash): self
14 {
15 return new self(
16 sprintf(
17 <<<'EXCEPTION'
18While adding an entity of class %s with an ID hash of "%s" to the identity map,
19another object of class %s was already present for the same ID. This exception
20is a safeguard against an internal inconsistency - IDs should uniquely map to
21entity object instances. This problem may occur if:
22
23- you use application-provided IDs and reuse ID values;
24- database-provided IDs are reassigned after truncating the database without
25clearing the EntityManager;
26- you might have been using EntityManager#getReference() to create a reference
27for a nonexistent ID that was subsequently (by the RDBMS) assigned to another
28entity.
29
30Otherwise, it might be an ORM-internal inconsistency, please report it.
31EXCEPTION
32 ,
33 $newEntity::class,
34 $idHash,
35 $existingEntity::class,
36 ),
37 );
38 }
39}