隨筆 - 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

          主站蜘蛛池模板: 江华| 南投市| 堆龙德庆县| 水城县| 福清市| 怀仁县| 抚远县| 襄汾县| 驻马店市| 枝江市| 安龙县| 麻栗坡县| 天祝| 满洲里市| 沙坪坝区| 沾益县| 石狮市| 淮安市| 平遥县| 永年县| 家居| 安康市| 东方市| 临沭县| 南汇区| 迁西县| 德令哈市| 阳江市| 福清市| 大埔区| 天台县| 临江市| 泸定县| 盐城市| 元阳县| 安国市| 辽源市| 宁都县| 舞钢市| 驻马店市| 富平县|