1

Liquibase Servlet Listenerで説明されているように、 Liquibase Updateを発行することができました。

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

これにより、変更ログが効果的に実行されます。

ただし、これは EntityManager のセットアップ後に発生します。Persistence プロバイダーにデータベース スキーマを検証させたい場合、明らかにこれでは遅すぎます。

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

...テーブルはまだ存在しません。

EntityManager が初期化される前に、データベース スキーマを更新するために Liquibase を作成する方法はありますか?

PS:AppServer は JBoss6 です

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

以下のネイサンとの簡単な議論に基づいて、質問を次のように言い換える必要があるかもしれません。

EntityManager の初期化のJBoss 起動シーケンスのコード フックを知っている人はいますか?

それが存在する場合、Liquibase の更新ロジックをその場所に移動できますか?

4

1 に答える 1

0

あなたの EntityManager はリスナーでも開始されていますか (春のリスナーなど)?

通常、アプリサーバーは web.xml ファイルにリストされている順序でリスナーを開始します。liquibase リスナーが hibernate を開始する前にリストされていることを確認してください。

于 2010-08-02T15:34:08.163 に答える