1
resposta

Desafio Filtrar por serie com maior avaliação

Desafio concluido

public interface SerieRepository extends JpaRepository<Serie, Long> {

// LessThanEqua pra pegar menor ou igual ao criterio de temporadas, GreaterThanEqual avaliação maior que o numero digitado;
    List<Serie> findByTotalTemporadasLessThanEqualAndAvaliacaoGreaterThanEqual(String totalTemporadas, Double avaliação);
    }
    
    private void filtrarSeriesPorTemporadaEAvaliacaoMaior() {
        System.out.println("Quantas temporadas da serie devemos filtrar?");
        var totalTemporada = leitura.nextLine();
        System.out.println("qual o valor da avaliação");
        var avaliacao = leitura.nextDouble();
        leitura.nextLine();
        List<Serie> filtrarSeries = repositorio.findByTotalTemporadasLessThanEqualAndAvaliacaoGreaterThanEqual(totalTemporada, avaliacao);
        System.out.println("===== Series Filtradas ====");
        filtrarSeries.forEach(s ->
                System.out.println(s.getTitulo() + "  - avaliação: " + s.getAvaliacao()));
    }
1 resposta

Oi, Paulo! Tudo bem?

Parabéns por concluir o desafio! Deixo apenas algumas sugestões de melhoria, como a atenção ao passar totalTemporadas como String no repositório, pois o tipo correto deve ser Integer (ou int), deixando esse trecho de código da seguinte maneira:

public interface SerieRepository extends JpaRepository<Serie, Long> {
    List<Serie> findByTotalTemporadasLessThanEqualAndAvaliacaoGreaterThanEqual(Integer totalTemporadas, Double avaliacao);
}

Além disso, no método filtrarSeriesPorTemporadaEAvaliacaoMaior, devemos converter totalTemporada de String para Integer antes de passar para o repositório:

private void filtrarSeriesPorTemporadaEAvaliacaoMaior() {
    System.out.println("Quantas temporadas da série devemos filtrar?");
    var totalTemporada = Integer.parseInt(leitura.nextLine()); // Convertendo para Integer
    System.out.println("Qual o valor da avaliação?");
    var avaliacao = leitura.nextDouble();
    leitura.nextLine();
    List<Serie> filtrarSeries = repositorio.findByTotalTemporadasLessThanEqualAndAvaliacaoGreaterThanEqual(totalTemporada, avaliacao);
    System.out.println("===== Séries Filtradas ====");
    filtrarSeries.forEach(s -> System.out.println(s.getTitulo() + " - avaliação: " + s.getAvaliacao()));
}

Espero ter ajudado!

Um forte abraço e bons estudos!