我想知道MongoDB的spring数据是否可以处理多个数据库并执行跨数据库查询和插入。
例如,如果我想将EntityA
存储在数据库dbA
中,而EntityB
存储在dbB
中,而EntityA
则引用EntityB
, Spring Data会生成指向正确集合和正确数据库的正确DBRef
吗?
然后我能查询EntityA
然后最终懒惰获取EntityB
吗?
Morphia 缺乏此功能以及其他功能,我想知道Spring数据是否在进行大型潜水和放弃Morphia之前是否有这个功能。
答案 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);