Я хотел бы иметь возможность включать или исключать определенные поля, возвращаемые в результате моего запроса 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