public function save(Advertisement $advertisement) { if ($advertisement->getId()) { foreach ($advertisement->getAdvertisementPropertyValues()->getDeleteDiff() as $value) { $this->em->remove($value); } } $advertisement->setStatus(AdvertisementStatuses::ACTIVE); $this->em->persist($advertisement); $this->em->flush(); // Update Denormalized Advertisement Data $this->updateAdvertisementDenormalizedData($advertisement); }