Мне нужно передать схему mysql в качестве параметра в @Query, как показано в примере:
@Query
(value = " SELECT id, name FROM " + schema + ".constructions "
,nativeQuery = true)
List<Object> findAllConstructions(String schema);
, но этот код не работает, поскольку схема не может быть преобразована в переменную".
Проблема в том, что когда я пытаюсь передать параметр правильно, например:
@Query
(value = " SELECT id, name FROM ?.constructions "
,nativeQuery = true)
List<Object> findAllConstructions(String schema);
или вот так:
@Query
(value = " SELECT id, name FROM :schema .constructions "
,nativeQuery = true)
List<Object> findAllConstructions(@Param("schema") String schema);
сгенерированный SQL имеет синтаксисошибки, потому что предложение FROM выглядит следующим образом:
FROM 'db_schema'.constructions
, когда должно быть:
FROM db_schema.constructions
Может ли кто-нибудь мне помочь?
РЕДАКТИРОВАТЬ 1 : Я не смог найти (в MySQL) способ ВЫБРАТЬ конкретное имя схемы, как этот вопрос предлагает для имен таблиц.
РЕДАКТИРОВАТЬ 2 : Я решил свою проблему, создав альтернативное соединение и установив следующее утверждение:
ResultSet rs = connection.createStatement().executeQuery(" SELECT id, name FROM "
+ schema + ".constructions ");
Я оставлю вопрос открытым, потому что мое решение на самом деле не отвечает на вопрос, поэтому, если кто-то найдетответ на вопрос, он все еще открыт.