Spring数据通过“_class”值查找

时间:2015-01-20 14:42:55

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

我们正在使用spring数据mongo存储库来存储/检索文档。以下是我们获得的类的Java结构: 摘要A类 - >混凝土等级B和C. 我们使用save()方法编写文档。保存文档时,会保存存储classPath的“_class”变量。 现在,当我们尝试查询数据时,我们将获得B和C类的文档。以下是示例:

public List<B> findByName (String name);

当我们调用此方法时,列表(令人惊讶地)也包含C的对象。这可能是因为B和C有一个具有相同名称的属性。 我的问题是,如果我们想将结果限制为特定的类,是否可以使用Mongo存储库? 我们尝试使用findBy_Class,findByClass,但它抛出一个异常,说它无法在“B”中找到“class”成员。

返回类型(例如List&lt; B &gt;)是否有助于过滤对象?有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在查询对象上有一个&#34;限制&#34;仅返回给定类型的对象的方法。 http://docs.spring.io/spring-data/mongodb/docs/current/api/index.html?org/springframework/data/mongodb/core/MongoOperations.html 我想你可以这样做:

query.restrict(B.class).findByName(...)