Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Hibernate 休眠Dao对外部数据库的引用?_Hibernate - Fatal编程技术网

Hibernate 休眠Dao对外部数据库的引用?

Hibernate 休眠Dao对外部数据库的引用?,hibernate,Hibernate,最初,我的所有实体都在一个数据库中。例如,我有两个表/类:A和B A与B之间有一对一的映射,因此我们可以执行A.getB()。这将在B表上生成一个查询 现在让我们假设我们的数据库变得过于拥挤/繁忙,我们发现B表非常大,但很少访问,所以我们将B移动到另一个表(或者甚至是另一个数据存储,例如noSQL)。现在我的问题是,如何维护hibernate提供的简单对象图遍历 最初,我可以拉一个A对象:A=DaoForA.get(id_代表A);然后,我可以在不考虑底层DB操作的情况下执行a.getB(),就

最初,我的所有实体都在一个数据库中。例如,我有两个表/类:A和B

A与B之间有一对一的映射,因此我们可以执行A.getB()。这将在B表上生成一个查询

现在让我们假设我们的数据库变得过于拥挤/繁忙,我们发现B表非常大,但很少访问,所以我们将B移动到另一个表(或者甚至是另一个数据存储,例如noSQL)。现在我的问题是,如何维护hibernate提供的简单对象图遍历

最初,我可以拉一个A对象:A=DaoForA.get(id_代表A);然后,我可以在不考虑底层DB操作的情况下执行a.getB(),就好像所有内容都已经在内存中一样。现在,随着B表移动到另一个DB,仍然可以实现这种透明的遍历吗?我假设A.hbm.xml应该在映射标记中更改,因为B表不再存在,所以A.hbm.xml不知道B的存在,所以无法进行自动检索

非常感谢
Yang

Hibernate实体不能与其他数据库中的实体关联。请参阅,而不是使用单独的数据库

  • 如果你真的需要这样做。如果很少使用B,那么将它放在同一个DB中不会有任何伤害。如果数据库太大,那么买一个新硬盘:硬件很便宜
  • 如果数据库可以集群化
  • 使用Hibernate编程“好像所有东西都已经在内存中”会导致灾难。您需要了解Hibernate在幕后的工作