實體類規則entity
- 提供一個無參數 public訪問控制符的構造器
- 提供一個標識屬性,映射數據表主鍵字段,提供id 和 hbm.xml中id對應
- 所有屬性提供public訪問控制符的 set get 方法(javaBean)
- 標識屬性應儘量使用基本數據類型的包裝類型
- 不要用final修飾實體 (將無法生成代理對象進行優化)
- 持久化對象的唯一標識 OID:對應映射文件的id屬性
自然主鍵和代理主鍵
- 主鍵具備: 不爲空/不能重複/不能改變
- 自然主鍵:某個屬性符合主鍵的三個要求.該屬性可作爲主鍵列.
- 代理主鍵:不存符合以上3個條件的屬性,那麼就增加一個沒有意義的列
實體狀態 :瞬時狀態、持久狀態、脫管狀態
- 瞬時狀態:transient, session沒有緩存, 數據庫沒有記錄, oid沒有值
- 持久狀態:persistent, session有緩存, 數據庫有記錄, oid有值
- 脫管狀態:detached, session沒有緩存, 數據庫有記錄, oid有值
- 瞬時 : 創建一個對象,這個對象就是瞬時狀態
- 瞬時 轉 持久 : 瞬時狀態執行經過save、update、saveOrUpdate之後變成持久狀態
- 持久 轉 脫管 :load,get返回的對象是持久狀態的,當session.close () 關閉或者session.clear() 清除所有或者session.evict(obj) 清除指定的PO對象後,對象變成脫管狀態