在Doctrine 2 DQL中选择更新

时间:2013-11-28 14:51:01

标签: doctrine-orm

我在我的应用程序中使用了悲观锁定,并且在使用实体管理器时它可以正常工作:

$em->find($class, $id, LockMode::PESSIMISTIC_WRITE);

使用MySQL时会产生SELECT FOR UPDATE

现在我需要使用相同的锁定,但是对于使用DQL查询检索的实体。

是否可以在DQL中使用悲观锁定?

1 个答案:

答案 0 :(得分:8)

使用Query::setLockMode()找到解决方案:

$query = $this->em->createQuery('SELECT ...');
$query->setLockMode(LockMode::PESSIMISTIC_WRITE);