Hibernate:持久化類、持久化物件
阿新 • • 發佈:2018-12-13
一、什麼是持久化類:
持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。 持久化類(persistent class):是指它的例項可以被hibernate持久化地儲存到資料庫中,並且能從資料庫讀取的類。
可以被hibernate儲存到資料庫,並且從資料庫讀取的類。
Persistent Object (PO)
PO=POJO+hbm對映配置
持久化類 = 實體類 + 對映檔案。
二、什麼是POJO
POJO(Plain Old Java Objects)簡單的Java物件,實際就是普通JavaBeans,是為了避免和EJB混淆所創造的簡稱。
三、持久化類的編寫規範
- 提供一個無引數 public訪問控制符的構造器:因為會用到反射。
- 提供一個標識屬性,對映資料表主鍵欄位 。
- java區分兩個物件是否是同一個物件,使用地址判斷。
- 資料庫區分兩條記錄是否一致,使用主鍵判斷。
- Hibernate區分持久化物件是否是同一個物件,根據唯一標識判斷。
- 為所有屬性提供public訪問控制符的set/get方法,框架中存值和取值的時候使用。
- 標識屬性應儘量使用基本資料型別的包裝型別
- 使用基本型別的包裝型別一個好處是,可以區分資料是沒有傳值預設生成的,還是本身就是這個預設值,比如一個表示數量的整數型別,如果使用int,沒有傳值時,資料庫中會出現0,如果使用Integer,沒有傳值時,資料庫中是null。
持久化類儘量不要使用final進行修飾。
- 用final修飾的類不能被繼承,因此無法生成代理物件,由於延遲載入返回的是代理物件,因此延遲載入就會失效。
四、持久化物件
持久化類的物件、例項
持久化類:在應用程式中,用來實現業務問題實體的類(如,在電子商務應用程式中的Customer和Order)就是持久化類。不能認為所有的持久化類的例項都是持久的狀態——一個例項的狀態也可能是瞬時的或託管的。就如同它的名字暗示的,它的例項會被永續性保存於資料庫中。