アプリケーション内のすべてのテーブルが存在する場合はそれらを削除し、新しいデータでそれらを初期化するアプリケーションブートストラップを作成しようとしています。
データソースコンテキストをロードするSpringコンテキストを作成しましたが、データソースのロード方法に応じて動作をカスタマイズできるように、データソースの初期化をオーバーライドする方法がわかりません。つまり、JPA実装としてHibernateを使用しています。
データソースがアプリケーションからロードされる場合、スキーマを更新したいと思います。
<persistence-unit name="myDB" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
データソースがブートストラップからロードされる場合、新しいデータがロードされる前にデータベースが常に最初から作成されるように、この動作を何らかの方法でオーバーロードする必要があります。
<persistence-unit name="myDB" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
'update'設定を使用してデータソースをロードし、新しいデータをロードする前にテーブルが存在する場合はそれらを削除するため、私が採用しているアプローチは機能しません。ただし、データを書き込むためのテーブルはもう存在しません。
前もって感謝します
サイモン