在
原则 2 中是否有可能(以及如何)创建一个带有QueryBuilder
的查询并为每个匹配的行获取写锁定? LockMode::PESSIMISTIC_WRITE
可以在使用 EntityRepository->find()
获取单个项目时使用,但我无法为 QueryBuilder 找到这样的属性。
答案是在Query
对象上调用setLockMode()
。
$qb = $em->createQueryBuilder();
$query = $qb->getQuery();
$query->setLockMode(LockMode::PESSIMISTIC_WRITE);
$results = $query->getResult();
"事务和并发"文档页面的最后一行显示支持Query->setLockMode()
。有点难以注意到,但它就在那里... ;)