Я пытаюсь получить Spring -определенные конфигурации Hibernate и объекты 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.