我正在使用mongodb-客户服务-数据示例(可在https://github.com/SpringSource/spring-data-document-examples上查阅)。
该示例使用@RelatedDocument将域对象跨数据库关联。它允许很好地存储和更新对象。
但是,我想对JPA数据库(在示例HSQLDB中)和MongoDB执行一个具有条件的查询。
这有可能吗?有没有任何地方的例子可以证明这是可能的?
与此问题没有直接关系的评论:
我的用例是,我们的应用程序是一个Oracle DB,但是我们现在开始接收半结构化数据。JPA实体可以由用户在某些约束条件下进行过滤,但我们希望将此功能扩展到半结构化数据。
似乎也有一些与QueryDSL和EclipseLink相竞争的技术,但我找不到任何关于跨数据库执行查询的方法。
在JPA中,似乎不可能进行跨数据库查询,因为每个数据库都有不同的PersistanceUnits。然而,mongodb交叉存储似乎否定了这个特殊的问题。
发布于 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可能需要跨所有集合碎片进行查询。但除此之外,我不认为它实际上是一个跨数据库函数,您没有这样的功能。
如果这没有帮助,请更详细地解释你想做什么。
https://stackoverflow.com/questions/13726194
复制相似问题