1. 程式人生 > >Hibernate:持久化類、持久化物件

Hibernate:持久化類、持久化物件

一、什麼是持久化類:

持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。 持久化類(persistent class):是指它的例項可以被hibernate持久化地儲存到資料庫中,並且能從資料庫讀取的類。

                                              可以被hibernate儲存到資料庫,並且從資料庫讀取的類。

Persistent Object  (PO)

PO=POJO+hbm對映配置

持久化類 = 實體類 + 對映檔案。

二、什麼是POJO

POJO(Plain Old Java Objects)簡單的Java物件,實際就是普通JavaBeans,是為了避免和EJB混淆所創造的簡稱。

三、持久化類的編寫規範

  1. 提供一個無引數 public訪問控制符的構造器:因為會用到反射。
  2. 提供一個標識屬性,對映資料表主鍵欄位 。
    • java區分兩個物件是否是同一個物件,使用地址判斷。
    • 資料庫區分兩條記錄是否一致,使用主鍵判斷。
    • Hibernate區分持久化物件是否是同一個物件,根據唯一標識判斷。
  3. 為所有屬性提供public訪問控制符的set/get方法,框架中存值和取值的時候使用。
  4. 標識屬性應儘量使用基本資料型別的包裝型別
    • 使用基本型別的包裝型別一個好處是,可以區分資料是沒有傳值預設生成的,還是本身就是這個預設值,比如一個表示數量的整數型別,如果使用int,沒有傳值時,資料庫中會出現0,如果使用Integer,沒有傳值時,資料庫中是null。

持久化類儘量不要使用final進行修飾。

  • 用final修飾的類不能被繼承,因此無法生成代理物件,由於延遲載入返回的是代理物件,因此延遲載入就會失效。

四、持久化物件

持久化類的物件、例項

持久化類:在應用程式中,用來實現業務問題實體的類(如,在電子商務應用程式中的Customer和Order)就是持久化類。不能認為所有的持久化類的例項都是持久的狀態——一個例項的狀態也可能是瞬時的或託管的。就如同它的名字暗示的,它的例項會被永續性保存於資料庫中。