hibernate Dao引用外部DB?

时间:2012-02-16 18:02:48

标签: hibernate

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

A与B有一对一的映射,所以我们可以做A.getB()。这会在B表上生成一个查询。

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

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

非常感谢 杨

1 个答案:

答案 0 :(得分:0)

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

  1. 如果你真的需要这样做。如果很少使用B,则将它放在同一个DB中不会造成任何伤害。如果数据库太大,那么购买一个新的硬盘:硬件很便宜。
  2. 如果数据库可以群集。
  3. 使用Hibernate进行编程“好像所有内容已经在内存中”是灾难的一种方法。您需要了解Hibernate在幕后所做的事情。