Doctrine 2将数据更新到数据库中,但不将数据更新到Entity中

时间:2014-06-08 21:06:08

标签: php unit-testing symfony doctrine-orm

使用doctrine 2处理zend框架2。

在进行单元测试时,我使用的是测试数据库'添加,编辑和删除来自。

的值

问题是我添加了一个新实体,好吧。 在我添加新实体后,女巫完美无缺,我试图更新实体。

//set all values
$this->getEntityManager->persist($dataEntity);
$this->getEntityManager->flush()

当我尝试使用以下方法检索更新的数据时

    $produtoAcessorioCompareEntity = $this->getEntityManager()->getRepository('Administrador\Entity\ProdutoAcessorio')->findOneBy(array(
        'idProdutoAcessorio' => $produtoAcessorioEntity->getIdProdutoAcessorio()
    ));

但是这缓存了ADD方法中的旧数据并且未更新新实体$ produtoAcessorioCompareEntity的数据,我得到了旧值。

当我检查数据库时,新值就在那里。因此,应该有一个技巧来重新组织我可能遗失的已加载实体。

如何在Persist和Flush之后更新工作实体,通过$ this-> getEntityManager-> getRepository()获取新值而不是打开新连接?

2 个答案:

答案 0 :(得分:4)

$这 - > getEntityManager() - >刷新($实体);

答案 1 :(得分:1)

嗯,您的代码似乎没有错,但是,您可以尝试使用find()方法:

$produtoAcessorioCompareEntity = $this->getEntityManager()
    ->find('Administrador\Entit\ProdutoAcessorio', $produtoAcessorioEntity->getIdProdutoAcessorio());