hibernate基本映射標簽和屬性
<hibernatemapping>標簽
() schema (可選) 數據庫schema的名稱
() catalog (可選) 數據庫catalog的名稱
() defaultcascade (可選 默認為 none) 默認的級聯風格
() defaultaccess (可選 默認為 property) Hibernate用來訪問所有屬性的策略可以通過實現PropertyAccessor接口 自定義
() defaultlazy (可選 默認為 true) 指定了未明確注明lazy屬性的Java屬性和集合類 Hibernate會采取什麼樣的默認加載風格
() autoimport (可選 默認為 true) 指定我們是否可以在查詢語言中使用非全限定的類名(僅限於本映射文件中的類)
() package (可選) 指定一個包前綴如果在映射文檔中沒有指定全限定的類名 就使用這個作為包名 假若有兩個持久化類它們的非全限定名是一樣的(就是兩個類的名字一樣所在的包不一樣)應該設置autoimport=false如果把一個import的名字對應兩個類Hibernate會拋出一個異常hibernatemapping元素允許嵌套多個<class>映射但最好的做法是一個持久化類對應一個映射文件並以持久化的超類名稱命名如Xxxhbmxml
<class>標簽
()name(可選)持久化類(或者接口)的Java全限定名如果這個屬性不存在Hibernate將假定這是一個非POJO的實體映射
()table(可選默認是類的非全限定名)對應數據庫表名生成DDL時數據表名如果省略則名稱同持久化類名稱
()dynamicupdate(可選默認為false)指定用於UPDATE的SQL將會在運行時動態生成只更新那些被改過的字段
()dynamicinsert(可選默認為false)指定用於insert的sql將會在運行時動態生成並且只包含那些非空字段
() optimisticlock(樂觀鎖定) (可選默認是version) 決定樂觀鎖定的策略
() lazy (可選) 通過設置lazy=false 所有的延遲加載(Lazy fetching)功能將被全部禁用(disabled)
<id>標簽
<id>標簽必須配置在<class>標簽的第一個位置由一個字段構成主鍵<id>元素定義了該屬性到數據庫表主鍵字段的映射
()name:實體類的屬性名字
()type:標識Hibernate類型的名字(省略則使用Hibernate默認類型)也可以自己配置類型(integerlongshortfloatdoublecharacterbytebooleanyes_notrue_false)
()column(可選默認為屬性名)主鍵字段的名字(省略則取name為字段名)
()length(可選)當type為varchar時設置字段長度
<generator>元素(主鍵生成策略)
主鍵生成策略必須配置用來為該持久化類的實例生成唯一的標識
uuid:
用一個bit的UUID算法生成字符串類型的標識符這在一個網絡中是唯一的(使用了IP地址)UUID被編碼為一個位進制數字的字符串它的生成是由Hibernate生成一般不會重復UUID包含IP地址JVM的啟動時間系統時間和一個計算器值
native:
根據底層數據庫的能力選擇identitysequence或者hilo中的一個(數據庫自增)
assigned:
讓程序在save()之前為對象分配一個表示符這是<generator>元素沒有指定時的默認生成策略(如果是手動分配則需要設置此配置)
<property>標簽
用於映射普通屬性到表字段
注如果實體類和實體類中的屬性和SQL中的關鍵字重復必須采用table或column重新命名
Hibernate完整映射實例
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28650.html