Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Spring获取Hibernate配置对象?_Hibernate_Spring - Fatal编程技术网

如何从Spring获取Hibernate配置对象?

如何从Spring获取Hibernate配置对象?,hibernate,spring,Hibernate,Spring,我试图在非Spring代码中获得Spring定义的Hibernate配置和SessionFactory对象。以下是my applicationContext.xml文件中的定义: 代码: org.hibernate.dialogue.mysqldialogue 真的 更新 真的 org.hibernate.cache.HashtableCacheProvider 如果现在调用getBean(“sessionFactory”),则返回一个$Proxy0对象,它似乎是Hibernate sess

我试图在非Spring代码中获得Spring定义的Hibernate配置和SessionFactory对象。以下是my applicationContext.xml文件中的定义:

代码:


org.hibernate.dialogue.mysqldialogue
真的
更新
真的
org.hibernate.cache.HashtableCacheProvider
如果现在调用getBean(“sessionFactory”),则返回一个$Proxy0对象,它似乎是Hibernate sessionFactory对象的代理。但这不是我想要的-我需要LocalSessionFactoryBean本身,因为我需要访问配置以及SessionFactory


我需要配置对象的原因是我们的框架能够使用Hibernate的动态模型在运行时自动插入映射;这需要我们更改配置并重建SessionFactory。实际上,我们所要做的就是获取Spring中已经存在的Hibernate配置,这样我们那些在Spring中已经拥有该信息的客户就不需要为了使用我们的Hibernate功能而将其复制到Hibernate.cfg.xml文件中。

Spring容器的一个模糊功能是:

当你需要向一个容器索取 实际的
FactoryBean
实例 它本身,而不是它生产的豆子,你 在bean id前面加上符号AND 符号
&
(不带引号)当 调用
ApplicationContext
。因此,对于给定的 id为myBean的FactoryBean
,
在
容器返回该容器的产品
FactoryBean
,并调用
getBean(“&myBean”)
返回
FactoryBean
实例本身


因此,在您的情况下,使用
getBean(“&sessionFactory”)
应该返回
LocalSessionFactoryBean
实例本身。然后可以调用
.getConfiguration()
来获取
配置
对象。

以及如何重建sessionFactory?在调用destroy之前,您如何确保所有现有事务都已完成?我们如何@Autowire这个?@skaffman Sairam Krish提出了一个很好的观点。在这种情况下,我/我们如何向某些字段注入Hibernate值?我确实希望有一个值为hibernate.jdbc.batch_size属性的字段。你知道如何才能做到这一点吗?提前谢谢。
<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>