在Doctrine 2 DQL中选择更新

Ben*_*min 3 doctrine-orm

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

$em->find($class, $id, LockMode::PESSIMISTIC_WRITE);
Run Code Online (Sandbox Code Playgroud)

这导致SELECT FOR UPDATE使用MySQL时.

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

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

Ben*_*min 8

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

$query = $this->em->createQuery('SELECT ...');
$query->setLockMode(LockMode::PESSIMISTIC_WRITE);
Run Code Online (Sandbox Code Playgroud)