1. 程式人生 > >Hibernate 入門 特性配置

Hibernate 入門 特性配置

months 時也 插入數據 rom 完成 映射 實體 sda 不包含

轉載自:http://www.cnblogs.com/blackdeng/p/7027296.html

1.持久化對象的配置

1)hibernate-mapping標簽配置

根標簽,可以包含class子標簽

Package 一個映射文件可以包含多個class子標簽,如果這些子標簽定義的java類都位於同java包下,可以設置package屬性,可以避免每個類提供全限定名

2)class標簽配置

  class :用於配置持久化類與數據表關系的標簽,子元素為持久化對象屬性與數據庫字段的關系映射。

常用屬性說明:

  mutable:是否可變,true/false,默認true。如設定為false,則無法完成數據修改功能。

  dynamic-insert:是否動態插入,true/false,默認false,如設定為true,hibernate在插入數據時,首先檢測內存對象(new出的對象在內存中存在),過濾為空的屬性,生成的sql語句不包含為空的字段。

  dynamic-update:是否動態修改,true/false,默認false,如設定為true,hibernate在更新數據時,指定用於 UPDATE 的 SQL 將會在運行時動態生成,並且只更新那些改變過的字段。

作用:優化sql語句,些微提升sql效率

  lazy:是否延遲加載,true/false,默認true。(在hibernate數據檢索章節詳解)

3)property標簽配置

  property:用於配置持久化類屬性與數據表字段的映射關系標簽。

常用屬性說明:

  name:持久化類的屬性名稱。

  column:數據庫表的字段名。

  type :字段類型。type包含兩種數據類型:

    Java數據類型:與持久化類屬性類型一致,必須是完整類路徑。

    hibernate數據類型:hibernate封裝了自己的數據類型與java數據類型對應,同時也擴展了部分數據類型。

  access:屬性訪問方式,有三種配置方式,Hibernate訪問持久化類屬性的策略

    property默認值:表明hibernate通過getXXX和setXXX來訪問類屬性。推薦使用。

    field:hibernate通過java反射機制直接訪問類屬性。對於沒有javabean方法的屬性可設置該訪問策略。(<property name=”name” column=”name” access=”field”>)

    noop(了解):它映射Java持久化類中不存在的屬性,即主要用於HQL(用query接口測試,使用hql語句)中,當數據庫中有某列,而實體中不存在的情況。

  formula:用來設置一個sql表達式,hibernate將根據它來計算出派生屬性的值。用來設置一個sql表達式,hibernate將根據它來計算出派生屬性的值。派生屬性:數據庫表中不包含此字段,但因為業務邏輯需要,持久化對象需要的額外字段,例如數據庫中保存的是日期格式的出生日期,但需要獲取的是年齡。

  <property name="age" formula="(select months_between(sysdate,birthday)/12 from dual)">

  insert:是否可插入,true/false,默認true,如設定為false,hibernate完成插入數據操作時,不處理該字段。

  update:是否可修改,true/false,默認true,如設定為false,hibernate完成數據更新操作時,不處理該字段。

  lazy:是否延遲加載,true/false,默認true。(後面知識解釋)

Hibernate 入門 特性配置