Почему flush($some) сбрасывает все изменения?

Здравствуйте, сегодня столкнулся со следующем поведением в symfony:
$remove = $this->getEm()->getRepository('MainBundle:Something')->findOneBy([],['id'=>'ASC']);
$this->getEm()->remove($remove);

$city = new City();
$city->setName(date('U'));
$this->getEm()->persist($city);
$this->getEm()->flush($city);

В результатеи удаляется remove, хотя ожидается, что будет сохранено только изменение сущности city. Почему так происходит?
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
voronkovich
@voronkovich
Виталий Сорокин, Ответы здесь:
https://github.com/doctrine/doctrine2/blob/master/...
https://github.com/doctrine/doctrine2/blob/master/...
/**
 * Only flushes the given entity according to a ruleset that keeps the UoW consistent.
 *
 * 1. All entities scheduled for insertion, (orphan) removals and changes in collections are processed as well!
 * 2. Read Only entities are skipped.
 * 3. Proxies are skipped.
 * 4. Only if entity is properly managed.
 *
 * @param object $entity
 *
 * @return void
 *
 * @throws \InvalidArgumentException
 */
private function computeSingleEntityChangeSet($entity)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы