複数のパスから休止状態のマッピングをロードするときに問題が発生します。
私の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。