隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
          數據加載中……

          Hibernate的檢索方式

           Q:Hibernate的檢索方式有很多
          對象圖的導航檢索,load/get檢索,HQL(find,Query)檢索,QBC(Criteria,QBE)檢索以及本地數據庫SQL檢索.
          那么,在實際應用中到底選擇哪一種檢索好?它們之間的檢索有哪些聯系和區別呢?
           

          A:(by Robbin)HQL功能最強大,適合各種情況,但是動態條件查詢構造起來很不方便
          Criteria最適合動態條件查詢,不太適合統計查詢,QBE還不夠強大,只適合相當簡單的查詢
          NativeSQL可以實現特定數據庫的SQL,但是可移植性就犧牲了


          Hibernate2的Criteria功能不夠完善,所以Hibernate2上面可用的只有HQL和NativeSQL,Hibernate3的Criteria已經非常強大了。

          我的選擇原則是:

          針對web應用來說,大部分常規查詢都是動態條件查詢,所以首選使用Criteria,并且Hibernate3提供了DetachedCriteria,可以在web層構造好DetachedCriteria再進入session執行查詢,非常方便實用的特性。

          但是涉及到統計查詢和非常復雜的關聯查詢,Criteria就無能為力了,這種情況下我選擇使用HQL。

          最后如果必須使用某些數據庫的特性,例如Oracle的"...connect with ... by"這樣的SQL,則選擇使用NativeSQL。

          posted on 2005-08-09 21:21 閱讀(384) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 嵊泗县| 高唐县| 莆田市| 民县| 西乌| 青岛市| 桂东县| 澎湖县| 淄博市| 万安县| 修水县| 望奎县| 海门市| 鸡泽县| 唐海县| 万山特区| 加查县| 北辰区| 米易县| 万宁市| 平湖市| 报价| 营山县| 鹤岗市| 靖州| 晋江市| 旺苍县| 大洼县| 镇平县| 稷山县| 临桂县| 吉木乃县| 南木林县| 建阳市| 安陆市| 仁怀市| 梁平县| 犍为县| 治县。| 昆明市| 舞阳县|