今天小博老師繼續(xù)帶領(lǐng)大家學習域模型命名的物理命名策略。許多組織定義關(guān)于數(shù)據(jù)庫對象(表本姥,列,外鍵等)的命名杭棵。物理命名策略是幫助實現(xiàn)這樣的命名規(guī)則婚惫,而不必將顯式名稱硬編碼到映射中氛赐。
隱式命名策略的目的是確定在沒有明確指定的情況下把屬性名與列明對應(yīng)起來,比如:把名為accountNumber的屬性映射到邏輯列名稱accountNumber先舷。物理命名策略的目的是使用更為簡潔命名規(guī)則艰管。比如,accountNumber使用物理命名規(guī)則時蒋川,物理列名稱應(yīng)該縮寫為acct_num牲芋。
的確,acct_num的定義可以在隱式命名策略中處理捺球。但問題應(yīng)該分開來看缸浦,不管屬性是否顯式指定列名稱或是否隱式確定都可以應(yīng)用物理命名策略。如果未給出顯式名稱氮兵,則應(yīng)該使用隱式命名策略裂逐。至于如何選擇取決于需求和意圖。
默認是將邏輯名作為物理名稱泣栈。然而卜高,應(yīng)用程序可以定義自定義實現(xiàn)Physicalnamingstrategy。下面是PhysicalNamingStrategy例子:
l使用下劃線而不是駱駝命名法
l用標準縮寫代替某些單詞
有多種方法來指定要使用的PhysicalNamingStrategy南片。 首先掺涛,應(yīng)用程序可以使用hibernate.physical_naming_strategy配置設(shè)置來指定實現(xiàn):
l引用實現(xiàn)org.hibernate.boot.model.naming.PhysicalNamingStrategy的類
l實現(xiàn)org.hibernate.boot.model.naming.PhysicalNamingStrategy類
其次,應(yīng)用程序和集成可以利用org.hibernate.boot.MetadataBuilder#applyPhysicalNamingStrategy疼进。