2009-01-23 36 views
24

¿Cómo hago para que Spring cargue las propiedades de Hibernate desde hibernate.cfg.xml?Spring e hibernate.cfg.xml

Estamos utilizando Spring y JPA (con Hibernate como implementación). Primavera de applicationContext.xml especifica el dialecto JPA e Hibernate propiedades:

<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> 

En esta configuración, la primavera es la lectura de todas las propiedades a través de Hibernate applicationContext.xml. Cuando creo un hibernate.cfg.xml (ubicado en la raíz de mi classpath, el mismo nivel que META-INF), Hibernate no lo lee en absoluto (se ignora por completo).

Lo que estoy tratando de hacer es configurar Hibernate caché de segundo nivel mediante la inserción de las propiedades de caché en hibernate.cfg.xml:

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

Respuesta

27

intentar algo como esto ...

<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> 
3

La manera en que yo he hecho esto antes es creando una instancia de un LocalSessionFactoryBean y establecer la propiedad configLocation .

Cuestiones relacionadas