具体类 B 和 C我们正在使用 save() 方法编写文档。保存文档时-6ren">
gpt4 book ai didi

mongodb - Spring数据按 "_class "值查找

转载 作者:IT老高 更新时间:2023-10-28 13:23:40 26 4
gpt4 key购买 nike

我们正在使用 spring data mongo 存储库来存储/检索文档。以下是我们得到的类的 Java 结构:抽象类 A -> 具体类 B 和 C我们正在使用 save() 方法编写文档。保存文档时,会保存存储类路径的“_class”变量。现在,当我们尝试查询数据时,我们得到了 B 类和 C 类的文档。以下是示例:

public List<B> findByName (String name);

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

返回类型(例如 List<B>)不应该有助于过滤对象吗?有什么想法吗?

提前致谢。

最佳答案

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

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

关于mongodb - Spring数据按 "_class "值查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com