【问题标题】:Spring data MongoDB multiple databasesSpring数据MongoDB多数据库
【发布时间】:2013-03-01 04:34:36
【问题描述】:

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

例如,如果我想将 EntityA 存储在 DB 中 dbAEntityBdbBEntityA 有对 EntityB 的引用,Spring Data 会生成正确的 DBRef 指向正确的集合和正确的数据库?

然后我是否能够查询 EntityA 并最终延迟获取 EntityB

Morphia 缺少此功能以及其他功能,我想知道 Spring 数据在大跌眼镜并放弃 Morphia 之前是否拥有它。

【问题讨论】:

  • 我也对答案感兴趣,这是一个有价值的问题。但是,我认为您应该仅在类似 Hello World 的设置上尝试一下,并将您的发现作为答案报告……我认为这将有助于该页面的未来发现者!

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


【解决方案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);

【讨论】:

  • 谢谢奥利弗。我尝试在注释上设置 db 属性,但似乎 DBRef 的 $db 字段未写入数据库中。这是正常的吗? Spring 是否有自己的方式从没有 $db 字段的第二个数据库中取回实体?谢谢。
猜你喜欢
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
相关资源
最近更新 更多