寫程序,做產品,過日子

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

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

          常用鏈接

          留言簿(14)

          隨筆分類(64)

          隨筆檔案(69)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          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  回復  更多評論
            

          51La
          主站蜘蛛池模板: 营口市| 通渭县| 潍坊市| 山阳县| 治县。| 财经| 会理县| SHOW| 红安县| 孝义市| 伊川县| 西充县| 银川市| 金寨县| 瑞金市| 汤阴县| 鄄城县| 济南市| 梓潼县| 敦煌市| 桃江县| 陈巴尔虎旗| 庐江县| 原平市| 兰州市| 慈溪市| 延安市| 安顺市| 黑河市| 大方县| 北宁市| 象州县| 盐山县| 肥城市| 手游| 乾安县| 长垣县| 贺州市| 和政县| 兖州市| 湘阴县|