2

何时是刷新实体/对象管理器的最佳“时间”?应该在每次坚持操作之后吗?还是应该在例如 postDispatch 上运行一次?

4

2 回答 2

3

在每次持久化之后运行它实际上是一种反模式。理想情况下,您应该在请求结束时运行一次。

我不会把它放在 postDispatch 处理程序中,因为这意味着它会在每个请求之后运行,并且这将在性能方面代价高昂,例如,列出具有许多关系的实体的列表页面,因为 Doctrine 将不得不检查许多实体的变化。

将其放在修改数据的操作的末尾。

于 2013-09-11T10:23:06.577 回答
0

理想情况下,在请求结束时一次。但是,如果您使用的实体太多,最好尽快刷新,并且不要让工作单元因实体而过载。这是事情变得非常奇怪的时候,因为 spl_object_hash 的问题并不能识别所有具有唯一性的对象。

也可以使用 clear(),一旦你完成了一些实体并将开始使用其他实体。

于 2018-12-31T18:16:47.847 回答