如何从数据库中获取实体并锁定Doctrine ORM中的相应数据库行?

时间:2014-01-18 16:45:12

标签: php doctrine-orm

Doctrine 2中是否有可能(以及如何)使用QueryBuilder创建查询并获取每个匹配行的写锁定?使用LockMode::PESSIMISTIC_WRITE获取单个项目时可以使用EntityRepository->find(),但我无法为QueryBuilder找到此类属性。

1 个答案:

答案 0 :(得分:2)

答案是在setLockMode()对象上调用Query

$qb = $em->createQueryBuilder();
$query = $qb->getQuery();

$query->setLockMode(LockMode::PESSIMISTIC_WRITE);

$results = $query->getResult();

Transactions and Concurrency文档页面的最后一行显示支持Query->setLockMode()。有点难以注意,但它就在那里......;)