1

我设法发出Liquibase 更新,如Liquibase Servlet Listener中所述。

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

这有效地执行了我的变更日志。

但是,这发生设置 EntityManager 之后。显然,如果我希望我的 Persistence 提供程序验证数据库模式,则为时已晚:

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

...这些表根本不存在。

有没有办法让 Liquibase 在初始化 EntityManager之前更新数据库模式?

PS:AppServer是JBoss6

==========================[更新]====================== =====

根据下面与 Nathan 的简短讨论,我可能不得不将问题重新表述如下:

在 EntityManager 初始化之前,有人知道 JBoss 启动序列中的代码挂钩吗?

如果存在,我可以将 Liquibase 更新逻辑移动到那个地方吗?

4

1 回答 1

0

Is your EntityManager started in a listener as well (such as spring's listener)?

Usually app servers start listeners in the order they are listed in your web.xml file, make sure your liquibase listener is listed before whatever starts hibernate.

于 2010-08-02T15:34:08.163 回答