Spring JPA QuerydslPredicate 蛇形案例

2024-01-28

我正在使用 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 上遇到了一个解决方案,但这需要大量工作。应该有一种方法可以使其自动化,而不是执行所有模型字段。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring JPA QuerydslPredicate 蛇形案例 的相关文章

随机推荐