1
resposta

Adicionar Limit em queries com Specification

Boa tarde, gostaria de saber como adicionar "limit"em queries com specification no spring data sem precisar usar pageable na consulta. Normalmente em queries no spring data utilizamos o "top" por exemplo ''findTop100()", como posso fazer isso implementando specifications ?

1 resposta

Olá, Maria! Tudo bem?

Para adicionar o "limit" em queries com Specification no Spring Data, você pode utilizar o método "PageRequest.of(0, limit)" em conjunto com o método "findAll(Specification spec, Pageable pageable)" do seu repositório.

Por exemplo, suponha que você tenha a seguinte Specification:

public static Specification<Pessoa> nomeComecaCom(String nome) {
    return (root, query, builder) -> builder.like(root.get("nome"), nome + "%");
}

Para adicionar o "limit" de 100 registros, você pode fazer o seguinte:

Pageable pageable = PageRequest.of(0, 100);
List<Pessoa> pessoas = pessoaRepository.findAll(nomeComecaCom("Maria"), pageable).getContent();

Dessa forma, você terá uma lista com os 100 primeiros registros que atendem à Specification "nomeComecaCom".

Espero ter ajudado e bons estudos!