в некотором смысле, я бы хотел перенести мой старый вопрос Возможно ли заполнение в 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);
}
}
Будет ли это работать тоже?