寫程序,做產(chǎn)品,過日子

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

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            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>

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

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

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

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

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

          Technorati : , ,

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

          Feedback

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

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

          Configuration=localSessionFactroyBean.getConfiguration();

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

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

          # re: Spring中如何獲取和重置一個BeanFactory對象?或者說,如何動態(tài)修改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對象?或者說,如何動態(tài)修改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  回復  更多評論
            

          主站蜘蛛池模板: 庆元县| 洛宁县| 象山县| 句容市| 浦县| 大荔县| 昔阳县| 光泽县| 黄陵县| 商水县| 井陉县| 高淳县| 开化县| 绵竹市| 德钦县| 三都| 阿尔山市| 滕州市| 黑河市| 绍兴县| 涞源县| 平利县| 凤凰县| 平陆县| 广安市| 石狮市| 新平| 阿城市| 武清区| 梁平县| 西青区| 克山县| 廉江市| 嘉黎县| 博乐市| 沂水县| 平远县| 嘉鱼县| 筠连县| 开江县| 信宜市|