2015-09-04 59 views
0

我開始開發OpenXava應用程序來替換舊系統(使用Firebird數據庫的Delphi程序),但新應用程序將Postgres作爲數據存儲。我可以擁有連接到OpenXava中不同數據庫的實體嗎?

我現在正在開發的應用程序需要對舊Firebird數據庫中的2個表進行只讀訪問(因此不會對它們進行任何修改!),其他所有內容都將位於新的Postgres數據庫中(基本上,數據庫和約4從另一個)。

最終所有的東西都會被移動到Postgres,但是當整合正在發生時,我需要做這樣的事情。

有沒有辦法在OpenXava中做到這一點?任何建議如何解決這個問題將不勝感激。

+0

考慮通過PostgreSQL的做,使用像'odbc_fdw'外國數據包裝。因此,對於應用程序來說,它們看起來像只是PostgreSQL表,PostgreSQL在後臺從Firebird中獲取數據。 –

回答

1

您可以在persistence.xml中針對舊數據庫定義第二個持久性單元,然後當您需要訪問舊數據庫時,使用JPA syntaxt而不是XPersistence.getManager()來獲得一個針對您的舊管理器的管理器數據庫,即:

EntityManagerFactory f = 
    Persistence.createEntityManagerFactory("firebird"); 
EntityManager manager = f.createEntityManager(); 
manager.getTransaction().begin(); 

// Your code 

manager.getTransaction().commit(); 
manager.close(); // You have to close 
相關問題