/** * Lock all rows of this entity matching the given criteria with the specified pessimistic lock mode * * @param array $criteria * @param int $lockMode * @return void */ public function lock(array $criteria, $lockMode) { $conditionSql = $this->_getSelectConditionSQL($criteria); if ($lockMode == LockMode::PESSIMISTIC_READ) { $lockSql = $this->_platform->getReadLockSql(); } else { if ($lockMode == LockMode::PESSIMISTIC_WRITE) { $lockSql = $this->_platform->getWriteLockSql(); } } $sql = 'SELECT 1 ' . $this->_platform->appendLockHint($this->getLockTablesSql(), $lockMode) . ($conditionSql ? ' WHERE ' . $conditionSql : '') . ' ' . $lockSql; list($params, $types) = $this->expandParameters($criteria); $stmt = $this->_conn->executeQuery($sql, $params, $types); }