貌似大家用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 閱讀(360) 評論(0)  編輯  收藏 所屬分類: SSH
          主站蜘蛛池模板: 墨竹工卡县| 龙川县| 万安县| 奇台县| 清涧县| 永安市| 河池市| 灵武市| 建瓯市| 徐水县| 宁津县| 禹城市| 大悟县| 白玉县| 越西县| 思茅市| 瑞丽市| 长沙市| 铁岭县| 射阳县| 灌云县| 松江区| 奉新县| 昔阳县| 永福县| 建昌县| 盐津县| 武义县| 克什克腾旗| 木里| 广东省| 阿拉善左旗| 彭阳县| 罗源县| 甘孜县| 开封市| 余庆县| 米脂县| 榆社县| 固镇县| 宁化县|