/** * Unlink the field mapping of the referenced record for the old owning record * * @param Record $referencedRecord */ private function unlinkFieldMappingForOldOwningRecord(Record $referencedRecord) { if (!$this->relation->isOneToOne()) { return; } $refId = $referencedRecord->getInternalId(); if (!$this->isReferenced($refId)) { return; } $oldOwningId = $this->getOwning($refId); $repositoryOwningSide = $this->getRefRepository($referencedRecord, $this->relation->getOwningAlias()); if ($repositoryOwningSide->hasByInternalId($oldOwningId)) { $owningField = $this->relation->getOwningField(); $oldOwningRecord = $repositoryOwningSide->getByInternalId($oldOwningId); $oldOwningRecord->set($owningField, null); $this->unsetFieldMapping($oldOwningRecord->getOid()); } }