I have the following stream statement with Java Stream and I filter records based on the typeId values as types.getIds().contains(x.getType().getId())
:
return petRepository.findAll().stream()
.filter(x -> types.getIds().contains(x.getType().getId()))
.collect(Collectors.groupingBy(x -> x.getType().getName(), Collectors.counting()));
However, I want to fetch all values when types.getIds().size() == 0
and tried something as shpon below:
.filter(types.getIds().size() > 0 ? x -> types.getIds().contains(x.getType().getId()) : <NO FILTERING>)
So, how can I skip filtering when types.getIds().size() == 0
?
How about
return petRepository.findAll().stream()
.filter(x -> types.getIds().isEmpty() ||
types.getIds().contains(x.getType().getId()))
.collect(Collectors.groupingBy(x -> x.getType().getName(), Collectors.counting()));