Spring Data Mongodb @Query с опцией исключения
Используя класс данных Spring Data Mongo, как мы объявляем метод для возврата документов с несколькими исключенными полями? Справочный документ данных Spring показывает механизм полей include, но не исключает. Код из весенней документации:
public interface PersonRepository extends MongoRepository<Person, String>
@Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 1, 'lastname' : 1}")
List<Person> findByThePersonsFirstname(String firstname);
}
Мне нужен механизм для указания полей, которые должны быть исключены? Поддерживается ли это для методов репозитория?
2 ответа
Решение
Укажите значение поля как 0. Пример:
public interface PersonRepository extends MongoRepository<Person, String>
@Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 0}")
List<Person> findByThePersonsFirstname(String firstname);
}
Это не будет извлекать имя свойства документа, и значение будет нулевым в возвращенном объекте Java.
Добавить пустой критерий фильтра для findAll
запрос:
public interface PersonRepository extends MongoRepository<Person, String> {
@Query(value = "{}", fields = "{ 'firstname' : 0 }")
List<Person> findAll(Sort sort);
}