У меня есть переменная, которая является именем таблицы, я хочу передать ее в свой запрос, используя hibernate, и заключить ее в две одинарные кавычки.
Я не хочу объединять ее, используя +, потому что Hello SQL Injection
public List <Long> getAllTableColumns(String tableName) {
String request = "SELECT column_name FROM information_schema.columns " +
"WHERE table_schema = 'test' AND table_name = :tableName " ;
Query query = entityManager.createNativeQuery(request).setParameter("tableName", tableName);
List<BigDecimal> resultList = query.getResultList() ;
return resultList.stream().map(BigDecimal::longValue).collect(Collectors.toList());
}
результат этого запроса
SELECT column_name FROM information_schema.columns WHERE table_schema = 'test' AND table_name = user
и ожидаемый результат
SELECT column_name FROM information_schema.columns WHERE table_schema = 'test' AND table_name = 'user'