寫程序,做產品,過日子

          成功其實很簡單,就是強迫自己堅持下去

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            69 Posts :: 1 Stories :: 92 Comments :: 0 Trackbacks

          Spring對Hibernate Session Factory提供了高度封裝。如下例所示。

          <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          <property name="dataSource" ref="myDataSource"/>
          <property name="mappingResources">
          <list>
          <value>product.hbm.xml</value>
          </list>
          </property>
          <property name="hibernateProperties">
          <value>
          hibernate.dialect=org.hibernate.dialect.HSQLDialect
          </value>
          </property>
          </bean>

          然而,在我的案例中,因為業務需要,我們必須在運行時加入新的HBM。在單獨使用Hibernate的時,只要取到Hiberante Configuration對象,修改一下配置,然后rebuild session factory就可以了。

          可是經Spring這一封裝,我只能取到一個只讀的SessionFactory對象,無法進行重置。

          這里有兩種可能方法,但我都不知道如何做。

          1,取到LocalSessionFactoryBean對象進行重置。

          2,取到Hibernate Configuration對象進行重置。

          Technorati : , ,

          posted on 2007-06-11 17:46 Welkin Hu 閱讀(4514) 評論(5)  編輯  收藏 所屬分類: Java

          Feedback

          # re: Spring中如何獲取和重置一個BeanFactory對象?或者說,如何動態修改Hibernate Configuration? 2007-06-11 19:08 dennis
          你是怎么得到SessionFactroy的呢?HibernateDaoSupport的getSessionFactory得到的就是原生的SessionFactroy啊  回復  更多評論
            

          # re: Spring中如何獲取和重置一個BeanFactory對象?或者說,如何動態修改Hibernate Configuration? 2007-06-11 19:24 dennis
          明白你的意思了,你是要得到Hibernate Configuration對象,重新build SessionFactroy吧。
          你需要從ApplicationContext中得到LocalSessionFactoryBean,然后利用LocalSessionFactoryBean的newSessionFactory方法得到一個新的SessionFactroy或者getConfiguration()得到Configuration對象,前提你的bean要實現ApplicationContextAware接口得到Context對象,然后:
          LocalSessionFactoryBean localSessionFactroyBean=(LocalSessionFactoryBean )ctx.getBean("&mySessionFactory");

          Configuration=localSessionFactroyBean.getConfiguration();

          加上符號&就可以引用到FactroyBean本身。不過這樣一來你就要自己將SessionFactroy設置到HibernateTemplate  回復  更多評論
            

          # re: Spring中如何獲取和重置一個BeanFactory對象?或者說,如何動態修改Hibernate Configuration? 2007-06-12 09:03 Welkin Hu
          @dennis
          老大高啊!一下子就找到我想要的解決辦法了。俺馬上就試試。  回復  更多評論
            

          # re: Spring中如何獲取和重置一個BeanFactory對象?或者說,如何動態修改Hibernate Configuration? 2007-08-16 17:40 rmonk
          為什么Configuration.buildSessionFactory()后會報
          org.hibernate.HibernateException: No local DataSource found for configuration - dataSource property must be set on LocalSessionFactoryBean  回復  更多評論
            

          # re: Spring中如何獲取和重置一個BeanFactory對象?或者說,如何動態修改Hibernate Configuration? 2013-08-26 11:18 grandhappy
          @rmonk
          @rmonk
          請問如何解決問題呢
          為什么Configuration.buildSessionFactory()后會報
          org.hibernate.HibernateException: No local DataSource found for configuration - dataSource property must be set on LocalSessionFactoryBean

          謝謝 QQ591965834  回復  更多評論
            

          主站蜘蛛池模板: 红原县| 福海县| 广灵县| 江津市| 宣威市| 岑巩县| 阳朔县| 龙井市| 富源县| 鄂尔多斯市| 德化县| 华容县| 永仁县| 新昌县| 图们市| 嘉兴市| 同江市| 邢台市| 潞西市| 泽普县| 潼关县| 衡东县| 平原县| 徐水县| 抚宁县| 东方市| 曲沃县| 裕民县| 福泉市| 滁州市| 鄯善县| 荥阳市| 武川县| 冷水江市| 固镇县| 陆丰市| 凤山市| 扶余县| 东至县| 湛江市| 重庆市|