寫程序,做產品,過日子

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

          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 閱讀(4513) 評論(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  回復  更多評論
            

          主站蜘蛛池模板: 镇雄县| 民勤县| 南通市| 涡阳县| 清远市| 琼结县| 益阳市| 大港区| 灵山县| 获嘉县| 梅河口市| 通州区| 富宁县| 昌黎县| 淮南市| 仪陇县| 浮山县| 阜南县| 湘阴县| 大方县| 威远县| 喀喇沁旗| 云霄县| 长兴县| 泰和县| 潜山县| 巴马| 台东市| 麻江县| 大田县| 江都市| 藁城市| 阳新县| 河北区| 思南县| 淳化县| 娄烦县| 禹城市| 赞皇县| 广灵县| 全椒县|