codigo apresentou erro apos criar metodo topEpisodioPorTitulo, e não retorna os dados da avaliação
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
codigo apresentou erro apos criar metodo topEpisodioPorTitulo, e não retorna os dados da avaliação
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.
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.
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.
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!
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