Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Requisição GET retornando Index 48 out of bounds for length 4

Estou no modulo 4 aula 2.

Terminei de fazer o meu endpoint get para listar todos os medicos.

Quando rodo o get sem nenhum registro no banco de dados ele me retorna corretamente uma array vazia neste formado [];

Assim que eu insiro algum registro no banco de dados via POST ele passa a dar esse erro

Java.lang.ArrayIndexOutOfBoundsException: Index 48 out of bounds for length 4

Esse erro acontece no metodo findAll aparentemente pelo o que entendi dessas 2 linhas

at jdk.proxy6/jdk.proxy6.$Proxy137.findAll(Unknown Source) ~[na:na] at med.voll.api.controller.MedicoController.listar(MedicoController.java:26) ~[classes/:na]

Print do meu codigo do metodo listar

2 respostas

Segue tambem o repositorio com meu codigo atualizado

https://github.com/pedro-machado98/Alura_java/tree/main/Alura_java_curso_spring_montando_api/api

solução!

Oi Tiago, tudo bem?

Rodei seu projeto por aqui e vi que o erro está acontecendo na hora de tentar converter um enum e trazer os dados de volta. Na sua classe Medico, acho que você se esqueceu de uma parte da anotação de Enums:

@Enumerated
    private Especialidade especialidade;

Faltou um @Enumerated(EnumType.STRING), e isso acaba dando problema porque se não utilizamos o EnumType, a JPA salva os enums numericamente no banco de dados, e aí ao tentar retornar os dados, como a especialidade é uma String, acontece uma exceção. Para corrigir, basta complementar a anotação e apagar os registros do banco de dados. Depois, dará para rodar normalmente!

Espero ter ajudado! Abraços e bons estudos! :)