Я использую весеннюю загрузку с Query DSL.Я настроил свою весеннюю загрузку, чтобы использовать случай змеи то есть spring.jackson.property-naming-strategy=SNAKE_CASE
.Таким образом, мой ввод и вывод полезной нагрузки json выполняется в виде змеи, как показано ниже:
{
"first_name": "First",
"last_name": "Last"
}
Я использую @QuerydslPredicate
для своей функции поиска.Если я ввожу параметры запроса в случае змеи, как показано ниже
(http://localhost:8080/context/resource/?first_name=First)
, он не анализируется Предикатом запроса DSL.Тем не менее, если я предоставлю параметры в случае верблюда, как показано ниже
(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, но это большая работа.Должен быть способ автоматизировать его, чем делать все поля модели.