升級到Hibernate3.0的理由

來源:互聯網
上載者:User

     團隊升級一次不容易,總要找到足夠的理由或者借口:查詢文法的全面增強;真正徹底的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(整個繼承樹在同一個表,通過discrim列區分不同的子類)
      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終於沒有這個惡夢了。

 
   買一送一的new feactures
   1.EJB3 annotation,  取代xml-base的hbm檔案。
   2.Handwrite CRUD SQL, 向ibatis的地盤討飯。
   3.持久化XML ,除了POJO外,還支援XML的持久化,方便WebService, ESB類的應用。 
   4.One Class map to mutible Table,打破 one table,one object的範式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.