Events 生命周期事件prePersist是否与Persist一起以原子方式播放

Events 生命周期事件prePersist是否与Persist一起以原子方式播放,events,doctrine-orm,lifecycle,persist,Events,Doctrine Orm,Lifecycle,Persist,我是否可以假定Prepeist事件和持久化操作(与该事件相关)始终在一个原子操作中播放?您可能不这么认为。持久化实体将触发prePersist事件,但实际插入将推迟到刷新EntityManager之后。这意味着可能存在争用条件,即进程1在进程2持久化实体之后但在执行刷新之前发出插入查询(即刷新EntityManager)?如果新实体被持久化,则始终触发该事件。请注意,持久化实体不会导致在刷新期间触发插入查询。@malarzm我所说的原子是指:我可以在prePersist期间对实体进行计数,并确保

我是否可以假定Prepeist事件和持久化操作(与该事件相关)始终在一个原子操作中播放?

您可能不这么认为。持久化实体将触发
prePersist
事件,但实际插入将推迟到
刷新
EntityManager
之后。这意味着可能存在争用条件,即进程1在进程2持久化实体之后但在执行
刷新之前发出插入查询(即刷新
EntityManager
)?如果新实体被持久化,则始终触发该事件。请注意,持久化实体不会导致在刷新期间触发插入查询。@malarzm我所说的原子是指:我可以在prePersist期间对实体进行计数,并确保在持久化操作之前没有正文插入/删除实体。(我希望能够根据计数生成ID)