我在 Doctrine2 中发生了几个更新,每个更新都在一个事务中。
此代码的末尾是一个 Select 查询,它使用 JMSSerializerBundle 返回大量数据.但是从 JMSSerializerBundle 返回的 JSON 中不存在一些更新。
我认为它与 JMSSerializerBundle 无关。
但与 Doctrine2 更相关。如果我再次运行选择查询,那么数据就在那里。所以它就在那里,只是没有在同一个 HTTP 调用中返回。
代码相对简单,所以我没有包括在内,这更多是关于了解更新数据显示时可能发生的情况的问题,有些则不显示。
事务应该在选择查询发生时完成,不是吗?
顺序如下:
- 开始交易
- 更改实体
- 坚持
- 冲洗
- promise
最佳答案
这可能取决于交易中的隔离级别。 要使其在事务中工作,您需要设置:
$entityManager
->getConnection()
->setTransactionIsolation(Connection::TRANSACTION_READ_COMMITTED);
这样,写在交易中的任何东西也是可读的。
其他可能的值:
const TRANSACTION_READ_UNCOMMITTED = 1;
const TRANSACTION_READ_COMMITTED = 2;
const TRANSACTION_REPEATABLE_READ = 3;
const TRANSACTION_SERIALIZABLE = 4;
关于php - Symfony2/Doctrine2 (MySQL) 更新后未立即显示在选择上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33298416/