我有 2 个我正在尝试在一个简单的 Java EE Web 应用程序中使用的 mySql 数据库。为了简化场景,模式是相同的,例如,让我们在每个模式中使用Customer表。
我正在尝试为两个数据库中的两个客户表确定将“联合”结果返回到我的界面的最佳方式。到目前为止,我已经将 eclipselink 分区作为一种可能的途径。
作为替代方案,有没有办法“合并”2个实体类/EJB/托管Bean的“内容”?
我有 2 个我正在尝试在一个简单的 Java EE Web 应用程序中使用的 mySql 数据库。为了简化场景,模式是相同的,例如,让我们在每个模式中使用Customer表。
我正在尝试为两个数据库中的两个客户表确定将“联合”结果返回到我的界面的最佳方式。到目前为止,我已经将 eclipselink 分区作为一种可能的途径。
作为替代方案,有没有办法“合并”2个实体类/EJB/托管Bean的“内容”?
您必须决定要在哪一侧联合 2 个数据库 - 在数据库或应用程序一侧。
首先,您可以按照@Mark Robinson 的建议为应用程序提供统一的视图。在这种情况下,您可以使用任何可用的数据库机制,对于应用程序来说,它只是一个简单的新实体。
第二,您可以PersistenceContext
在应用程序中使用 2 个不同的并从其中一个获取实体。
如果模式是真正相同的,那么您可能能够摆脱使用分区,但这样做会有一些问题。
分区通常在技术边界(范围、校验和等)上进行切片。我怀疑这些是由于其他原因而被划分的(即,一个数据库中的 HR,另一个数据库中的工程)。这将导致分区出现问题,因为它不知道要查看哪个数据库或要写入哪个数据库。
在您的情况下,我建议您创建一个“联合”模式,将两个数据库中的数据导入到一个统一的数据库中。它并不完美,但它会给你一个合适的查询界面。您可能想查看 MySQL 是否具有类似于 Oracle 的远程接口功能。