2
給定一個大型應用程序的不同包中的幾個Hibernate實體,我喜歡確保沒有命名衝突。例如。可能會有一個Person
-fut包和另一個Person
-Entity在包欄中。軟件包特定的Hibernate NamingStrategy
現在,這兩個實體應該映射到表名是這樣的:
foo.Person --> FOO_PERSON bar.Person --> BAR_PERSON
我可以使用@表的註釋來實現這一目標:
@Table(name="FOO_PERSON")
public class Person ...
@Table(name="BAR_PERSON")
public class Person ...
不過,我想使用某種NamingStrategy,它會自動執行此操作。休眠提供了接口org.hibernate.cfg.NamingStrategy
。我試圖擴展DefaultNamingStrategy
,但是(儘管文檔中另有說明),您只會得到該類的非限定名稱,因此不會提供有關程序包名稱的信息。
有關於這個問題的JIRA問題(http://opensource.atlassian.com/projects/hibernate/browse/HHH-4312)。鑑於它自2007年開始營業,我正在尋找解決方法或完全不同的方法。有任何想法嗎?
一個自定義方言可以做的伎倆? – martin 2010-11-24 14:17:52