В вашем случае вы можете использовать
<S extends T> Iterable<S> findAll(Example<S> example);
Итак, первый шаг - создать пример из параметров вашего запроса, для этого вам нужно создать экземпляр вашей сущности со значением желаемых атрибутов.быть запрошенным и нулевым для других атрибутов.Например, если у вас есть в запросе имя и возраст в качестве параметров.Таким образом, вы просто устанавливаете имя и возраст сущности и позволяете обнулить остальные атрибуты.Если у вас есть ваша сущность, вы должны просто создать пример и запросить его.
Example<ENTITY_CLASS> example = Example.of(createdEntity);
return repository.findAll((example);
Существует несколько других вариантов использования Example и ExampleMatcher для создания регистрозависимого startwith содержит содержит и регулярное выражение.Вы также можете установить, нужно ли ему использовать операторы OR или AND между полями.
Вы можете посмотреть здесь