Hibernate(2)

來源:互聯網
上載者:User

標籤:執行個體   主鍵建置原則   img   資料庫空間   規則   建立   mil   提交   alt   

一、實體類編寫規則

  1、實體類裡面的屬性屬於私人的

  2、私人屬性使用公開的set和get方法操作

  3、要求實體類有屬性作為唯一值(一般使用id值)

  4、實體類屬性建議不要使用基礎資料型別 (Elementary Data Type),使用基礎資料型別 (Elementary Data Type)對應的封裝類

 

二、Hibernate 主鍵建置原則

    1、主鍵的分類

    自然主鍵:把具有業務含義的欄位作為主鍵,稱之為自然主鍵。例如在user表中,如果把name欄位作為主鍵,其前提條件必須是:每一個客戶的姓名不允許為null,不允許客戶重名,並且不允許修改客戶姓名。儘管這也是可行的,但是不能滿足不斷變化的業務需求,一旦出現了允許客戶重名的業務需求,就必須修改資料模型,重新定義表的主鍵,這給資料庫的維護增加了難度。

    代理主鍵:把不具備業務含義的欄位作為主鍵,稱之為代理主鍵。該欄位一般取名為“ ID ” 通常為整數類型,因為整數類型比字串類型要節省更多的資料庫空間。在上面例子中,顯然更合理的方式是使用代理主鍵。

 

    2、hibernate的主鍵生產策略:使用 generator 標籤

      

 

        classs屬性值主要有2個(native,uuid):

 

        

       注意:使用uuid生產策略時,實體類id屬性必須使用 字串類型

          

 

 

 三、實體類對象的三種狀態

   1、瞬時態(transient)

    瞬時態也稱為臨時態或者自由態,瞬時態的執行個體是由new命令建立、開闢記憶體空間的對象,不存在持久化標識OID(相當於主索引值),尚未與Hibernate sesslon關聯,在資料庫中也沒有記錄,失去引用後將被JVM回收。瞬時狀態的對象在記憶體中是孤立存在的,與資料庫中的資料無任何關聯,僅是一個資訊攜帶的載體。

    瞬時態:對象裡面沒有id值,對象與session沒有關聯

    

   2、持久態(persistent)

    持久態的對象存在持久化標識OID,加入到了Session緩衝中,並且相關聯的Session沒有關閉,在資料庫中有對應的記錄,每條記錄只對應唯一的持久化對象,需要注意的是,持久態對象是在事務還未提交前變成持久態的。

    持久態:對象裡面有id值,對象與session關聯

    

   3、脫管態(detached)

    脫管態也稱離線態或者游離態,當某個持久化狀態的執行個體與Session的關聯被關閉時就變成了脫管態。脫管態對象存在持久化標識OID,並且仍然與資料庫中的資料存在關聯,只是失去了與當前 Session的關聯,脫管狀態物件發生改變時Hibernate不能檢測到

    託管態:對象有id值,對象與session沒有關聯

    

 

 

 

 

  

Hibernate(2)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.