Укажите поля, которые нужно исключить с помощью параметров метода, используя Spring data mongodb @Query - PullRequest
0 голосов
/ 19 марта 2020

Я хотел бы иметь возможность включать или исключать определенные поля, возвращаемые в результате моего запроса mongodb, на основе параметров, передаваемых в метод. Я знаю, что могу легко сделать это, используя MongoTemplate, но мне интересно посмотреть, есть ли быстрый и простой способ «пружинные волхвы c» для объявления метода хранилища для достижения того же самого.

Из документы Spring у нас есть:

public interface PersonRepository extends MongoRepository<Person, String> {

    @Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 1, 'lastname' : 1}")
    List<Person> findByThePersonsFirstname(String firstname);

}

Выше приведен пример использования ?0 для замены параметра firstname. Я пытаюсь достичь чего-то вроде этого:

public interface PersonRepository extends MongoRepository<Person, String> {

    @Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : ?1, 'lastname' : ?2}")
    List<Person> findByThePersonsFirstname(String firstname, boolean excludeFirstName, boolean excludeLastname);

}

Кажется, это невозможно, когда я пытаюсь это сделать. Есть ли способ заставить его работать? Это позволит сэкономить немало кода с использованием MongoTemplate

...