轉載
Doctype
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2008-10-1 20:56:03 by Hibernate Tools 3.2.1.GA -->
根元素hibernate-mapping
屬性:
schema:數據庫的schema名稱
catalog:數據庫的catalog名稱
default-cascade:默認的級聯方式 默認值為none
default-access:默認的屬性訪問方式 默認值為property
default-lazy:對沒有指定延遲加載的映射類和集合設定為延遲加載 默認值為true
auto-import:設定此映射文件中是否可以在HQL中使用非完整的類名(不包括包名) 默認值為true
package:此映射文件中類默認的包名
子元素:
meta:用於設置類或屬性的元數據屬性
typedef:定義新的Hibernate數據類型
import:顯示的引用一個類,避免在HQL語句中使用全類名
class:定義一個持久類
subclass:在進行多態持久化時定義父類的子類
joined-subclass:定義一個連接子類
union-subclass:定義一個聯合子類
query:定義一個HQL查詢
sql-query:定義一個SQL查詢
filter-def:定義過濾器
class元素
屬性:
name:持久化類的全名
table:對應的數據庫表名 默認值為類名
discriminator-value:子類識別標識 默認值為類名
mutable:表明該類的實例是否是可變的 默認值為false
schema:數據庫的schema名稱
catalog:數據庫的catalog名稱
proxy:指定延遲加載代理類
dynamic-update:指定用於update的SQL語句是否動態生成 默認值為false
dynamic-insert:指定用於insert的SQL語句是否動態生成 默認值為false
insert-before-update:設定在Hibernate執行update之前是否通過select語句來確定對象是否確實被修改了,如果該對象的值沒有改變,update語句將不會被執行 默認值為false
polymorphism:指定使用多態查詢的方式 默認值為implicit
where:指定一個附加的SQL語句的where條件
persister:指定一個Persister類
batch-size:設定批量操作記錄的數目 默認值為1
optimistic-lock:指定樂觀鎖定的策略 默認值為vesion
lazy:指定是否使用延遲加載
entity-name:實體名稱 默認值為類名
check:指定一個SQL語句用於Schema前的條件檢查
rowid:指定是否支持ROWID
subselect:將不可變的只讀實體映射到數據庫的子查詢中
abstract:用於在聯合子類中標識抽象的超類 默認值為false
子元素:
meta:設置類或屬性的元數據屬性
subselect:定義一個子查詢
cache:定義緩存的策略
synchronize:定義持久化類所需要的同步資源
comment:定義表的注釋
id:映射類中與數據庫對應表主鍵相對應的標識字段(表中為獨立字段的主鍵)
composite-id:映射類中與數據庫對應表主鍵相對應的標識字段(表中為聯合字段的主鍵)
natural-id:聲明一個唯一的業務主鍵
discriminator:定義一個鑒別器
vesion:指定表所包含的附帶版本信息的數據
timestamp:指定表中包含時間戳的數據
property:定義一個持久化類的屬性
many-to-one:定義對象間的多對一的關聯關系
one-to-one:定義對象間的一對一的關聯關系
component:定義組件映射
dynamic-component:定義動態組件映射
properties:定義一個包含多個屬性的邏輯分組
any:定義any映射類型
map:map類型的集合映射
set:set類型的集合映射
list:list類型的集合映射
bag:bag類型的集合映射
array:array類型的集合映射
primitive-array:primitive-array類型的集合映射
query-list:映射由查詢返回的集合
join:將一個類的屬性映射到多張表中
sub-class:聲明多態映射中的子類
joined-subclass:生命多態映射中的來連接子類
union-subclass:聲明多態映射中的聯合子類
loader:定義持久化對象的加載器
sql-insert:使用定制的SQL語句執行insert操作
sql-update:使用定制的SQL語句執行update操作
sql-delete:使用定制的SQL語句執行delete操作
filter:定義Hibernate使用的過濾器
query:定義裝載實體的HQL語句
sql-query:定義裝載實體的SQL語句
id 元素
屬性:
name:映射類中與主鍵相對應的屬性名
type:主鍵屬性的數據類型
column:主鍵字段的名稱 默認值為屬性名稱
unsaved-value:判斷此對象是否進行了保存
access:Hibernate訪問主鍵屬性的策略 默認值為property
子元素:
generator:為持久化實例產生一個唯一標識
generator 元素
屬性:
class:定義實例生成器
sequence (序列) 在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的標識符是long, short或者 int類型的。
hilo (高低位)使用一個高/低位算法來高效的生成long, short或者 int類型的標識符。給定一個表和字段(默認分別是是hibernate_unique_key 和next_hi)作為高位值得來源。高/低位算法生成的標識符只在一個特定的數據庫中是唯一的。在使用JTA獲得的連接或者用戶自行提供的連接中,不要使用這種生成器。
seqhilo(使用序列的高低位) 使用一個高/低位算法來高效的生成long, short或者 int類型的標識符,給定一個數據庫序列(sequence)的名字。
uuid.hex 用一個128-bit的UUID算法生成字符串類型的標識符。在一個網絡中唯一(使用了IP地址)。UUID被編碼為一個32位16進制數字的字符串。
uuid.string 使用同樣的UUID算法。UUID被編碼為一個16個字符長的任意ASCII字符組成的字符串。不能使用在PostgreSQL數據庫中
native(本地) 根據底層數據庫的能力選擇identity, sequence 或者hilo中的一個。
assigned(程序設置) 讓應用程序在save()之前為對象分配一個標示符。
foreign(外部引用) 使用另外一個相關聯的對象的標識符。和<one-to-one>聯合一起使用。
name:映射類屬性的名字
column:對應數據庫表的字段名 默認值為屬性名
type:字段的類型
update:update操作時是否包含本字段的數據 默認值為true
insert:insert操作時是否包含本字段的數據 默認值為true
formula:定義一個SQL來計算這個屬性的值
access:Hibernate訪問這個屬性的策略 默認值為property
lazy:設置此字段是否采用延遲加載策略 默認值為false
unique:設置該字段值是否唯一 默認值為false
not-null:設置該字段值是否可以為空 默認值為false
optimistic-lock:指定此屬性做更新操作時是否需要樂觀鎖定 默認值為true
set 元素
屬性:
name:映射類屬性的名字
access:Hibernate訪問這個屬性的策略 默認值為property
table:關聯的目標數據庫表
schema:目標數據庫表的schema名字
catalog:目標數據庫表的catalog名字
lazy:是否采用延遲加載
subselect:定義一個子查詢
sort:設置排序的類型 默認值為 unsorted不排序 可選值為 natural自然排序、comparatorClass實現接口類作為排序算法 避免與order-by同時使用
inverse:用於標識雙向關聯中被動的一方 默認值為false
mutable:標識被關聯對象是否可以改變 默認值為true
cascade:設置操作中的級聯策略 可選值為 all所有操作情況均進行級聯、none所有操作情況均不進行級聯、save-update執行更新操作時級聯、delete執行刪除操作時級聯、all-delete-orphan被關聯對象失去宿主時將其刪除
order-by:設置排序規則
where:增加篩選條件
batch-size:延遲加載時,一次讀取數據的數量 默認值為1
fetch:設置抓取數據的策略 可選值為 join外連接抓取、select序列選擇抓取
one-to-one 元素
屬性:
name:映射類屬性的名字
class:映射的目標類
cascade:設置操作中的級聯策略 可選值為 all所有操作情況均進行級聯、none所有操作情況均不進行級聯、save-update執行更新操作時級聯、delete執行刪除操作時級聯
constrained:表明當前類對應的表與被關聯的表之間是否存在着外鍵約束 默認值為false
fetch:設置抓取數據的策略 可選值為 join外連接抓取、select序列選擇抓取
property-ref:設置關聯類的屬性名,此屬性和本類的主鍵相對應 默認值為關聯類的主鍵
access:Hibernate訪問這個屬性的策略 默認值為property
formula:絕大多數一對一關聯都指向其實體的主鍵。在某些情況下會指向一個或多個字段或是一個表達式,此時可用一個SQL公式來表示
lazy:指定是否采用延遲加載及加載策略 默認值為proxy通過代理進行關聯 可選值為 true此對象采用延遲加載並在變量第一次被訪問時抓取、false此關聯對象不采用延遲加載
entity-name:被關聯類的實體名
many-to-one 元素
屬性:
name:映射類屬性的名字
column:關聯的字段
class:關聯類的名字
cascade:設置操作中的級聯策略 可選值為 all所有操作情況均進行級聯、none所有操作情況均不進行級聯、save-update執行save和update操作時級聯、delete執行刪除操作時級聯
fetch:設置抓取數據的策略 默認值為select序列選擇抓取 可選值為join外連接抓取
update:進行update操作時是否包含此字段
insert:進行insert操作時是否包含此字段
property 元素
屬性:
property-ref:設置關聯類的屬性名,此屬性和本類的關聯相對應 默認值為關聯類的主鍵
access:Hibernate訪問這個屬性的策略 默認值為property
unique:設置該字段值是否唯一 默認值為false
not-null:設置該字段值是否可以為空 默認值為false
optimistic-lock:指定此屬性做更新操作時是否需要樂觀鎖定 默認值為true
lazy:指定是否采用延遲加載及加載策略 默認值為proxy通過代理進行關聯 可選值為 true此對象采用延遲加載並在變量第一次被訪問時抓取、false此關聯對象不采用延遲加載
not-found:指定外鍵引用的數據不存在時如何讓處理 默認值為exception產生異常 可選值為ignore對不存在的應用關聯到null
entity-name:被關聯類的實體名
many-to-one 元素
屬性:
column:中間關聯表映射到目標關聯表的關聯字段
class:關聯的目標類
fetch:設置抓取數據的策略 默認值為select序列選擇抓取 可選值為join外連接抓取
lazy:指定是否采用延遲加載及加載策略 默認值為proxy通過代理進行關聯 可選值為 true此對象采用延遲加載並在變量第一次被訪問時抓取、false此關聯對象不采用延遲加載
formula:絕大多數一對一關聯都指向其實體的主鍵。在某些情況下會指向一個或多個字段或是一個表達式,此時可用一個SQL公式來表示
not-found:指定外鍵引用的數據不存在時如何讓處理 默認值為exception產生異常 可選值為ignore對不存在的應用關聯到null
entity-name:被關聯類的實體名