Этот метод включает в себя немного больше кода, но я думаю, что это ваша лучшая ставка:
@Override
public List<Interface> findAllWithFilters(String name, InterfaceType type, String ip)
{
Interface intfc = new Interface();
intfc.setName(name);
intfc.setType(type);
intfc.setIp(ip);
ExampleMatcher matcher = ExampleMatcher.matching()
.withMatcher("name", match -> match.contains())
.withMatcher("type", match -> match.exact())
.withMatcher("ip", match -> match.contains())
.withIgnorePaths("id", "uuid")
.withIgnoreNullValues();
Example<Interface> example = Example.of(intfc, matcher);
return ((InterfaceRepository) baseRepository).findAll(example);
}
.withIgnoreNullValues () является ключом.Он просто вернет все, если вы отправите нулевое значение вместо константы перечисления.