Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从不同的数据库获取映射实体?_Java_Mysql_Jpa_Multiple Databases - Fatal编程技术网

Java 如何从不同的数据库获取映射实体?

Java 如何从不同的数据库获取映射实体?,java,mysql,jpa,multiple-databases,Java,Mysql,Jpa,Multiple Databases,我从两个不同的数据库模式(db1和db2)映射了两个不同的(@OneToOne或@OneToMany)实体。 如果我尝试传统的方法,我得到的错误是关于“db1.entity2不存在””。因为entity1在db1中,entity2在db2中 我试图在findAll()之后用entity2对象填充所有entity1对象。但这需要很多时间(超过20秒) 有没有办法将它们相互映射或快速填充 注意:我不能每次都从数据库中获取所有的entity2数据。因为有很多。 注2:我将尝试通过id列表使用本机查询获

我从两个不同的数据库模式(
db1
db2
)映射了两个不同的(
@OneToOne
@OneToMany
)实体。 如果我尝试传统的方法,我得到的错误是关于“
db1.entity2不存在”
”。因为
entity1
db1
中,
entity2
db2

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

有没有办法将它们相互映射或快速填充

注意:我不能每次都从数据库中获取所有的
entity2
数据。因为有很多。 注2:我将尝试通过id列表使用
本机查询
获取所需的
entity2
对象

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

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

如果一个entity1有很多entity2,则将关系声明为LAZY。您可以使用JPQL/Criteria API来获取某些entity2,而不是本机查询


尝试一下Cmobilecom JPA,它在生成SQL时小巧、快速、智能。

事实上,问题并不是这样。我已经用模式配置了不同的数据库。我需要一些关于商业逻辑的知识。