Hibernate 当两个实体之间没有关系时,获取两个实体进行匹配和更新

Hibernate 当两个实体之间没有关系时,获取两个实体进行匹配和更新,hibernate,jpa,Hibernate,Jpa,我在hibernate上工作,遇到了这种情况 我有两张桌子。这两个表都包含店铺信息,如店铺名称、电话、地址等。这两个表都有从两个不同来源填充的数据,它们之间没有关系。有些数据与手机匹配。考虑到TableA是我的应用程序将要引用的信息的主数据,我需要将TableB中的详细信息与TableA进行比较,并在匹配时更新TableA中的详细信息 目前,我必须从2个实体获取所有数据,迭代、比较并在找到匹配项时更新。我现在有1500份参赛作品,但将来肯定会增加。有谁能提出更好的想法/方法。a)引入批处理,提取

我在hibernate上工作,遇到了这种情况

我有两张桌子。这两个表都包含店铺信息,如店铺名称、电话、地址等。这两个表都有从两个不同来源填充的数据,它们之间没有关系。有些数据与手机匹配。考虑到TableA是我的应用程序将要引用的信息的主数据,我需要将TableB中的详细信息与TableA进行比较,并在匹配时更新TableA中的详细信息


目前,我必须从2个实体获取所有数据,迭代、比较并在找到匹配项时更新。我现在有1500份参赛作品,但将来肯定会增加。有谁能提出更好的想法/方法。

a)引入批处理,提取表格a的一小部分,并在表格B中找到匹配项。但是,使用这种方法,您将在每次搜索整个TableB内容时进行搜索。b)在数据库上引入.cusom过程,并调用.it-在这种情况下,您将依赖于精确的sinlgle数据库实现,但是会获得一些性能优化。c)如果您可以像“更新TableA a set field=b.field from TableB b where b.phone=a.phone”这样描述您的处理过程,谢谢iiiya。测试环境当前在内存h2数据库中,但将移动到Postgres,因此不能依赖自定义过程。我正在考虑您在选项c中描述的一些解决方案,但我不确定如何实现这一点@SecondaryTables是一个选项,但是目前表之间没有关系,我无法修改它。那么
从B更新A
应该被描述为NativeQuery(JPQL不允许显式连接),并且不需要外键或类似于您在Where子句中指定条件的东西“A和B之间的匹配在哪里”。