2010-01-08 4 views
1

Я запускаю веб-приложение JBoss Seam с Hibernate в качестве поставщика сохранения. Я рассматриваю возможность перехода на OSGI для упрощения развертывания и обновлений.OSGI - Hibernate + JBoss Seam

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

Например, если я изменяю классы объектов, и я хочу, чтобы Hibernate удалял некоторые таблицы и создавал новые, возможно ли это? Должен ли hibernate иметь крючки в OSGI, поэтому он знает, что нужно удалить таблицу a и создать таблицу b?

Walter

ответ

0

Я не уверен, что я полностью понять ваш вопрос. Если вы решите использовать OSGi для модуляции вашего приложения, этот выбор не влияет на поведение Hibernate. Вы можете, конечно, совершать звонки в Hibernate's SchemaExport или SchemaUpdate API, когда вы активируете пакеты для управления своей схемой, но Hibernate не будет управлять этим процессом для вас. Вам придется сделать это сами.

+0

Хорошо, Роб, я думаю, что это имеет смысл. Поэтому каждый раз, когда я обновляю классы сущностей, мне нужно будет вызвать Schema Export/Update? Я думаю, что все, что я буду делать, это добавлять классы сущностей. Если я обновляю структуру таблицы, становится намного сложнее автоматически переносить данные. Мне нужно будет экспортировать данные, а затем снова вставить их с новой схемой. – 2010-01-11 12:50:45

+0

Да, инструмент SchemaUpdate для Hibernate довольно упрощен. Вам нужно что-то более продвинутое, если вам нужно сделать какое-либо нетривиальное преобразование схемы, сохранив при этом существующие данные. (Моя компания создала собственный инструмент для этой цели.) Во всяком случае, если вы вызываете инструменты схемы Hibernate во время активации пакета, не забудьте также создать новые объекты Configuration и SessionFactory для получения ваших изменений. –

Смежные вопросы