hibernate簡單入門教程(二)---------特性配置


1.持久化對象的配置

 

1hibernate-mapping標簽配置

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

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

 

2)class標簽配置

 

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

常用屬性說明:

 

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

 

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

 

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

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

 

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

 

3)property標簽配置

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

常用屬性說明:

 

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

 

  column:數據庫表的字段名。

 

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

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

 

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

 

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

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

      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,如設定為falsehibernate完成插入數據操作時,不處理該字段。

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM