私は、永続性とトランザクション管理にJPA/HIbernateとSpringを使用するプロジェクトに取り組んでいます。このアプリケーションには、同じデータベースサーバー(Sybase環境)の複数のカタログとスキーマからマップされたテーブルがあります。
インメモリデータベースを使用してこのアプリの自動テストの作成を開始するにはtest-persistence.xml
、デフォルトからすべて同じエンティティを一覧表示する代替を作成する必要がありましたが、クラスのアノテーションからのスキーマ情報をオーバーライドpersistence.xml
する代替マッピングファイルを指定しました。orm.xml
テスト用のSpring構成の重要な部分は、次のとおりです。
<bean id="hsqlFixes" class="com.example.app.util.HSQLFixes" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
depends-on="hsqlFixes">
<property name="persistenceUnitName" value="puName" />
<property name="persistenceXmlLocation"
value="META-INF/persistence-tests.xml" />
....
</bean>
HSQLFixes
いくつかのタイプを作成するだけでいくつかのJDBCステートメントを実行するBeanはどこにありますか。
そして:でpersistence-tests.xml
:
<persistence-unit name="puName" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/orm-tests-db1.xml</mapping-file>
<mapping-file>META-INF/orm-tests-db2.xml</mapping-file>
<mapping-file>META-INF/orm-tests-db3.xml</mapping-file>
... followed by the same list of entities from persistence.xml
persistence.xml
ここで、とにリストされているクラスの重複を取り除きたいと思いtest-persistence.xml
ます。これは、この2番目のファイルの生成を自動化できると感じたためです。
エンティティを追加/削除するときに両方のXMLファイルを変更する必要がないように、動的に実行するにはどうすればよいですか?