如何解决Specification-arg-resolver-URL运算符
查看来自Specification-argument-resolver的示例代码,
@Controller
public class SampleController {
@Autowired
CustomerRepository customerRepository;
@RequestMapping("/find")
public List<Customer> findByRegistrationDate(
@And({
@Spec(path = "name",params = "name",spec = Equal.class),@Spec(path = "registrationDate",params = "registrationDate",spec = GreaterThanOrEqual.class)
}) Specification<Customer> spec) {
return customerRepository.findAll(spec);
}
}
@Entity
public class Customer {
String name;
Date registrationDate;
}
查看specification-argument-resolver中的示例代码,示例请求如下所示:
GET /find?name=John®istrationDate=2020-06-19
查询参数是否可以反映实际的运算符。
示例:registrationDate> = 2020-06-19而不是=
我正在寻找RSQL和Specification-argument-resolver之间的混合体。
解决方法
您可以只使用这个库:https://github.com/turkraft/spring-filter
它将让您运行搜索查询,例如:
/search?filter= average(评分)> 4.5 和brand.name ('奥迪'、'路虎')和(年份> 2018或公里 50000)和颜色:“白色”和事故为空
它也支持日期,并且很好地处理了 n+1 查询问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。