Tôi mới sử dụng Dữ liệu Mùa xuân với MongoDB và muốn có một phương thức truy vấn được tạo tự động trong giao diện mở rộng MongoRepository yêu cầu lọc, phân loại và hạn chế.Truy vấn với sắp xếp() và giới hạn() trong giao diện Kho lưu trữ Mùa xuân
Truy vấn trông như thế này:
// 'created' is the field I need to sort against
find({state:'ACTIVE'}).sort({created:-1}).limit(1)
Giao diện kho trông như thế này:
public interface JobRepository extends MongoRepository<Job, String> {
@Query("{ state: 'ACTIVE', userId: ?0 }")
List<Job> findActiveByUserId(String userId);
// The next line is the problem, it wont work since
// it's not in the format @Query expects
@Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)")
Job findOneActiveOldest();
...
}
Tôi biết rằng người ta có thể thêm một Sắp xếp tranh luận đến một phương pháp truy vấn để có được sắp xếp nhưng vấn đề là hạn chế kết quả chỉ với một đối tượng duy nhất. Điều này có thể làm mà không cần phải viết một JobRepositoryImpl tùy chỉnh?
Cảm ơn
Edit:
Ví dụ về những gì tôi đang tìm kiếm:
@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }")
Job findOneActiveOldest();
hoặc
@Query("{ state:'ACTIVE' }")
@Sort("{ created:-1 }")
@Limit(1)
Job findOneActiveOldest();
Nhưng điều này rõ ràng là không hoạt động :(
Cảm ơn Oliver, đây là chính xác những gì tôi đang tìm kiếm. – m1h4
Tôi đã rất bận rộn tìm kiếm một giải pháp giống như truy vấn ngắn và đơn giản mà tôi không bận tâm để kiểm tra lớp Có thể đánh số và nhận ra rằng điều này kết hợp với Sắp xếp sắp xếp kết thúc các hàm .sort() và .limit() của một truy vấn mongo. – m1h4
Không có vấn đề, vui mừng vì nó đã làm việc cho bạn! :) –