Добавление таблиц и столбцов в Hibernate на лету? - PullRequest
5 голосов
/ 25 июля 2011

В настоящее время я работаю над приложением, использующим Hibernate, и мы хотим иметь возможность вставлять столбцы и таблицы на лету, то есть во время выполнения, и продолжать работу с приложением без необходимости его перезапуска. В настоящее время мы строим объекты, но еще не используем их. У нас есть старый C-код (который когда-нибудь будет перенесен на Java), который содержит нашу бизнес-логику и выполняет вызовы Java / Hibernate через JNI для получения записей из базы данных. После прочтения нескольких веток (см. Ссылки ниже) и ссылки на спящий режим 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 по-прежнему пишет: «Увы, hibernate не может изменять столбцы».? Hibernate для обновления схемы таблицы

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

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

1 Ответ

5 голосов
/ 02 апреля 2012
...