Estou recebendo este erro após alterar a aplicação para receber o objeto paginação pelo parâmetro.
Estou recebendo este erro após alterar a aplicação para receber o objeto paginação pelo parâmetro.
Oi Simone, posta aqui o código do seu controller, inclusive com os imports.
Oi Rodrigo, segue. (obs: meus objetos são diferentes mas a lógica é a mesma)
Main:
package io.github.beinlichsimone.vacationtrip;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.data.web.config.EnableSpringDataWebSupport;
@EnableCaching
@EnableSpringDataWebSupport //paginação e ordenação
@SpringBootApplication
public class VacationTripApplication {
public static void main(String[] args) {
SpringApplication.run(VacationTripApplication.class, args);
}
}
Controller:
package io.github.beinlichsimone.vacationtrip.controller;
import io.github.beinlichsimone.vacationtrip.dto.viagem.ViagemAtualizaDTO;
import io.github.beinlichsimone.vacationtrip.dto.viagem.ViagemDetalheDTO;
import io.github.beinlichsimone.vacationtrip.dto.viagem.ViagemCadastroDTO;
import io.github.beinlichsimone.vacationtrip.dto.viagem.ViagemRetornoDTO;
import io.github.beinlichsimone.vacationtrip.model.Viagem;
import io.github.beinlichsimone.vacationtrip.repository.ViagemRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.UriComponentsBuilder;
import java.net.URI;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("viagem")
public class ViagemController {
@Autowired
private ViagemRepository viagemRepository;
@GetMapping("/viagens")
@Cacheable(value="listaViagens")
public Page<ViagemRetornoDTO> getViagens(@PageableDefault(sort = "id", direction = Sort.Direction.DESC) Pageable paginacao){
Page<Viagem> viagens = viagemRepository.findAll(paginacao);
return ViagemRetornoDTO.converterParaDTO(viagens);
}
Postman:
No seu projeto tem alguma classe de configuração que implementa a interface WebMvcConfigurer
?
Não tenho...
Pois é, não consigo identificar o possível problema. Você consegue compartilhar seu projeto? via github ou link compartilhado do google drive
Bom dia Rodrigo. Segue o link do meu git: https://github.com/beinlichsimone/vacation-trip/blob/master/src/main/java/io/github/beinlichsimone/vacationtrip/controller/ViagemController.java
No seu projeto tem uma classe chamada WebConfig
que acaba sobrescrevendo um compartamento do Spring.
Adicione nela esse método:
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add( new PageableHandlerMethodArgumentResolver());
}
Deu certo Rodrigo. Muito obrigada!