Olá, Jade! Entendo sua frustração, mas vamos tentar resolver isso juntas.
O método existsAllByLojaIdIn(List<Integer> lojasIds)
do Spring Data JPA verifica se existe algum registro com os lojaId
presentes na lista fornecida. Como você mencionou, ele retorna true
se encontrar pelo menos um registro que corresponda a qualquer lojaId
na lista.
No entanto, o que você está tentando fazer é verificar se todos os lojaId
da lista existem no banco de dados. Infelizmente, o Spring Data JPA não fornece uma maneira direta de fazer isso. Mas não se preocupe, ainda há uma solução.
Você pode tentar fazer uma consulta para cada lojaId
na lista e verificar se cada uma delas existe. Aqui está um exemplo de como você pode fazer isso:
public Mono<Boolean> existsAll(List<Integer> lojasIds) {
return Flux.fromIterable(lojasIds)
.flatMap(id -> repository.existsByLojaId(id))
.all(Boolean::booleanValue);
}
Neste exemplo, Flux.fromIterable(lojasIds)
cria um Flux
que emite cada lojaId
na lista. flatMap(id -> repository.existsByLojaId(id))
faz uma consulta para cada lojaId
e retorna um Flux
de Boolean
. Finalmente, .all(Boolean::booleanValue)
verifica se todos os valores emitidos pelo Flux
são true
.
Espero que isso resolva seu problema. Lembre-se de que você pode precisar ajustar este exemplo para se adequar ao seu código existente.
Espero ter ajudado e bons estudos!