當我使用IntelliJ從存在數據庫模式生成持久性映射時,它將catalog
值作爲@Table
註釋的一部分。不幸的是,數據庫實例的名稱中有dev/test/prod environemnts的名稱,雖然我可以用傳遞給EntityManagerFactory
的映射覆蓋連接字符串,但在對BAR_TEST
實例執行查詢時仍然會得到Invalid object name 'BAR_DEV.dbo.FOO'
。如何覆蓋JPA實體的@ Table.catalog值?
我可以在運行時動態覆蓋catalog
的值,而無需執行全局搜索,並在生成實體後進行替換以手動刪除它?
@Entity
@Table(name = "FOO", schema = "dbo", catalog = "BAR_DEV")
public class Foo{ /* ... */ }
或使用orm.xml,其中一個值爲dev,一個用於測試,另一個用於prod。 –
恐怕你運氣不好http://stackoverflow.com/questions/3879607/change-table-name-of-an-entity-on-runtime –