私のアプリケーションでは、SpringコンテキストとJPAを使用しています。注釈が付けられたエンティティのセットがいくつかあり@Entity
、それらのテーブルはシステムの起動時に自動的に作成されます。最近、Spring ACLを使い始めたので、次の追加のDBスキーマが必要であり、これらのテーブルをエンティティにマップしたくありません(Spring ACLはそれらを独立して管理するため、単にマップする必要はありません)。
User
たとえば、adminユーザーアカウントをのエンティティテーブルに自動的に挿入したいと思い ます。それを正しく行う方法は?- システムの起動時にSpringACLカスタムテーブルを初期化したいのですが、SQLスクリプトファイルは適切な解決策ではないようです。本番テストと機能テストに異なるデータベースを使用すると、SQLダイアレクトが異なるため、両方でスクリプトを正しく実行できないためです。エンジン(たとえば、MySQLおよびHSQLを使用する場合)。
最初はServletListener
、サーブレットの初期化中にデータベースをチェックして必要なデータとスキーマを追加しようとしましたが、統合テストでは機能しません(サーブレットがまったく関与していないため)。
私が達成したいのは、JPAがすべてのエンティティテーブルを初期化し、挿入されたDAOを使用してすべてのスタートアップデータを挿入し、何らかの方法でSpringACLスキーマを作成した後に起動されるSpringBean(?)です。次に、BeanをIoCから削除したい(私はもはやそれを必要としないため)。出来ますか?
または、これを行うためのより良い方法はありますか?