首页 > 解决方案 > Spring JPA QuerydslPredicate Snake 案例

问题描述

我正在使用带有 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);
        }

PN:我的模型对象是骆驼案例,如下所示

模型对象

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 上遇到了一个解决方案,但这是很多工作。应该有一种方法可以自动化它而不是执行所有模型字段。

标签: spring-bootquerydslpredicate

解决方案


推荐阅读