import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
public interface SerieRepository extends JpaRepository<Serie, Long> {
// Busca por título exacto ignorando mayúsculas/minúsculas
Optional<Serie> findByTituloIgnoreCase(String titulo);
// Busca series cuyo título contenga un texto
List<Serie> findByTituloContainingIgnoreCase(String texto);
// Busca series por género
List<Serie> findByGeneroContainingIgnoreCase(String genero);
// Busca series con máximo de temporadas y mínima evaluación
List<Serie> findByTotalTemporadasLessThanEqualAndEvaluacionGreaterThanEqual(
Integer maxTemporadas,
Double minEvaluacion
);
// Busca series con evaluación mayor que un valor
List<Serie> findByEvaluacionGreaterThanEqual(Double evaluacion);
// Busca series con temporadas entre dos valores
List<Serie> findByTotalTemporadasBetween(Integer minTemporadas, Integer maxTemporadas);
// Busca las 5 mejores series ordenadas por evaluación
List<Serie> findTop5ByOrderByEvaluacionDesc();
// Busca las series ordenadas alfabéticamente por título
List<Serie> findByOrderByTituloAsc();
// Verifica si existe una serie con ese título
boolean existsByTituloIgnoreCase(String titulo);
// Cuenta cuántas series tienen evaluación mayor o igual a un valor
long countByEvaluacionGreaterThanEqual(Double evaluacion);
}
Qué hace cada palabra clave
Containing busca coincidencias parciales dentro de un texto.
IgnoreCase ignora mayúsculas y minúsculas en comparaciones de texto.
LessThanEqual significa “menor o igual que”.
GreaterThanEqual significa “mayor o igual que”.
Between busca valores dentro de un rango.
Top5 limita el resultado a los primeros 5 registros.
OrderBy...Asc/Desc ordena los resultados.
ExistsBy devuelve true o false si encuentra coincidencia.
CountBy devuelve la cantidad de registros que cumplen la condición.