@Entity
public class Serie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String genero;
private Double avaliacao;
private Integer anoLancamento;
private Integer numeroTemporadas;
}
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface SerieRepository extends JpaRepository<Serie, Long> {
// Exato
List<Serie> findByNome(String nome);
// Contém (como um LIKE %...%)
List<Serie> findByNomeContaining(String termo);
// Começa com
List<Serie> findByNomeStartingWith(String prefixo);
// Termina com
List<Serie> findByNomeEndingWith(String sufixo);
// Ignora maiúsculas e minúsculas
List<Serie> findByNomeIgnoreCase(String nome);
// Maior que
List<Serie> findByAvaliacaoGreaterThan(Double nota);
// Menor ou igual
List<Serie> findByAvaliacaoLessThanEqual(Double nota);
// Entre dois valores
List<Serie> findByAnoLancamentoBetween(Integer inicio, Integer fim);
// Igualdade combinada com AND
List<Serie> findByGeneroAndNumeroTemporadas(String genero, Integer temporadas);
// Combinado com OR
List<Serie> findByGeneroOrAvaliacao(String genero, Double avaliacao);
// Ordenar por um campo
List<Serie> findByGeneroOrderByAvaliacaoDesc(String genero);
// Buscar por lista de valores (IN)
List<Serie> findByGeneroIn(List<String> generos);
// Buscar onde um campo é nulo
List<Serie> findByAvaliacaoIsNull();
// Buscar onde um campo não é nulo
List<Serie> findByAvaliacaoIsNotNull();
}