def update_all(self, *args, **kwargs):
        """Updates all objects with details given if they match a set of conditions supplied.

        This method forwards filters and updates directly to the repository. It does not
        instantiate entities and it does not trigger Entity callbacks or validations.

        Update values can be specified either as a dict, or keyword arguments.

        Returns the number of objects matched (which may not be equal to the number of objects
            updated if objects rows already have the new value).
        """
        updated_item_count = 0

        repository = repo_factory.get_repository(self._entity_cls)

        try:
            updated_item_count = repository.update_all(self._criteria, *args, **kwargs)
        except Exception:
            # FIXME Log Exception
            raise

        return updated_item_count