我在从多个路径加载hibernate映射时遇到问题。春季会议工厂没有找到具有相同类路径的多个目录中的映射文件
我的春季会议厂是定义如下:
<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
,为什么hibernate(或者spring本地会话工厂bean)找不到两个映射文件?我认为“classpath:/ mapping/*。hbm.xml”会找到target/classes/mapping
和target/test-classes/mapping
目录吗?
编辑:我在运行单元测试时遇到了这个问题,所以我期望找到在src/main/resources
和src/test/resources
中找到的映射。
感谢您的回复。我应该说我在运行测试时遇到了这个问题,因此除了在主资源目录中定义的映射外,我还希望能够找到在测试资源目录中定义的映射。当我使用'src/main/resources'中的所有映射运行测试时,找到所有映射。当我使用从src/main/resources到src/test/resources的一个映射运行测试时,只能找到在src/test/resources中找到的映射。 –