Php Symfony2/Doctrine2(MySQL)更新不会在更新后立即显示在Select上
我在Doctrine2中有几个更新,每个更新都在一个事务中 在这段代码的末尾是一个Select查询,它使用。但是从JMSSerializerBundle返回的JSON中没有一些更新 我不认为这与JMSSerializerBundle有关 但更多的是与教义2相关。如果我再次运行select查询,那么数据就在那里。它就在那里,只是没有在同一个HTTP调用中返回 代码相对简单,所以我没有包括在内,这更多的是一个关于理解更新后的数据可能会发生什么的问题 事务应该在select查询发生时完成,不是吗 命令如下:Php Symfony2/Doctrine2(MySQL)更新不会在更新后立即显示在Select上,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我在Doctrine2中有几个更新,每个更新都在一个事务中 在这段代码的末尾是一个Select查询,它使用。但是从JMSSerializerBundle返回的JSON中没有一些更新 我不认为这与JMSSerializerBundle有关 但更多的是与教义2相关。如果我再次运行select查询,那么数据就在那里。它就在那里,只是没有在同一个HTTP调用中返回 代码相对简单,所以我没有包括在内,这更多的是一个关于理解更新后的数据可能会发生什么的问题 事务应该在select查询发生时完成,不是吗 命令
- 启动事务
- 对实体进行更改
- 坚持
- 冲洗
- 承诺
$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;
你坚持了实体吗?是的,刚刚为你编辑了我的Q。对不起,我应该重新措辞;你确定你坚持了吗我已经做了很多次修改,但是完全忘记了在错误的点上坚持。如果没有代码示例,它可能是第一个要看的东西。因为如果我没有这样做,那么它就根本不起作用,即使是在后续的请求上也不起作用了?这实际上取决于您是如何实现它的(即,我发现我错过持久化的最常见的区域是在循环内)。同样,没有代码很难识别。