Создание новых сущностей и изменение сущности в prePersist - PullRequest
0 голосов
/ 25 октября 2018

в некотором смысле, я бы хотел перенести мой старый вопрос Возможно ли заполнение в postPersist? на событие prePersist.

Предположим, следующий пример

class Entity {

    /** @PrePersist */
    public function doStuffOnPrePersist(LifecycleEventArgs $args)
    {
        $this->value = 'changed from prePersist callback!';
        $other  = new OtherEntity();

        $args->getEntityManager()->persist($other);
    }
}

называется как

$entity = new Entity();
$entity->value = "unchanged";
$em->persist($entity);
$em->flush();

У меня есть 2 фундаментальных вопроса:

- Будут ли value, записанные в db, "неизменными" или "Изменены с ..."?

- Будет ли OtherEntity записываться в БД?

Предполагая, что на оба вопроса дан ответ "да", позвольте мне расширить мой вопрос:

Оба, Entity и OtherEntityимеет поле сгенерированного идентификатора, а OtherEntity имеет ссылку (ManyToOne) на Entity:

class Entity {
    /* 
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    private $id;

    /** @PrePersist */
    public function doStuffOnPrePersist(LifecycleEventArgs $args)
    {
        $this->value = 'changed from prePersist callback!';
        $other  = new OtherEntity();
        $other->father = $this;    // <-------------
        $args->getEntityManager()->persist($other);
    }
}

Будет ли это работать тоже?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...