1
resposta

Faça como eu fiz: fazendo buscas com consultas derivadas

@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();
}
1 resposta

Parabéns!