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

Erro

codigo apresentou erro apos criar metodo topEpisodioPorTitulo, e não retorna os dados da avaliação

5 respostas
solução!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá, Gleice! Tudo bem?

Infelizmente, sem ver o código em questão, fica um pouco difícil de diagnosticar que situação está causando o problema. No entanto, posso te dar algumas sugestões gerais que podem te ajudar a resolver o problema.

  1. Verifique a sintaxe do método: O Spring Data JPA é muito sensível à sintaxe dos nomes dos métodos. Certifique-se de que o nome do método segue a convenção correta. Por exemplo, se você está tentando encontrar o episódio com a maior avaliação por título, o nome do método seria algo como findTopByTituloOrderByAvaliacaoDesc.

  2. Verifique a consulta: Se você está usando a anotação @Query para definir a consulta, certifique-se de que a consulta está correta. Você pode testar a consulta diretamente no banco de dados para ver se ela retorna os resultados esperados.

  3. Verifique os dados: Se a consulta está correta, mas você ainda não está recebendo os dados, pode ser que não existam dados que correspondam à consulta. Verifique se existem episódios com o título que você está procurando e se esses episódios têm avaliações.

Espero que essas sugestões te ajudem a resolver o problema, caso não, peço que compartilhe todo o seu projeto, para que eu realize testes e entenda o que está causando essa inconsistência.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

https://github.com/GleiceBranti/EvoluindoScreenMatch

o erro ainda persiste

Boa tarde Gleice.

Pelo seu código, sua rotina para os top episódios está faltando só adicionar a avaliação no printf mesmo.

O seu código está assim:

private void topEpsiodiosPorSerie() {
        buscarSeriePorTitulo();
        if (serieBusca.isPresent()) {
            Serie serie = serieBusca.get();
            List<Episodio> topEpisodios = repositorio.topEpisodiosPorSerie(serie);
            topEpisodios.forEach(e ->
                    System.out.printf("Série: %s Temporada %s - Episódio %s - %s\n",
                            e.getSerie().getTitulo(), e.getTemporada(),
                            e.getNumeroEpisodio(), e.getTitulo(), e.getAvaliacao() ));
        }
    }

E para mostrar a avaliação deveria estar assim:

private void topEpsiodiosPorSerie() {
        buscarSeriePorTitulo();
        if (serieBusca.isPresent()) {
            Serie serie = serieBusca.get();
            List<Episodio> topEpisodios = repositorio.topEpisodiosPorSerie(serie);
            topEpisodios.forEach(e ->
                    System.out.printf("Série: %s Temporada %s - Episódio %s - %s - Avaliação %s\n",
                            e.getSerie().getTitulo(), e.getTemporada(),
                            e.getNumeroEpisodio(), e.getTitulo(), e.getAvaliacao() ));
        }
    }

Faltou só o "Avaliação %s" no final da string ali.

era isso mesmo. obrigada