0

我正在尝试将 Hibernate 3 与 Spring 3.1.0 集成。问题是应用程序无法找到在 hibernate.cfg.xml 文件中声明的映射文件。最初的 hibernate 配置有数据源配置、hibernate 属性和映射 hbm.xml 文件。主 hibernate.cfg.xml 文件存在于 src 文件夹中。这是主文件的外观:

<hibernate-configuration>
    <session-factory>
        <!-- Mappings -->
        <mapping resource="com/test/class1.hbm.xml"/>
        <mapping resource="/class2.hbm.xml"/>
        <mapping resource="com/test/class3.hbm.xml"/>
        <mapping resource="com/test/class4.hbm.xml"/>
        <mapping resource="com/test/class5.hbm.xml"/>

弹簧配置是:

<bean id="sessionFactoryEditSolution" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="data1"/>
        <property name="mappingResources">
            <list>
                <value>/master.hibernate.cfg.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                <prop key="hibernate.cache.use_second_level_cache">true</prop>

            </props>
        </property>
    </bean>
4

2 回答 2

1

您在路径的开头有一个正斜杠,因此您正在根目录中查找它。这几乎肯定是不正确的。

<value>/master.hibernate.cfg.xml</value>

我通常这样指定我的配置:

<value>classpath:master.hibernate.cfg.xml</value>

如果您master.hibernate.cfg.xml在您的资源中,这将有效。

于 2012-05-30T16:11:33.330 回答
0

您可以尝试使用以下代码将 spring 指向hibernate.cfg.xml的正确位置。

<bean
    id="mySessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

    <property name="configLocation">    
        <value>
            classpath:location_of_config_file/hibernate.cfg.xml
        </value>
    </property>
...........
</bean>
于 2012-05-30T16:13:41.750 回答