Olá Gabriel! Tudo bem?
A mensagem de aviso que você está recebendo indica que a serialização direta de PageImpl
pode não garantir um formato JSON estável. Isso pode ser um problema se você precisa de um formato consistente para o seu front-end ou para outras partes do seu sistema.
Para resolver isso, você pode usar o PagedModel
do Spring Data REST ou o PagedResourcesAssembler
do Spring HATEOAS. Aqui está um exemplo de como você pode implementar isso usando o PagedResourcesAssembler
:
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PagedResourcesAssembler;
import org.springframework.hateoas.PagedModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/your-endpoint")
public class YourController {
private final YourService yourService;
public YourController(YourService yourService) {
this.yourService = yourService;
}
@GetMapping
public PagedModel<YourResource> getAll(Pageable pageable, PagedResourcesAssembler<YourEntity> assembler) {
Page<YourEntity> page = yourService.findAll(pageable);
return assembler.toModel(page, yourEntity -> new YourResource(yourEntity));
}
}
Neste exemplo, YourEntity
é a entidade que você está paginando, e YourResource
é um DTO ou recurso que você deseja retornar. O PagedResourcesAssembler
ajuda a converter a página em um PagedModel
, que é mais estável para serialização.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.