No puede lograr esto usando @Query
. Otras alternativas posibles son
-
Cree dos métodos en la clase Repositorio. Uno que solo toma id y otro que toma id y otros argumentos. Y en su clase de servicio, puede decidir a cuál llamar en función de los datos disponibles. (No escalable)
-
Utilice QueryDsl. Con esto puedes crear criterios de búsqueda basados en datos que tienes de forma dinámica. Algunos enlaces útiles
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/consultas-en -spring-data-mongodb - Puedes usar
Example
. Aquí es el enlace para la documentación.(Esto tiene algunas limitaciones)
En mi experiencia personal, usar QueryDsl es la mejor manera de abordar estos casos y puede ampliarse fácilmente para cambios adicionales en los requisitos.