前章節(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ù)先定義的“簡(jiǎn)短名稱”
ü引用實(shí)現(xiàn)org.hibernate.boot.model.naming.ImplicitNamingStrategy的子類
其次,應(yīng)用程序和集成可以利用org.hibernate.boot.MetadataBuilder#applyImplicitNamingStrategy來指定要使用的ImplicitNamingStrategy还棱。