Hibernate學(xué)習(xí)心得--映射對(duì)象標(biāo)識(shí)符
作者:Flyingis
在關(guān)系數(shù)據(jù)庫(kù)中的主鍵可分為自然主鍵(具有業(yè)務(wù)含義)和代理主鍵(不具有業(yè)務(wù)含義),其中代理主鍵可以適應(yīng)不斷變化的業(yè)務(wù)需求,因此更加流行。代理主鍵通常為整數(shù)類型,與此對(duì)應(yīng),在持久化類中野應(yīng)該把OID定義為整數(shù)類型,Hibernate允許把OID定義為short、int和long類型,以及它們的包裝類型。
Hibernate提供了幾種內(nèi)置標(biāo)識(shí)符生成器,每一種標(biāo)識(shí)符生成器都有它的使用范圍,應(yīng)該根據(jù)所使用的數(shù)據(jù)庫(kù)和Hibernate應(yīng)用的軟件架構(gòu)來(lái)選擇合適的標(biāo)識(shí)符生成器。下面是幾種常用數(shù)據(jù)庫(kù)系統(tǒng)可使用的標(biāo)識(shí)符生成器:
MYSQL: identity increment hilo native
MS SQL Server: identity increment hilo native
Oracle: sequence seqhilo hilo increment native
夸平臺(tái)開發(fā): native
OID是為持久化層服務(wù)的,它不具備業(yè)務(wù)含義,而域?qū)ο笪挥跇I(yè)務(wù)邏輯層,用來(lái)描述業(yè)務(wù)模型。因此,在域?qū)ο笾袕?qiáng)行加入不具備業(yè)務(wù)含義的OID,可以看作是持久化層對(duì)業(yè)務(wù)邏輯層的一種滲透,但這種滲透是不可避免的,否則Hibernate就無(wú)法建立緩存中的對(duì)象與數(shù)據(jù)庫(kù)中記錄的對(duì)應(yīng)關(guān)系。
當(dāng)然,映射中還包括自然主鍵的映射方案。對(duì)于從頭設(shè)計(jì)的關(guān)系數(shù)據(jù)庫(kù)模型,應(yīng)該優(yōu)先考慮使用代理主鍵。
在關(guān)系數(shù)據(jù)庫(kù)中的主鍵可分為自然主鍵(具有業(yè)務(wù)含義)和代理主鍵(不具有業(yè)務(wù)含義),其中代理主鍵可以適應(yīng)不斷變化的業(yè)務(wù)需求,因此更加流行。代理主鍵通常為整數(shù)類型,與此對(duì)應(yīng),在持久化類中野應(yīng)該把OID定義為整數(shù)類型,Hibernate允許把OID定義為short、int和long類型,以及它們的包裝類型。
Hibernate提供了幾種內(nèi)置標(biāo)識(shí)符生成器,每一種標(biāo)識(shí)符生成器都有它的使用范圍,應(yīng)該根據(jù)所使用的數(shù)據(jù)庫(kù)和Hibernate應(yīng)用的軟件架構(gòu)來(lái)選擇合適的標(biāo)識(shí)符生成器。下面是幾種常用數(shù)據(jù)庫(kù)系統(tǒng)可使用的標(biāo)識(shí)符生成器:
MYSQL: identity increment hilo native
MS SQL Server: identity increment hilo native
Oracle: sequence seqhilo hilo increment native
夸平臺(tái)開發(fā): native
OID是為持久化層服務(wù)的,它不具備業(yè)務(wù)含義,而域?qū)ο笪挥跇I(yè)務(wù)邏輯層,用來(lái)描述業(yè)務(wù)模型。因此,在域?qū)ο笾袕?qiáng)行加入不具備業(yè)務(wù)含義的OID,可以看作是持久化層對(duì)業(yè)務(wù)邏輯層的一種滲透,但這種滲透是不可避免的,否則Hibernate就無(wú)法建立緩存中的對(duì)象與數(shù)據(jù)庫(kù)中記錄的對(duì)應(yīng)關(guān)系。
當(dāng)然,映射中還包括自然主鍵的映射方案。對(duì)于從頭設(shè)計(jì)的關(guān)系數(shù)據(jù)庫(kù)模型,應(yīng)該優(yōu)先考慮使用代理主鍵。
posted on 2005-11-14 10:43 Flyingis 閱讀(699) 評(píng)論(0) 編輯 收藏 所屬分類: Hibernate