我应该使用Connection :: executeUpdate()吗?

时间:2014-12-08 11:01:51

标签: doctrine-orm dbal

我使用Doctrine DBAL v2.5.0,我想执行一个简单的更新语句。在文档中写道,我应该使用方法executeUpdate()(http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html#executeupdate)。但是在源代码中,这个方法有@internal注释。因此,我不确定是否应该从非库代码中使用此方法。我应该吗?

1 个答案:

答案 0 :(得分:0)

您似乎必须在doctrine服务上使用executeUpdate()方法,而不是在实体管理器上。

$this->container->get('doctrine.orm.entity_manager')->getConnection()->executeUpdate($query);在我的IDE中发出警告,executeUpdate()是@internal。

$this->container->get('doctrine')->getConnection()->executeUpdate($query); 或者在控制器$this->getDoctrine()->getConnection()->executeUpdate($query);中没有发出任何警告。

换句话说: 您想要调用executeUpdate()方法 \Doctrine\Bundle\DoctrineBundle\Registry课程 而不是 \Doctrine\ORM\EntityManager

Pd积。也许我应该提一下,我将Doctrine与Symfony2结合使用。