Исходя из вашего вопроса, я предполагаю, что вы не хотите использовать .findAll (), .findById () в вашем репозитории all, хотите использовать только один раз и хотите написать запрос, как показано ниже.
public interface XXXRepository extends CrudRepository<XXX, Integer> {
@Query(value = "select * from ?1 where ...", nativeQuery = true)
List<XXX> findByXXX(String tableName, ...);
}
Здесь вы можете использовать параметры запроса только после где .. что означает, что вы не можете использовать параметр запроса в качестве имени таблицы.
Да, вы можете получить имя таблицы, как показано ниже, если у вас есть @Table(name="tableName")
аннотации в вашей организации.
yourEntityClassName.class.getAnnotation(Table.class).name()