имя переменной таблицы в Spring boot

#spring #spring-boot

#spring #spring-загрузка

Вопрос:

У меня есть таблицы типа «operation_log_202001», «operation_log_202002», …

(Я знаю, что эта структура таблицы и структура системы настолько плохи. Но я должен его поддерживать.)

Когда я пытаюсь получить доступ к таблице «user», я могу легко подключиться к таблице «user», потому что в имени таблицы нет переменной части.

Я попытался решить эту проблему, как показано ниже.

 @Query("select * from :table_name limit 20")
Flux<ReviewData> findAll(String table_name);
  

Но сгенерированный запрос — «выбрать * из ‘operation_log_202001’ с ограничением 20». Я не хочу, чтобы оно добавляло «‘» к имени таблицы.

Могу я спросить, как решить эту проблему?

Ответ №1:

Создайте представление, вы можете изменить его во время выполнения и его можно сопоставить с объектом.

Разработать:

База данных хранит информацию в таблицах. Эти сведения могут быть объединены в представления с помощью пользовательских SQL-запросов. Представления могут действовать как таблицы, и внутри их запроса агрегации вы можете изменять имена таблиц запроса — таким образом, имя таблицы является переменным.

Комментарии:

1. Не могли бы вы, пожалуйста, уточнить немного больше?

Ответ №2:

Попробуйте использовать имя базы данных перед именем таблицы, пример :

Выберите * из db_log.ограничение имя_таблицы 20;