Tiếp theo official documentation, thêm @EnableSpringDataWebSupport
chú thích để cấu hình Spring của tôi cho phép để tự động bơm một lớp Predicate
trong truy vấn:mùa xuân - Nâng cao so sánh để hỗ trợ QueryDsl
@RequestMapping(method = RequestMethod.GET, path="/find")
public ResponseEntity<PagedResources<FooResource>> find(Pageable pageable, PagedResourcesAssembler<Foo> assembler, @QuerydslPredicate(root = Foo.class) Predicate predicate) {
Page<Foo> foos = fooRepository.findAll(predicate, pageable)
final ResourceAssemblerSupport<Foo, FooResource> fooResourceAssembler = new ....;
final PagedResources<FooResource> pagedResources = assembler.toResource(foos, fooResourceAssembler);
return new ResponseEntity<>(pagedResources, HttpStatus.OK);
}
Sau đó, tôi có thể dễ dàng tìm kiếm khi thực hiện các yêu cầu GET:
GET /foo/name?=bob&name=alice&age=20
Điều này làm việc tốt. Tuy nhiên tôi đã tự hỏi làm thế nào để đạt được tiêu chí tìm kiếm cao cấp hơn:
>
<
>=
<=
Thông thường tôi muốn áp dụng những nhà khai thác trường số và ngày trong các mô hình dữ liệu của tôi. Các loại tiêu chí này được hỗ trợ trong Querydsl.
Tôi đã thử thêm > (%3E)
trong tham số truy vấn của tôi, nhưng nó vẫn thất bại phân tích cú pháp (ví dụ cho trường số như tuổi tác nó than phiền nó không thể phân tích cú pháp >10
như một số.
Có thể sử dụng toán tử này trực tiếp trong truy vấn?
(Trong trường hợp những vấn đề tôi đang sử dụng Spring dữ liệu MongoDB)
Bạn đã bao giờ tìm cách triển khai tính năng này chưa?Tôi đã cố gắng để thực hiện một cái gì đó tương tự, nhưng không thành công. – woemler
@woemler Tôi đã thực sự đỗ vấn đề đó ngay bây giờ nhưng nó không biến mất. Tôi nghĩ rằng tôi sẽ kết thúc viết mã của riêng tôi để phân tích cú pháp de tham số truy vấn. Tôi cần phải kiểm tra xem có cách nào dễ dàng để tích hợp nó với cơ chế tiêm xuân không. Khi tôi nhận được để làm điều đó tôi có thể sẽ yêu cầu tư vấn về kho lưu trữ github mùa xuân. Sẽ viết nó ở đây như là một câu trả lời nếu tôi tìm thấy một cái gì đó thú vị – phoenix7360