Я пытаюсь получить определяемые Spring объекты Hibernate Configuration и SessionFactory в моем коде, отличном от Spring. Ниже приведено определение в моем файле 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"), мне возвращается объект $ Proxy0, который выглядит как прокси для объекта Hibernate SessionFactory. Но это не то, что я хочу - мне нужен сам LocalSessionFactoryBean, потому что мне нужен доступ к конфигурации, а также к SessionFactory.
Причина, по которой мне нужен объект Configuration, заключается в том, что наша инфраструктура может использовать динамическую модель Hibernate для автоматической вставки отображений во время выполнения; для этого необходимо изменить конфигурацию и перестроить SessionFactory. На самом деле все, что мы пытаемся сделать, - это получить конфигурацию Hibernate, которая уже существует в Spring, так что тем нашим клиентам, у которых уже есть эта информация в Spring, не нужно дублировать ее в файл hibernate.cfg.xml, чтобы используйте наши функции Hibernate.