我正在使用hibernate开发一个spring mvc app,我在编译和运行代码时遇到了一些麻烦。
这是因为每当我尝试创建会话工厂bean时,它都找不到我的FileObject.hbm.xml。
我的bean看起来像这样
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource1"></property>
<property name="mappingResources">
<list>
<value>FileObject.hmb.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
FileObject.hmb.xml位于WAR文件夹的根目录中。我试图将此文件移动到不同的文件夹,包括实际的src文件夹,并在会话工厂中提供正确的路径,但它仍然给我一个FileNotFoundException。
这是因为java不识别hello.hmb.xml类型的文件吗?大多数文件格式都是这样的:name.extension
hibernate映射文件虽然似乎有所不同
后续行动:正如我之前所说,我已经尝试将我的.hbm.xml放在包括src目录在内的很多地方,但仍无法使用。
我的项目结构类似于:
我试图将文件放在war的根目录,WEB-INF,类中,如前所述,在我的实际src目录中。
我从来不知道只是为了让冬眠和春天成功运行这么麻烦。
答案 0 :(得分:1)
MappingResources只能接收相对于类路径的路径。
答案 1 :(得分:0)
如果.hbm.xml文件位于CLASSPATH的目录树中,请尝试将路径从CLASSPATH的根目录开始:
<value>foo/bar/persistence/hibernate/FileObject.hmb.xml</value>
我使用的目录路径只是一个例子。