隨筆-95  評(píng)論-31  文章-10  trackbacks-0
          1、使用hibernate生成主鍵方式的時(shí)候,注意別的應(yīng)用程序是否同時(shí)操作一張表,如果別的應(yīng)用程序使用max+1手工生成主鍵,那么本應(yīng)用程序hibernate配置sequence的主鍵策略,就有可能和現(xiàn)有程序操作表發(fā)生違反主鍵約束的異常。需要主鍵生成方式一致就不會(huì)有問(wèn)題。
          2、hibernate配置多數(shù)據(jù)庫(kù)源,多個(gè)就配置多個(gè)數(shù)據(jù)庫(kù)連接即有多個(gè)*.hbm.xml文件,還有如何動(dòng)態(tài)配置oracle表空間名字,代碼如下:
           1public synchronized static Session getSession(String database) {
           2        Session session = null;
           3        if (identify_ECG.equals(database.toUpperCase())) {
           4            session = tl.get();
           5            if (session == null{
           6                if (sf_ecg == null{
           7                    if (conf_ecg == null{
           8                        conf_ecg = new Configuration();
           9                        conf_ecg.configure("hibernate_ecg.cfg.xml");
          10                        Properties p = conf_ecg.getProperties();   
          11                        p.put("hibernate.default_schema", getHhecg_user());   //這里是加入不同的表空間設(shè)置
          12                    }

          13                    sf_ecg = conf_ecg.buildSessionFactory();
          14                }

          15                session = sf_ecg.openSession();
          16                tl.set(session);
          17            }

          18        }
           else if (identify_SC.equals(database.toUpperCase())) {
          19            session = tl.get();
          20            if (session == null{
          21                if (sf_sc == null{
          22                    if (conf_sc == null{
          23                        conf_sc = new Configuration();
          24                        conf_sc.configure("hibernate_sc.cfg.xml");
          25                        Properties p = conf_sc.getProperties();   
          26                        p.put("hibernate.default_schema", getHhsc_user());   //這里是加入不同的表空間設(shè)置
          27                    }

          28                    sf_sc = conf_sc.buildSessionFactory();
          29                }

          30                session = sf_sc.openSession();
          31                tl.set(session);
          32            }

          33        }

          34        return session;
          35    }

          36
          37    // 關(guān)閉session
          38    public static void closeSession() {
          39        Session session = tl.get();
          40        if (session != null{
          41            session.close();
          42            tl.set(null);
          43        }

          44    }
          根據(jù)用戶(hù)請(qǐng)求來(lái)判斷采用何種數(shù)據(jù)庫(kù),database即為區(qū)分?jǐn)?shù)據(jù)庫(kù)的標(biāo)識(shí)。
          如果在實(shí)體類(lèi)的映射文件,配置了schema="表空間用戶(hù)名" 那么上面代碼里面的p.put("hibernate.default_schema", getHhsc_user()); 失效
          posted on 2012-01-18 12:41 朔望魔刃 閱讀(273) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 荔波县| 五指山市| 新巴尔虎右旗| 韶山市| 章丘市| 奉节县| 交口县| 和政县| 宁武县| 永福县| 巴林左旗| 西安市| 镇远县| 调兵山市| 晋州市| 乌兰察布市| 铁岭市| 鄂尔多斯市| 托克托县| 沂南县| 汤阴县| 无为县| 社会| 新津县| 萝北县| 武功县| 明溪县| 三穗县| 双城市| 揭东县| 柞水县| 东阳市| 定安县| 隆尧县| 弥勒县| 绥滨县| 成武县| 文化| 无极县| 嘉荫县| 江陵县|