使用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()获取新值而不是打开新连接?
答案 0 :(得分:4)
$这 - > getEntityManager() - >刷新($实体);
答案 1 :(得分:1)
嗯,您的代码似乎没有错,但是,您可以尝试使用find()
方法:
$produtoAcessorioCompareEntity = $this->getEntityManager()
->find('Administrador\Entit\ProdutoAcessorio', $produtoAcessorioEntity->getIdProdutoAcessorio());