複数のパスから休止状態のマッピングをロードするときに問題が発生します。
私のSpringセッションファクトリは次のように定義されています:
<beans>
...
<bean id="sessionFactory" class="org.springframwork.orm.hibernate3.LocalSessionFactory">
</bean>
<property name="mappingLocations">
<list>
<value>classpath:/mapping/*.hbm.xml</value>
</list>
</property>
マッピングFoo.hbm.xml
をBar.hbm.xml
ディレクトリsrc/main/resources/mappings
に配置すると、Hibernate の初期化時に両方のマッピングが検出されます。
しかしFoo.hbm.xml
、ディレクトリとディレクトリsrc/main/resources/mapping
にBar.hbm.xml
入れるとsrc/test/resources/mapping
、後者のマッピング ファイルしか見つかりません。Hibernate は「Foo のマッピングが見つかりません」というエラーで失敗します。
target/classes/mapping
マッピングがディレクトリとにコピーされていることがわかりますが、target/test-classes/mapping
なぜ休止状態 (またはスプリング ローカル セッション ファクトリ Bean) が両方のマッピング ファイルを見つけられないのでしょうか? 「classpath:/mapping/*.hbm.xml」target/classes/mapping
で とtarget/test-classes/mapping
ディレクトリの両方が見つかると思いましたか?
編集:単体テストを実行しているときにこの問題が発生しているため、両方でマッピングが見つかり、見つかると思いsrc/main/resources
ますsrc/test/resources
。