2010-11-22 59 views
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年開始營業,我正在尋找解決方法或完全不同的方法。有任何想法嗎?

+0

一個自定義方言可以做的伎倆? – martin 2010-11-24 14:17:52

回答

0

如果這些軟件包位於不同的項目模塊中,您可以嘗試將它們放入不同的模式中。這樣他們的表名就可以結束了,你不會在意。只是一個想法。

相關問題