/**
  * 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);
 }