貌似大家用hibernate連接的大都是Oracle數據庫。
          今天偶用hibernate連MySql時發現一個問題:
          數據無法提交到對應的表中,且不報錯,使我有種每次重啟tomcat就重建表的錯覺。
          從而把過錯歸咎于
          <property name="hbm2ddl.auto">create</property>
          經過測試發現,我的方向錯了。

          原本,我的dao是這樣寫的:(以add為例)
          /**
               * 向數據庫中添加數據
               * 
               * 
          @param t
               
          */
              
          public void add(T t) {
                  logger.info(
          "向數據庫添加" + t);

                  Session session 
          = HibernateUtil.getSession();

                  session.save(t);
                  session.flush();

                  HibernateUtil.closeSession(session);
              }

          后來和老師朋友們交流才知道,原來MySql是不能自動提交的,所以我的數據只是插入到緩存里,沒到數據庫里。
          現將此方法改為如下形式便好了:
              /**
               * 向數據庫中添加數據
               * 
               * 
          @param t
               
          */
              
          public void add(T t) {
                  logger.info(
          "向數據庫添加" + t);

                  Session session 
          = HibernateUtil.getSession();
                  Transaction ts
          =session.beginTransaction();
                  session.save(t);
                  session.flush();
                  ts.commit();
                  HibernateUtil.closeSession(session);
              }


          posted on 2010-01-14 19:08 Ying-er 閱讀(356) 評論(0)  編輯  收藏 所屬分類: SSH
          主站蜘蛛池模板: 上蔡县| 岐山县| 咸宁市| 广丰县| 台江县| 公主岭市| 汾西县| 多伦县| 运城市| 卓资县| 叙永县| 阜南县| 湖州市| 乐都县| 嵊州市| 宁远县| 建湖县| 昌都县| 石河子市| 广宁县| 舟曲县| 山阴县| 津市市| 南充市| 石林| 呼伦贝尔市| 密云县| 固镇县| 宜兴市| 龙岩市| 华安县| 肥西县| 含山县| 山阴县| 宝坻区| 勐海县| 增城市| 焦作市| 太原市| 沙田区| 株洲市|