2
respostas

Erro no retorno do Page

Estou conseguindo cadastrar normalmente : Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMas quando tento listar dá erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeO erro no console do sts (Não mostra o início e nem o que causou, só é uma repetição enorme disso) : Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMudei o método pra void e tirei o retorno, pra só fazer o findAll e quando fiz o get no postman, deu 200 ok, então o erro provavelmente está no retorno, mas não sei o que ou como resolver.

@GetMapping("/listar")
    public Page<Video> listar(@PageableDefault(sort = "id", direction = Direction.ASC, page = 0, size = 15) Pageable paginacao){
         Page<Video> listaDeCursos = videoRepository.findAll(paginacao);
         return listaDeCursos;

    }
2 respostas
public class Video {


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @NotBlank
    private String titulo;
    @NotBlank
    private String descricao;

    @ManyToOne(cascade=CascadeType.ALL)
    @JoinColumn(name = "categoria_id")
    private Categoria categoria;

    private LocalDate data = LocalDate.now();


    private String url;

    public Video() {}

    public Video(String titulo, String descricao, Categoria categoria) {
        this.titulo = titulo;
        this.descricao = descricao;
        this.categoria = categoria;



    }

    public LocalDate getData() {
        return data;
    }

    public void setData(LocalDate data) {
        this.data = data;
    }

    public Long getId() {
        return id;
    }
    public Categoria getCategoria() {
        return categoria;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }
    public String getTitulo() {
        return titulo;
    }
    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }



    public void setUrl(String url) {
        this.url = url;

    }


    public String getUrl() {
        return url;
    }


}

@Entity
public class Categoria {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @NotBlank
    private String titulo;

    @OneToMany(mappedBy = "categoria")
    private List<Video> videos = new ArrayList<>();

    public List<Video> getVideos() {
        return videos;
    }

    public void setVideos(List<Video> videos) {
        this.videos = videos;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }



    public Long getId() {
        return id;
    }




}

Oi Artur,

O problema é porque você não está utilizando um DTO e sim devolvendo um page de video, que tem relacionamento com a entidade categoria e a categoria tem relacionamento com video, causando assim um loop infinito na hora do Spring conveter o objeto para json.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software