从多个路径加载休眠映射时遇到问题。
我的 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
,在 Hibernate 初始化时会找到两个映射。Bar.hbm.xml
src/main/resources/mappings
但是当我放入Foo.hbm.xml
目录src/main/resources/mapping
并Bar.hbm.xml
放入目录src/test/resources/mapping
时,则只能找到后者的映射文件。Hibernate 将因“找不到 Foo 的映射”错误而失败。
我可以看到映射被复制到目录target/classes/mapping
和target/test-classes/mapping
,那么为什么不能休眠(或spring本地会话工厂bean)找到两个映射文件?我认为“classpath:/mapping/*.hbm.xml”会同时找到target/classes/mapping
和target/test-classes/mapping
目录?
编辑:我在运行单元测试时遇到了这个问题,所以我希望在两者中都找到映射src/main/resources
并且src/test/resources
会找到。