Bạn không thể đạt được điều này bằng cách sử dụng @Query
. Các lựa chọn thay thế khả thi khác là
-
Tạo hai phương thức trong lớp Kho lưu trữ. Một cái chỉ lấy id và cái khác lấy id và các đối số khác. Và trong lớp dịch vụ của mình, bạn có thể quyết định gọi cái nào dựa trên dữ liệu có trong tay. (Không thể mở rộng)
-
Sử dụng QueryDsl. Với điều này, bạn có thể tạo các tiêu chí tìm kiếm dựa trên dữ liệu động mà bạn có. Một số liên kết hữu ích
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#core.extensions.querydsl
http://www.baeldung.com/queries-in -spring-data-mongodb - Bạn có thể sử dụng
Example
. Tại đây là liên kết cho tài liệu. (Điều này có một số hạn chế)
Theo kinh nghiệm cá nhân của tôi, sử dụng QueryDsl là cách tốt nhất để giải quyết những trường hợp này và nó có thể dễ dàng mở rộng để có những thay đổi tiếp theo trong yêu cầu.