Du kan inte uppnå detta med @Query
. Andra möjliga alternativ är
-
Skapa två metoder i klassen Repository. En som bara tar id och en annan som tar id och andra argument. Och i din serviceklass kan du bestämma vilken du ska ringa baserat på uppgifterna i handen. (Ej skalbar)
-
Använd QueryDsl. Med detta kan du skapa sökkriterier baserat på data du har dynamiskt. Några användbara länkar
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb - Du kan använda
Example
. Här är länken för dokumentation.(Detta har vissa begränsningar)
Enligt min personliga erfarenhet är att använda QueryDsl det bästa sättet att hantera dessa fall och det kan enkelt utökas för ytterligare förändringar i kraven.