복붙노트

[SPRING] Spring으로부터 Hibernate Configuration 객체를 얻으려면 어떻게해야합니까?

SPRING

Spring으로부터 Hibernate Configuration 객체를 얻으려면 어떻게해야합니까?

Spring 이외의 코드에서 Spring 정의 Hibernate Configuration과 SessionFactory 객체를 얻으려고합니다. 다음은 내 applicationContext.xml 파일의 정의입니다.

암호:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <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">update</prop>
      <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
      <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
    </props>
   </property>
   <property name="dataSource">
    <ref bean="dataSource"/>
   </property>
    </bean>

getBean ( "sessionFactory")를 호출하면 Hibernate SessionFactory 객체의 프록시 인 것처럼 보이는 $ Proxy0 객체가 반환됩니다. 하지만 그게 내가 원하는 건 아니에요 - 내가 SessionFactory뿐만 아니라 Configuration에 접근해야하기 때문에 LocalSessionFactoryBean이 필요합니다.

Configuration 객체가 필요한 이유는 우리의 프레임 워크가 Hibernate의 동적 모델을 사용하여 런타임에 자동으로 매핑을 삽입 할 수 있기 때문입니다. 이것은 우리가 Configuration을 변경하고 SessionFactory를 재 빌드 할 것을 요구한다. 정말로, 우리가하려는 것은 Spring에 이미 존재하는 Hibernate 설정을 얻는 것입니다. 그래서 Spring에 이미 그 정보를 가지고있는 고객들은 hibernate config.xml을 hibernate.cfg.xml 파일에 복사 할 필요가 없습니다. 우리의 최대 절전 모드 기능을 사용하십시오.

해결법

  1. ==============================

    1.Spring 컨테이너의 하나의 모호한 특징은 & 접두어이다.

    Spring 컨테이너의 하나의 모호한 특징은 & 접두어이다.

    따라서 귀하의 경우 getBean ( "& sessionFactory")을 사용하면 LocalSessionFactoryBean 인스턴스 자체를 반환해야합니다. 그런 다음 .getConfiguration ()을 호출하여 Configuration 객체를 가져올 수 있습니다.

  2. from https://stackoverflow.com/questions/2736100/how-can-i-get-the-hibernate-configuration-object-from-spring by cc-by-sa and MIT license