2013-03-01 69 views
0

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

例如,如果我想保存在DB dbAEntityAEntityBdbBEntityA已经到EntityB的引用,将春季数据生成正确DBRef指向正确的收集和正确的数据库?

然后我能查询EntityA,然后最终懒惰取EntityB

吗啡缺乏这种功能与其他的东西,我在想,如果春数据使得大跳水和开沟吗啡前了吧。

+0

我也会对这个答案感兴趣,这是一个很有价值的问题。不过,我认为你应该像设置一样在Hello World上试试,并将你的发现作为答案报告回去......我认为这将有助于本页面的未来发现者! – ppeterka 2013-03-01 11:01:19

回答

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); 
+0

谢谢奥利弗。我尝试在注释中设置db属性,但似乎DBRef的$ db字段未写入数据库。这是正常的吗? Spring是否有自己的方式从第二个数据库中取回没有$ db字段的实体?谢谢。 – azpublic 2013-03-04 15:53:57