Quando abro o localhost:8080/series, ele me retorna apenas [], não consegui identificar o erro. package br.com.alura.screenmatch.controller;
import br.com.alura.screenmatch.dto.SerieDTO; import br.com.alura.screenmatch.repository.SerieRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.stream.Collectors;
@RestController public class SerieController { @Autowired private SerieRepository repository;
@GetMapping("/series")
public List<SerieDTO> obterSeries(){
return repository.findAll()
.stream()
.map(s -> new SerieDTO(s.getId(), s.getTitulo(),s.getTotalTemporadas(),s.getAvaliacao(),s.getGenero(),s.getAtores(),s.getPoster(),s.getSinopse()))
.collect(Collectors.toList());
}
}
package br.com.alura.screenmatch.repository;
import br.com.alura.screenmatch.model.Categoria; import br.com.alura.screenmatch.model.Episodio; import br.com.alura.screenmatch.model.Serie; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query;
import java.util.List; import java.util.Optional;
public interface SerieRepository extends JpaRepository<Serie,Long> { OptionalfindByTituloContainingIgnoreCase(String nomeSerie);
List<Serie> findByAtoresContainingIgnoreCaseAndAvaliacaoGreaterThanEqual(String nomeAutor, Double avalicao);
List<Serie> findTop5ByOrderByAvaliacaoDesc();
List<Serie> findByGenero(Categoria categoria);
@Query("select s from Serie s WHERE s.totalTemporadas <= :totalTemporadas AND s.avaliacao >= :avaliacao")
List<Serie> seriesPorTemporadaEAvaliacao(int totalTemporadas, double avaliacao);
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE e.titulo ILIKE %:trechoEp%")
List<Episodio> episodiosPorTrecho(String trechoEp);
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE s = :serie ORDER BY e.avaliacao DESC LIMIT 5")
List<Episodio> topEpisodiosPorSerie(Serie serie);
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE s = :serie AND YEAR( e.dataLancamento) >= :anoLancamento")
List<Episodio> episodiosPorTrecho(Serie serie, int anoLancamento);
}