Hibernate映射文件元素屬性說明


轉載

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:定義實例生成器

increment(遞增用於為long, short或者int類型生成唯一標識。只有在沒有其他進程往同一張表中插入數據時才能使用。 在集群下不要使用。 identity 對DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的內置標識字段提供支持。返回的標識符是long, short 或者int類型的。
sequence (序列 在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的標識符是long, short或者 int類型的。
hilo (高低位使用一個高/低位算法來高效的生成long, short或者 int類型的標識符。給定一個表和字段(默認分別是是hibernate_unique_keynext_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:被關聯類的實體名


免責聲明!

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



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