我正在使用 spring boot 和 Query DSL。我已将 Spring Boot 配置为使用蛇形外壳,即spring.jackson.property-naming-strategy=SNAKE_CASE
。所以我的 json 有效负载输入和输出是蛇形的,如下所示
{
"first_name": "First",
"last_name": "Last"
}
我在用@QuerydslPredicate
用于我的搜索功能。如果我在蛇形案例中输入查询参数,如下所示
(http://localhost:8080/context/resource/?first_name=First)
它不被 Query DSL Predicate 解析。但是,如果我以驼峰式大小写提供参数,如下所示
(http://localhost:8080/context/resource/?firsName=First)
效果很好。这不是 json 结构的同义词。
如何在查询参数中实现蛇形格式以便 Query DSL 解析它?
这就是我的 REST 端点的样子
@GetMapping
public ResponseEntity<Output> listUsers(@QuerydslPredicate(root = User.class) Predicate predicate, Pageable pageable) {
...
return new ResponseEntity<>(output, HttpStatus.OK);
}
ON:我的模型对象采用驼峰式大小写,如下所示
模型对象
public class User {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
我在 HandlerMethodArgumentResolver 上遇到了一个解决方案,但这需要大量工作。应该有一种方法可以使其自动化,而不是执行所有模型字段。