postUpdate, postRemove, postPersist - 数据库中的数据了吗?
postUpdate, postRemove, postPersist - is the data in the database yet?
出于问题的目的,我将询问 postUpdate
,但我假设它们都是类似的。如果我获取一个现有实体,修改它,然后刷新,那么我可以订阅一个关于此的 postUpdate
事件。在此事件触发时,数据实际上是否在数据库中?或者在事件触发和实际保存数据之间有一小段时间?
文档似乎清楚地说
The postUpdate event occurs after the database update operations to entity data
所以我认为是前者。
但我遇到了类似于 的问题 - 答案表明这是因为在 postUpdate
事件期间数据实际上尚未完全保存,这就是 postFlush
事件是为了代替。
有人可以确认一下吗?
我想通了,他们 运行 在数据库事务开始之后但在提交之前 - 所以答案是否定的,数据不在那里。事务提交后postFlush
运行秒
该行为的发生是因为所有 post* 事件都在事务块内触发(预期 postFlush),因此数据实际上已经在数据库中,但它们在事务中,但还没有承诺。
出于问题的目的,我将询问 postUpdate
,但我假设它们都是类似的。如果我获取一个现有实体,修改它,然后刷新,那么我可以订阅一个关于此的 postUpdate
事件。在此事件触发时,数据实际上是否在数据库中?或者在事件触发和实际保存数据之间有一小段时间?
文档似乎清楚地说
The postUpdate event occurs after the database update operations to entity data
所以我认为是前者。
但我遇到了类似于 postUpdate
事件期间数据实际上尚未完全保存,这就是 postFlush
事件是为了代替。
有人可以确认一下吗?
我想通了,他们 运行 在数据库事务开始之后但在提交之前 - 所以答案是否定的,数据不在那里。事务提交后postFlush
运行秒
该行为的发生是因为所有 post* 事件都在事务块内触发(预期 postFlush),因此数据实际上已经在数据库中,但它们在事务中,但还没有承诺。