首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring /MongoDB交叉存储库,查询可以跨两个数据库吗?

问使用Spring /MongoDB交叉存储库,查询可以跨两个数据库吗?
EN

Stack Overflow用户
提问于 2012-12-05 15:08:10
回答 1查看 1.5K关注 0票数 4

我正在使用mongodb-客户服务-数据示例(可在https://github.com/SpringSource/spring-data-document-examples上查阅)。

该示例使用@RelatedDocument将域对象跨数据库关联。它允许很好地存储和更新对象。

但是,我想对JPA数据库(在示例HSQLDB中)和MongoDB执行一个具有条件的查询。

这有可能吗?有没有任何地方的例子可以证明这是可能的?

与此问题没有直接关系的评论:

我的用例是,我们的应用程序是一个Oracle DB,但是我们现在开始接收半结构化数据。JPA实体可以由用户在某些约束条件下进行过滤,但我们希望将此功能扩展到半结构化数据。

似乎也有一些与QueryDSL和EclipseLink相竞争的技术,但我找不到任何关于跨数据库执行查询的方法。

在JPA中,似乎不可能进行跨数据库查询,因为每个数据库都有不同的PersistanceUnits。然而,mongodb交叉存储似乎否定了这个特殊的问题。

EN

回答 1

Stack Overflow用户

发布于 2013-04-21 05:52:50

我从来没有使用过Spring数据JPA,但是如果JPA不能做到这一点,我怀疑Spring数据会提供这样的功能。

我不知道你对mongodb交叉商店的理解。因此,我将在短期内解释mongodb可以做什么和不能做什么。

使用mongodb,您不能跨多个集合(表)进行查询,因此不能与普通mongodb连接。因此,@RelatedDocument是Spring Data提供的一个特性。相关文档可能是嵌入的(不知道Spring数据是否支持这一点),也可能是其他集合(和数据库)中文档的一些简单DBRef。使用DBRef,您只能对@RelatedDocument字段(如_id、集合和数据库)进行查询,而不能查询实际引用的文档属性。

这意味着mongodb不允许在单个查询中搜索跨数据库,因为您不能跨集合执行查询,因此也不能针对数据库执行此操作。您所拥有的唯一跨存储功能是分片集合。这样,您就可以通过shardkey将集合分布到多个节点上。为了完成查询,MongoDB可能需要跨所有集合碎片进行查询。但除此之外,我不认为它实际上是一个跨数据库函数,您没有这样的功能。

如果这没有帮助,请更详细地解释你想做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13726194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档