我希望在插入/更新/删除某些类型的实体后执行操作,但仅当更改在数据库中有效时才能执行,并且已提交。
onFlush
在收听onFlush
事件时,我显然可以访问已安排的实体进行插入,更新和删除,如下所示:
$em->getUnitOfWork()->getScheduledEntityInsertions();
$em->getUnitOfWork()->getScheduledEntityUpdates();
$em->getUnitOfWork()->getScheduledEntityDeletions();
但这还为时尚早,因为交易尚未提交......
postFlush
当我收听postFlush
事件时,我没有任何预定的插入插入因为它已经完成(所以它不再安排)并且我无法知道哪些对象满脸通红。
scheduledForSynchronization
在挖掘之后,我注意到有一个名为private
的{{1}}属性,其中包含想要的信息。不幸的是,它是私人的。
我想知道为什么这个属性是私有的,或者为什么它不存在任何吸气剂(?)。
感谢您的时间。