В настоящее время я работаю над приложением, использующим 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 для обновления схемы таблицы
Это мои вопросы, спасибо за любую помощь.
Дополнительные ссылки, которые я прочитал: