我希望能够检索实体的现有版本,以便我可以将其与最新版本进行比较。例如,编辑文件时,我想知道该值是否自从在数据库中以来已经更改。
$entityManager = $this->get('doctrine')->getEntityManager();
$postManager = $this->get('synth_knowledge_share.manager');
$repository = $entityManager->getRepository('KnowledgeShareBundle:Post');
$post = $repository->findOneById(1);
var_dump($post->getTitle()); // This would output "My Title"
$post->setTitle("Unpersisted new title");
$existingPost = $repository->findOneById(1); // Retrieve the old entity
var_dump($existingPost->getTitle()); // This would output "Unpersisted new title" instead of the expected "My Title"
有人知道我怎样才能避开这个缓存吗?
$entityManager->clear()
。 - richsage$entityManager->beginTransaction()
,请确保在尝试清除实体管理器之前关闭事务(例如$entityManager->rollback()
)。一个未关闭的事务将强制使用一致的、因此未更新的数据库视图。 - stanhope