Spring Data通过"_class"值查找

7
我们正在使用Spring Data Mongo Repositories来存储/检索文档。以下是我们拥有的类的Java结构: 抽象类A->具体类B和C 我们使用save()方法编写文档。当保存文档时,会保存“_class”变量,该变量存储了类路径。 现在,当我们尝试查询数据时,我们得到了B和C类的文档。以下是示例:
public List<B> findByName (String name);

当我们调用这个方法时,列表里(令人惊讶的是)也包含了C类的对象。可能是因为B和C有一个相同名称的属性。
我的问题是,如果我们想要限制结果只返回特定的类,使用Mongo repository是否可行?我们尝试使用findBy_Class、findByClass,但它抛出了一个异常,说无法在“B”中找到“class”成员。
难道返回类型(例如List<B>)不能帮助过滤对象吗?您有什么想法吗?
提前感谢您。

1个回答

0

3
感谢您的回答。 我正在使用MongoRepository而不是Mongo操作对象。因此,我只需在接口中定义方法,这些方法将根据此URL中所述的方式转换为查询:http://docs.spring.io/spring-data/data-document/docs/current/reference/html/#repositories.query-methods.query-lookup-strategies。不知道是否有任何方法可以在这里指定类。 - Darshan Mehta
我来晚了,但是当搜索“_class”和MongoRepository时,这个问题在谷歌的排名很高。我认为正确的解决方案在这里:https://dev59.com/-Irda4cB1Zd3GeqPK1OB 我将此问题标记为重复,以便将用户重定向到其他答案。 - marco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接