春天和冬眠.cfg.xml

2022-09-01 19:10:45

如何让 Spring 从中加载 Hibernate 的属性?hibernate.cfg.xml

我们使用Spring和JPA(以Hibernate作为实现)。Spring's 指定了 JPA 方言和 Hibernate 属性:applicationContext.xml

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="jpaDialect">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
    </property>
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
        </props>
    </property>
</bean>

在此配置中,Spring 通过 applicationContext 读取所有 Hibernate 属性.xml。当我创建一个(位于我的类路径的根目录,与META-INF相同的级别)时,Hibernate根本不会读取它(它被完全忽略)。hibernate.cfg.xml

我正在尝试做的是通过在中插入缓存属性来配置Hibernate二级缓存:hibernate.cfg.xml

<cache 
    usage="transactional|read-write|nonstrict-read-write|read-only"
    region="RegionName"
    include="all|non-lazy"
/>

答案 1

试试这样的东西...

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

    <property name="configLocation">    
        <value>
            classpath:location_of_config_file/hibernate.cfg.xml
        </value>
    </property>

    <property name="hibernateProperties">
        <props>

            ...    


        </props>    
    </property>

</bean>

答案 2

我之前这样做的方法是实例化 LocalSessionFactoryBean 并设置 configLocation 属性。


推荐