1
resposta

Desafio: filtrando séries por vários requisitos - Minha solução

  • Adicionei primeiro a opção 8 no menu:
public void exibeMenu() {
        var opcao = -1;
        while (opcao != 0) {
            var menu = """
                    1 - Buscar séries
                    2 - Buscar episódios
                    3 - Listar séries buscadas
                    4 - Buscar série por título
                    5 - Buscar série por ator
                    6 - Top 5 séries
                    7 - Buscar séries por categoria
                    8 - Buscar séries por número máximo de temporada
                                        
                    0 - Sair
                    """;

            System.out.println(menu);
            opcao = scanner.nextInt();
            scanner.nextLine();

            switch (opcao) {
                case 1:
                    buscarSerieWeb();
                    break;
                case 2:
                    buscarEpisodioPorSerie();
                    break;
                case 3:
                    listarSeriesBuscadas();
                    break;
                case 4:
                    buscarSeriePorTitulo();
                    break;
                case 5:
                    buscarSeriePorAtor();
                    break;
                case 6:
                    buscarTop5Series();
                    break;
                case 7:
                    buscarSeriesPorCategoria();
                    break;
                case 8:
                    buscarSeriePorNumeroMaximoDeTemporada();
                    break;
                case 0:
                    System.out.println("Saindo...");
                default:
                    System.out.println("Opção inválida");
            }
        }
    }
  • Logo após criei o método buscarSeriePorNumeroMaximoDeTemporada():
private void buscarSeriePorNumeroMaximoDeTemporada() {
        System.out.println("Deseja buscar uma série de quantos episódios?");
        var numeroTemporadas = scanner.nextInt();

        System.out.println("Avaliações a partir de qual valor? ");
        var numeroAvaliacao = scanner.nextDouble();

        List<Serie> seriesBuscadas = repositorio.findByTotalTemporadasLessThanEqualAndAvaliacaoGreaterThanEqual(numeroTemporadas, numeroAvaliacao);
        seriesBuscadas.forEach(s -> System.out.println("Série: " + s.getTitulo() + " Avaliação: " + s.getAvaliacao()));
    }
  • Finalizando com a criação do derived query na interface SerieRepository.
public interface SerieRepository extends JpaRepository<Serie, Long> {
    List<Serie> findByTotalTemporadasLessThanEqualAndAvaliacaoGreaterThanEqual(int numeroTemporadas, double numeroAvaliacao);
}
1 resposta

Oi, Mislene, tudo bem?

Parabéns pelo resultado, ficou ótimo! Também agradeço por compartilhar seu projeto, com certeza vai ajudar nos estudos de todas as pessoas que estão aprendendo este mesmo assunto.

Continue mergulhando em tecnologia e se tiver dúvidas, conte com o fórum.

Abraços e bons estudos!