Отображение класса в таблицу без имени таблицы - PullRequest
2 голосов
/ 01 октября 2011

У меня есть много таблиц в моей БД с точно такой же структурой: одинаковые имена и типы столбцов. Единственная разница между этими таблицами заключается в их именах (которые я могу знать только во время выполнения).

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

Возможно ли это? Есть ли другой способ достичь моей цели?

Ответы [ 2 ]

1 голос
/ 01 октября 2011

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

В любом случае, вы можете выполнить эту работу: сделать собственный запрос и сопоставить результат с вашимобъектВы сможете выбрать из любой таблицы и преобразовать результат в объект.Тем не менее, вы не можете вставить или обновить таким образом.

0 голосов
/ 01 октября 2011

Не думаю, что динамическое связывание или изменение таблицы, сопоставленной с сущностью, возможно.

Вы можете проверить @MappedSuperClass, который позволит вам определить все поля в классе один раз и наследовать их, чтобы не было повторений, а сущности - это пустой класс с отображениями.

http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e1168

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...