2012-12-05 135 views
1

我在使用DB2數據庫的項目中使用OpenJPA。JPA註釋中的動態模式

我們的DBA不允許同義詞。

我們在數據庫中的多個架構(例如針對不同的架構DEV & QA)

我的實體類看起來是這樣的。

@Entity 
@Table(name = "DEVSCHEMA.CUSTOMER") 
public class Customer implements Serializable { 

當我移動代碼,QA環境,然後我需要的實體變爲

@Entity 
@Table(name = "QASCHEMA.CUSTOMER") 
public class Customer implements Serializable { 

我想打一個二進制的兩個環境,不願改變實體類爲每個環境。有沒有可能的方法?

僅供參考 - 我在每個環境中也有多個模式,所以如果有任何默認模式選項,那麼我不能使用它。

回答

1

您可以在orm.xml文件中指定您的表,併爲dev和qa等使用不同的orm.xml文件。所有其他設置(屬性映射等)都將從您的Java註釋中獲取。

+0

嗨,布賴恩,感謝您的回答..如何指定在運行時使用哪個orm.xml。你有任何例子或鏈接? – user888263

+1

如果orm.xml文件位於META-INF目錄中(與persistence.xml文件一起),它應該會自動找到。或者,您可以在persistence.xml文件中指定orm.xml文件的名稱和位置。你可以編輯orm.xml文件,當你想要不同的模式;或者可以使用不同名稱的多個orm.xml文件並更改persistence.xml文件中的條目。 –