我在我的 persistence.xml 中配置了一个持久性单元,但我有两个数据库。关于架构,这些数据库是相同的。我想做的是:
Persistence.createEntityManagerFactory("unit", primaryProperties);
Persistence.createEntityManagerFactory("unit", secondaryProperties);
属性包含不同的连接设置(用户、密码、jdbc url,...)。
我实际上尝试了这个,似乎休眠(我的 jpa 提供程序)在第二次调用中返回相同的实例,而不考虑属性。
我需要将配置复制到第二个单元吗?
我把它钉在了与我以前想象的不同的东西上。上述调用返回的 EntityManagers(和工厂)按预期工作,但getDelegate()
似乎是问题所在。我需要获得底层会话以支持我的应用程序中直接依赖于休眠 api 的遗留代码。我所做的是:
final Session session = (Session) manager.getDelegate();
但不知何故,即使使用在第二个数据库上运行的实体管理器,我也会收到一个在主数据库上运行的会话。