public function batchUpdate($propertyPairs, $fallBackToIteration = false)
    {
        try {
            if ($this instanceof RepositoryCollection) {
                $this->getRepository()->batchCommitUpdatesFromCollection($this, $propertyPairs);
            } else {
                throw new BatchUpdateNotPossibleException();
            }
        } catch (BatchUpdateNotPossibleException $er) {
            if ($fallBackToIteration) {
                foreach ($this as $item) {
                    $item->mergeRawData($propertyPairs);
                    $item->save();
                }
            } else {
                throw $er;
            }
        }
        return $this;
    }