Có thể cho phép phương thức truy vấn @Params là tùy chọn, cụ thể trong trường hợp REST dữ liệu Spring không?Phương pháp truy vấn dữ liệu mùa xuân với tùy chọn @Param
Ví dụ: tôi muốn liên kết một tìm kiếm rất giống với cùng một đường dẫn tài nguyên. Để thực hiện điều này ngay bây giờ, tôi sẽ cần một cái gì đó như sau:
@RestResource(path = "driver", rel = "byDriver")
List<Bar> findByDriverId(@Param("id") String id, Pageable pageable);
@RestResource(path = "driverAndSpan", rel = "byDriverAndSpan")
List<Bar> findByDriverIdAndStartTimeGreaterThanEqualAndEndTimeLessThanEqual(@Param("id") String id, @Param("start") Date start,
@Param("end") Date end, Pageable pageable);
nào mang lại cho tôi:
byDriver: {
href: "http://localhost:8080/foo/search/driver{?id,page,size,sort}",
},
byDriverAndSpan: {
href: "http://localhost:8080/foo/search/driverAndSpan{?id,start,end,page,size,sort}",
}
Những gì tôi muốn là để có thể nhìn thấy một cái gì đó giống như đường dẫn sau, nơi start
và end
là các tham số tùy chọn, thay vì xác định nhiều phương thức trong Kho lưu trữ của tôi.
byDriverAndSpan: {
href: "http://localhost:8080/foo/search/driverAndSpan{?id,*start,*end,page,size,sort}",
}
Những khả năng có thể trông giống như:
@RestResource(path = "driverAndSpan", rel = "byDriverAndSpan")
List<Bar> findByDriverIdAndStartTimeGreaterThanEqualAndEndTimeLessThanEqual(@Param("id") String id, @Param(value = "start", optional = true) Date start,
@Param(value = "end", optional = true) Date end, Pageable pageable);
Đào ra một bài đăng cũ ... Tôi ngạc nhiên không ai đề cập đến [Querydsl] (http://www.querydsl.com/), đó chính xác là những gì bạn có thể đã sử dụng. –