php - Symfony2/Doctrine2 (MySQL) 更新后未立即显示在选择上

标签 php mysql symfony doctrine-orm

我在 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/

相关文章:

php - 是否可以在 PHP 中的一个命令(在同一行)中创建实例和调用方法?

php - Gmail oauth imap php 实现

mysql - Doctrine 与 YAML 的一对二关系

PHP MySQL PDO - 创建事件来执行两个查询

php - 当我尝试访问数组项时,我只得到 1. one

php - 如何打印数据

php - 计算平均值

mysql - 只为一个 Bundle 创建的 Doctrine Schema

php - Symfony2 注释继承

php - Laravel artisan down with message parameter with spaces 给出 Too many arguments, expected arguments "command"