From 4e1ac25d622e64e9bb07699bf85c2bebc36c6591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Thu, 5 Mar 2020 22:52:20 +0100 Subject: [PATCH] Fix: Do not persist embeddables --- src/Provider/Doctrine/FixtureFactory.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Provider/Doctrine/FixtureFactory.php b/src/Provider/Doctrine/FixtureFactory.php index 5a3c52a..330075c 100644 --- a/src/Provider/Doctrine/FixtureFactory.php +++ b/src/Provider/Doctrine/FixtureFactory.php @@ -4,6 +4,7 @@ use Doctrine\ORM\EntityManager; use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\ArrayCollection; +use Doctrine\ORM\Mapping; use Exception; /** @@ -84,12 +85,17 @@ public function get($name, array $fieldOverrides = []) throw EntityDefinitionUnavailable::for($name); } + /** @var EntityDef $def */ $def = $this->entityDefs[$name]; + $config = $def->getConfig(); $this->checkFieldOverrides($def, $fieldOverrides); - $ent = $def->getEntityMetadata()->newInstance(); + /** @var Mapping\ClassMetadata $entityMetadata */ + $entityMetadata = $def->getEntityMetadata(); + + $ent = $entityMetadata->newInstance(); $fieldValues = []; foreach ($def->getFieldDefs() as $fieldName => $fieldDef) { $fieldValues[$fieldName] = array_key_exists($fieldName, $fieldOverrides) @@ -105,7 +111,7 @@ public function get($name, array $fieldOverrides = []) $config['afterCreate']($ent, $fieldValues); } - if ($this->persist) { + if ($this->persist && false === $entityMetadata->isEmbeddedClass) { $this->em->persist($ent); }