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&registrationDate=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 查询问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...