1

我有一个 hibernate.properties 文件,其中包含我的应用程序的所有休眠属性。这个文件由我的 applicationContext.xml 文件中的 Hibernate SessionFactoryBean 引用:

<bean id="sessionFactory" 
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="annotatedClasses">
       ...
    </property>
    <property name="hibernateProperties">
        <util:properties location="classpath:hibernate.properties"/>
    </property>
    ...
</bean>

现在我想将 hibernate.dialect 属性移动到不同的文件中,以便将它与其他数据库特定(连接)参数保持在一起。

我试图改变 sessionfactory bean 的一部分,如下所示:

<property name="hibernateProperties">
    <util:properties location="classpath:hibernate.properties"/>
    <props>
        <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    </props>
</property>

但是,这不受支持。我还尝试在它周围包裹一个 <list></list> 元素——但这与预期的 java.util.Properties 类型不兼容。

如何引用属性文件并仍然直接在上下文文件中添加单个 hibernate.dialect 属性?

或者,如果我可以直接在 hibernate.properties 文件中引用单个属性,那就没问题了——但到目前为止我的研究表明这不受支持。

4

1 回答 1

1

你可以这样做:

<util:properties id="hibernateProperties" location="classpath:hibernate.properties">
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
</util:properties>
于 2012-07-27T12:02:15.687 回答