我可以在OpenXava中拥有连接到不同数据库的实体吗?

时间:2015-09-04 19:36:56

标签: postgresql firebird openxava

我开始开发OpenXava应用程序来替换旧系统(使用Firebird数据库的Delphi程序),但新应用程序将Postgres作为数据存储。

我正在开发的应用程序现在需要对来自旧Firebird数据库的2个表进行只读访问(因此无需修改它们!),其他所有内容都将在新的Postgres数据库中(基本上,来自一个数据库的2个实体)和另外4个人。)

最终所有内容都将转移到Postgres,但是当集成发生时,我需要做这样的事情。

有没有办法在OpenXava中执行此操作?任何关于如何解决这个问题的建议将不胜感激。

1 个答案:

答案 0 :(得分: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