posts - 120,  comments - 19,  trackbacks - 0
          一、一對(duì)多映射
          1、在映射一對(duì)多的雙相關(guān)聯(lián)關(guān)系時(shí),應(yīng)該在one方把inverse屬性設(shè)為true,可以提高應(yīng)用的性能。
          2、建立兩個(gè)對(duì)象的雙向關(guān)聯(lián)時(shí),應(yīng)該同時(shí)修改關(guān)聯(lián)兩端的對(duì)象的應(yīng)用屬性,這樣使程序更加健壯,提高業(yè)務(wù)邏輯層的獨(dú)立性,使業(yè)務(wù)邏輯層的程序代碼不受hibernate實(shí)現(xiàn)的影響;同理,當(dāng)解除雙相關(guān)聯(lián)關(guān)系時(shí),也應(yīng)該修改關(guān)聯(lián)兩端的對(duì)象的相應(yīng)屬性。
          eg://添加
          customer.getOrders().add(order);
          order.setCustomer(customer);
          //刪除
          customer.getOrders().remove(order);
          order.setCustomer(null);
          3、在定義一對(duì)多映射中“一”的POJO類時(shí),注意要private Set orders?= new HashSet();//通常把它初始化為集合實(shí)現(xiàn)類的一個(gè)實(shí)例,這樣避免訪問取值為null,引發(fā)NullPointerException異常,提高健壯性。
          二、Session三種檢索方法:
          1.load():根據(jù)給定OID從數(shù)據(jù)庫中加載一個(gè)持久化對(duì)象,如數(shù)據(jù)庫中沒有則拋出net.sf.hibernate.ObjectNotFoundException異常。
          2.get():根據(jù)給定OID從數(shù)據(jù)庫中加載一個(gè)持久化對(duì)象,如數(shù)據(jù)庫中沒有則返回null。
          3.find():按照參數(shù)指定的HQL語句加載一個(gè)或多個(gè)持久化對(duì)象,實(shí)際是HQL檢索方式的一種簡寫形式。
          三、hql查詢:
          在數(shù)組和Collection中的查詢:
          String hql = "select??u from?User u where u in (:users)";
          query.setParameterList("users", users);
          //括號(hào)千萬別忘寫,否則出現(xiàn)如下錯(cuò)誤:
          2006-07-07 11:07:35 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 907, SQLState: 42000
          2006-07-07 11:07:35 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00907: 缺失右括號(hào)

          posted on 2006-08-16 15:37 阿成 閱讀(424) 評(píng)論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 恭城| 乌鲁木齐县| 沅陵县| 鸡东县| 尼玛县| 吴江市| 景德镇市| 麟游县| 平山县| 华池县| 阜阳市| 江西省| 醴陵市| 咸丰县| 西畴县| 固始县| 金秀| 礼泉县| 衡东县| 吉水县| 南陵县| 叶城县| 织金县| 呼和浩特市| 邳州市| 江口县| 阜南县| 班戈县| 阿巴嘎旗| 股票| 大洼县| 象州县| 深水埗区| 大庆市| 苍溪县| 策勒县| 长阳| 出国| 霍林郭勒市| 闵行区| 江都市|