我在我的应用程序中使用了悲观锁定,并且在使用实体管理器时它可以正常工作:
$em->find($class, $id, LockMode::PESSIMISTIC_WRITE);
使用MySQL时会产生SELECT FOR UPDATE
。
现在我需要使用相同的锁定,但是对于使用DQL查询检索的实体。
是否可以在DQL中使用悲观锁定?
答案 0 :(得分:8)
使用Query::setLockMode()找到解决方案:
$query = $this->em->createQuery('SELECT ...');
$query->setLockMode(LockMode::PESSIMISTIC_WRITE);