博為峰JavaEE技術(shù)文章 —— Hibernate域模型(2)

前章節(jié)已經(jīng)初步了解Hibernate域模型基礎(chǔ)知識(shí)。今天小博老師繼續(xù)帶領(lǐng)大家學(xué)習(xí)域模型命名策略。

將對(duì)象模型中的名稱映射到相應(yīng)的數(shù)據(jù)庫名稱是對(duì)象模型映射關(guān)系數(shù)據(jù)庫的一部分。Hibernate看這個(gè)2階段的過程:

l第一階段是從域模型映射確定一個(gè)合適的邏輯名稱。邏輯名稱可以由用戶明確指定(例如使用@Column或@Table),也可以由Hibernate通過ImplicitNamingStrategy隱式定義。

l第二個(gè)是將此邏輯名稱解析為由PhysicalNamingStrategy定義的物理名稱。

當(dāng)一個(gè)實(shí)體沒有顯式地命名映射到的數(shù)據(jù)庫表時(shí),我們需要隱式地確定該表的名稱?;蛘弋?dāng)一個(gè)特定的屬性沒有顯式地命名映射到數(shù)據(jù)庫的列時(shí),我們需隱式地確定該列的名稱。

org.hibernate.boot.model.naming.ImplicitNamingStrategy的作用是在映射未提供明確名稱時(shí)確定邏輯名稱,下圖示例說明:

Hibernate即時(shí)定義了多個(gè)ImplicitNamingStrategy實(shí)現(xiàn)。應(yīng)用程序也可以自定義實(shí)現(xiàn)。

有多種方法可以指定要使用的ImplicitNamingStrategy。 首先,應(yīng)用程序可以使用hibernate.implicit_naming_strategy配置設(shè)置來指定實(shí)現(xiàn):

ü預(yù)先定義的“簡短名稱”

ü引用實(shí)現(xiàn)org.hibernate.boot.model.naming.ImplicitNamingStrategy的子類

其次,應(yīng)用程序和集成可以利用org.hibernate.boot.MetadataBuilder#applyImplicitNamingStrategy來指定要使用的ImplicitNamingStrategy。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容