Vous ne pouvez pas y parvenir en utilisant @Query
. Les autres alternatives possibles sont
-
Créez deux méthodes dans la classe Repository. L'un qui ne prend que id et l'autre qui prend id et d'autres arguments. Et dans votre classe de service, vous pouvez décider laquelle appeler en fonction des données dont vous disposez. (Non évolutif)
-
Utilisez QueryDsl. Avec cela, vous pouvez créer des critères de recherche basés sur les données dont vous disposez de manière dynamique. Quelques liens utiles
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb - Vous pouvez utiliser
Example
. ici est le lien vers la documentation.(Ceci a quelques limitations)
D'après mon expérience personnelle, l'utilisation de QueryDsl est le meilleur moyen de résoudre ces cas et il peut être facilement étendu pour d'autres changements d'exigence.