【问题标题】:How to get mapped entities from different databases?如何从不同的数据库中获取映射的实体?
【发布时间】:2020-10-18 11:18:03
【问题描述】:

我有来自两个不同数据库模式(db1db2)的两个不同(entity1entity2)映射(@OneToOne@OneToMany)实体。 如果我尝试传统方式,我会得到关于“db1.entity2 does not exist”的错误。因为entity1db1 中,而entity2db2 中。

我尝试在findAll(); 之后用entity2 对象填充所有entity1 对象。但这需要很多时间(超过 20 秒)

有什么方法可以将它们相互映射或快速填充?

注意:我无法每次都从数据库中获取所有entity2 数据。因为有很多。 注2:我会尝试通过id列表获取entity2我需要的对象,Native Query

我使用最新版本的 Spring Boot JPA Projection、MySQL db 和 Java 11。

【问题讨论】:

    标签: java mysql jpa multiple-databases


    【解决方案1】:

    您可以在 JPA 注释或 xml 映射中为 entity1 添加 schema="db1",为 entity2 添加 schema="db2"。

    如果实体1 有很多实体2,则将关系声明为LAZY。您可以使用 JPQL/Criteria API 来获取某些 entity2(s) 而不是原生查询。

    试试 Cmobilecom JPA,它体积小、速度快、生成 SQL 智能。

    【讨论】:

    • 其实问题不在于。我已经使用模式配置了不同的数据库。我需要一些关于业务逻辑的东西。
    猜你喜欢
    • 1970-01-01
    • 2019-07-26
    • 2010-10-07
    • 2015-04-09
    • 2021-10-23
    • 2011-01-01
    • 2017-02-08
    • 2019-11-11
    • 2013-05-07
    相关资源
    最近更新 更多