@DDwrt100

Как в runtime подключаться к генерируемым таблицам?

Добрый день, подскажи те пожалуйста будет ли так работать?
Ситуация, есть система которая работает с бд. Особенность этой системы что она создает переодически новую талицу, что то типа :
tableImportantResults_02022012
tableImportantResults_03022012


Мне нужно подключаться к генерируемым таблицам и забирать определенные данные.
Пока что я придумал такую схему, но не уверен что она сработает.
Я создаю класс модели
@Entity 
@Table(name = TABLE)
public class Model{
public static string = Table;
@id
@Column(name = "id")
int id
}

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

Будет ли такой вариант работать?
  • Вопрос задан
  • 26 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bestie
Не силен в Хибере, но если верить гуглу - есть вариант использовать свой интерцептор, который будет динамически менять имя таблицы https://javaaltaf.blogspot.com/2019/01/change-tabl...
public class CustomInterceptor extends EmptyInterceptor {
 @Override
 public String onPrepareStatement(String sql) {
  System.err.println("Before Modifying SQL =" + sql);
  sql = sql.replace("ATTENDANCE_1_2019 ", "ATTENDANCE_2_2019 ");
  System.err.println("After Modifying SQL =" + sql);
  return sql;
 }
}


Либо как вариант - просто переходите на PlainSQL ("SELECT * FROM :table_name") + NamedParameterJdbcTemplate -> это позволит пропихивать имя таблицы в сам запрос безо всяких проблем, но результат вам придется обрабатывать руками (RowMapper'ом).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
25 апр. 2024, в 12:23
2500 руб./за проект
25 апр. 2024, в 12:21
10000 руб./за проект