2010-08-02 65 views
1

我設法發佈Liquibase Update,如Liquibase Servlet Listener中所述。Liquibase:如何在EntityManager構建之前執行Servlet監聽器

<listener> 
    <listener-class>liquibase.servlet.LiquibaseServletListener</listener-class> 
</listener> 

這有效地執行我的更新日誌。

但是,發生這種情況 EntityManager的設置。

<property name="hibernate.hbm2ddl.auto" value="validate"/> 

...表根本還不存在:很顯然,如果我希望我的持久性提供驗證數據庫架構,這是爲時已晚。

有沒有一種方法可以讓Liquibase更新數據庫架構,之前 EntityManager被初始化?

PS:AppServer的是JBoss6

========================= [UPDATE] ====== ===================

基於下面拿單簡短的討論,我可能要改寫的問題如下:

有沒有人知道在JBoss啓動序列之前的代碼鉤子 初始化EntityManager的?

如果存在,我可以將Liquibase更新邏輯移動到那個地方?

回答

0

您的EntityManager是否也在偵聽器中啓動(例如spring的偵聽器)?

通常,應用服務器按照它們在web.xml文件中列出的順序啓動監聽器,確保您的liquibase監聽器在啓動休眠之前已列出。

+0

PersistenceUnit(和相關的EntityManager)在JBOSS引導過程的早期啓動。只有在此之後,網絡應用程序才初始化... 8- / – Jan 2010-08-02 16:41:38

相關問題