Spring数据MongoDB多个数据库

时间:2013-03-01 04:34:37

标签: mongodb spring-data spring-data-mongodb

我想知道MongoDB的spring数据是否可以处理多个数据库并执行跨数据库查询和插入。

例如,如果我想将EntityA存储在数据库dbA中,而EntityB存储在dbB中,而EntityA则引用EntityB, Spring Data会生成指向正确集合和正确数据库的正确DBRef吗?

然后我能查询EntityA然后最终懒惰获取EntityB吗?

Morphia 缺乏此功能以及其他功能,我想知道Spring数据是否在进行大型潜水和放弃Morphia之前是否有这个功能。

1 个答案:

答案 0 :(得分:1)

DbRef注释具有db属性,以便您可以定义将存储引用的数据库。因此,假设这样的模型:

class EntityA {
  @DbRef(db = "dbB") EntityB entityB;
}

class EntityB { … }

interface ARepository extends Repository<EntityA, Long> { … }
interface BRepository extends Repository<EntityB, Long> { … }

你的客户端代码应该是这样的:

EntityB b = new EntityB(…);
EntityA a = new EntityA(…);
a.setB(b);

// store A manually first   
aRepository.save(a);
bRepository.save(b);