国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

升級到Hibernate3.0的理由

2019-11-18 11:34:30
字體:
來源:轉載
供稿:網友

     團隊升級一次不輕易,總要找到足夠的理由或者借口:查詢語法的全面增強;真正徹底的OR映射;性能的提升是三個的主要理由。另外,買一送一的,還有四個暫時不是理由的理由。

    查詢語法全面增強
    
HQL,Native SQL ,Criteria都有大幅增強,不再有太多無法完成需要sql輔助的地方
    1.HQL語法增強 
       使用Antlr的作為語法引擎
       支持subquery,distinct, nullif,case ,cast,having count(*)在內的絕大部分SQL語法
       支持Bulk-Update,Bulk-Delete 語法
       "update Customer set name = :newName where name = :oldName";
     
    2.Native SQL增強
       
2.0時的Native基本上是流血上市,中看不中用的。3.0時才基本可用。

    3. 非完整對象的查詢結果返回Map 而不是Array.
        2.0時按array[0],array[1]訪問查詢結果根本是無人敢用的語法,Map的好處是可以按名稱取值

      " select new map(goods.goodsNo as goodsNo,goods.code as code) from Goods goods"
       Map goods =(Map)list.get(0);
       Strng code = (String)goods.get("code");

     真正的OR映射
      完美支持三種O/R典型映射及其混合
      discrim(整個繼續(xù)樹在同一個表,通過discrim列區(qū)分不同的子類)
      unionclass(每個子類一個表,每個表擁有全部屬性)    
      joinClass(每個父類每個子類各有一個表,父類的屬性在父表,子類的表只包含子類的屬性)
    
    4.discrim支持formula虛擬列做標識符 
        不再需要一個單獨的discriminator列,可以通過對其他列的計算得出子類的標識符
     <discriminator type="int"
   formula="CASE WHEN company is null THEN 0 WHEN company = 'JBoss' THEN 1 ELSE 2 END"/>

    5.union class支持

     <class name="Being" abstract="true">
        <id name="id" unsaved-value="0" column="bid">
           <generator class="increment"/>
        </id>
     <PRoperty name="identity" column="ident"/>
     <union-subclass name="Human" table="aliens">
      <property name="sex" column="sex"/>
     </union-subclass>
    </class> 

    要害性能升級
 
  6.column-level lazy fecth
    2.0的時候只能對one to many的列 lazy fecth,結果找一個對象經常藤連瓜瓜連藤找出10來個對象出來,很恐怖。3.0終于沒有這個惡夢了。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 化隆| 罗山县| 永嘉县| 靖远县| 阜阳市| 呼玛县| 宝应县| 南岸区| 百色市| 池州市| 海兴县| 偃师市| 富宁县| 封丘县| 新平| 本溪| 惠水县| 凤冈县| 六安市| 峨边| 称多县| 五莲县| 桑植县| 长丰县| 六枝特区| 文化| 尉犁县| 昌邑市| 祥云县| 葵青区| 阿坝县| 迁安市| 缙云县| 嘉定区| 兴化市| 右玉县| 雅江县| 克东县| 巴中市| 比如县| 长丰县|