Добавление таблиц и столбцов в Hibernate на лету?

В настоящее время я работаю над приложением, использующим Hibernate, и мы хотим иметь возможность вставлять столбцы и таблицы на лету , т.е. во время выполнения, и продолжить работу с приложением, не перезагружая его. В настоящее время мы создаем сущности, но еще не используем их. У нас есть старый код C (который когда-нибудь будет перенесен на Java), в котором размещается наша бизнес-логика и который обращается к Java / Hibernate через JNI для получения записей из базы данных. После прочтения нескольких тем (ссылки см. Ниже) и справки по hibernate 3.6 у меня остались вопросы:

1. Если я встраиваю SchemaUpdate в свое приложение, как указано здесь: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/toolsetguide.html#toolsetguide-s1-6 Должен ли я затем воссоздавать SessionFactory (что является дорогостоящей операцией), даже если я не буду использовать сущности (как в настоящее время; но в будущем, конечно, это изменится)? Тогда старый сеанс будет недействительным, т.е. мне нужно перенести объекты, уже находящиеся в памяти и поддерживаемые сеансом, в новый сеанс? Возможно ли это как-то? Сохраняет ли Hibernate информацию за пределами ORM для сущностей о схемах? Недостаточно ли инвалидации кеша (сеанса, т.е. первого уровня), как предлагается здесь: изменяет схему во время спящего режима

2. Как насчет изменения столбцов? Я думаю, что это все еще так, как писал @Bozho: «Увы, спящий режим не может изменять столбцы»? Гибернация для обновления схемы таблицы

Это мои вопросы, спасибо за любую помощь.

Дополнительные ссылки, которые я прочитал:

5
задан Community 23 May 2017 в 12:33
поделиться