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!