#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;