JPA多个数据库-简单示例/最佳模式



我有2个mySql数据库,我正在尝试在一个简单的Java EE Web应用程序中使用。为了简化场景,模式是相同的,例如,让我们取每个模式中的Customer表。

我试图决定在2个数据库的两个客户表返回"联合"结果到我的接口的最佳方式。到目前为止,我遇到过eclipselink分区作为一种可能的方法。

作为替代方案,是否有任何方法可以"合并"2个实体类/EJB/托管bean的"内容"?

您必须决定将两个数据库统一在哪一边-在数据库端还是在应用程序端。

首先,您可以按照@Mark Robinson的建议为应用程序提供统一视图。在这种情况下,您可以使用任何可用的数据库机制,对于应用程序来说,它只是一个简单的新实体。

对于第二个,您可以使用2个不同的PersistenceContext,并从您的应用程序中的任何一个获取实体。

如果模式确实相同,那么可能能够使用分区,但这会产生一些问题。

分区通常根据技术界限(范围、校验和等)进行切片。我怀疑这些分区是出于其他原因(例如,HR在一个DB中,工程在另一个DB中)。这将导致分区问题,因为它不知道要查找哪个DB,或者要写入哪个DB。

在您的情况下,我建议创建一个"union"模式,将数据从两个数据库导入到一个统一的数据库中。它不是完美的,但它会给你一个合适的查询界面。你可能想看看MySQL是否有类似于Oracle的远程接口功能

最新更新