Не можете да постигнете това с @Query
. Други възможни алтернативи са
-
Създайте два метода в клас Repository. Един, който приема само идентификатор, и друг, който приема идентификатор и други аргументи. И във вашия клас на обслужване можете да решите кой да се обадите въз основа на наличните данни. (Не се мащабира)
-
Използвайте QueryDsl. С това можете да създадете критерии за търсене въз основа на данните, които имате динамично. Някои полезни връзки
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb - Можете да използвате
Example
. Тук е връзката за документация.(Това има някои ограничения)
Според моя личен опит използването на QueryDsl е най-добрият начин за справяне с тези случаи и може лесно да бъде разширено за допълнителни промени в изискванията.