@PageableDefault.sort не переопределяется, даже если он присутствует в HTTP-запросе.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 @PageableDefault.sort не переопределяется, даже если он присутствует в HTTP-запросе.

Сообщение Anonymous »

Я использую Spring Boot 3.2.12 с Spring-boot-starter-web.
В моем контроллере REST у меня есть этот метод:

Код: Выделить всё

@GetMapping("/ballotsApi/ballots")
public Page getBallots(
@PageableDefault(direction = Sort.Direction.DESC, sort = {"shares"}, size = 20) Pageable page,
@RequestParam Map filters
) {
log.info("About to get ballots. Page = {} with filters = {}", page, filters);

Page ballots = ballotService.findBallots(page, filters);
log.info("Finished Retrieving ballots");
return ballots.map(ballotDtoConverter::toDto);
}
Я тестирую это с помощью RestAssured:

Код: Выделить всё

given()
.accept(ContentType.JSON)
.contentType(ContentType.JSON)
.log().all()
.port(port)
.header("Authorization", "Bearer " + TOKEN)
.queryParam(MEETING_ID, 1)
.queryParam("sort", "address,ASC")
.queryParam("page", 1)
.queryParam("size", 100)
.when()
.get("/ballotsApi/ballots")
.then()
//...
Вот запрос, выданный тестом:

Код: Выделить всё

Request method: GET
Request URI:    http://localhost:53669/ballotsApi/ballots?meetingId=1&sort=address%2CASC&page=1&size=100
Proxy:          
Request params: 
Query params:   meetingId=1
sort=address,ASC
page=1
size=100
А вот сообщение журнала из серверной части:

Код: Выделить всё

INFO BallotsController.getBallots - About to get ballots. Page = Page request [number: 1, size 100, sort: shares: DESC] with filters = {meetingId=1}
Как вы видите, значения по умолчанию для размера и страницы (20, 0 соответственно) переопределяются в отличие от одной сортировки передним шрифтом, которая по-прежнему использует общий DESC, хотя ожидается, что это будет адрес, ASC.
Что я делаю не так?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... tp-request
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»