【发布时间】:2016-11-16 02:21:36
【问题描述】:
我有一个 Java 应用程序,它使用 Spring data 从 mongo DB 检索数据。我有一个案例,我想从 mongo 集合中检索所有对象,其中 isDeleted 标志设置为 false。
我尝试按照https://github.com/spring-projects/spring-data-examples/tree/master/mongodb/query-by-example 中的说明使用 org.springframework.data.domain.ExampleMatcher,但它不起作用(返回 0 条记录)。下面是我尝试的代码 sn-p。
注意:我尝试在 sn-p 下方添加和删除 withIgnoreNullValues() 。但没有帮助。
public List<Adns> getAll(){
Adns matcherObject = new Adns();
matcherObject.setDeleted(false);
ExampleMatcher matcher = ExampleMatcher.matching().withIgnoreNullValues().
withMatcher("isDeleted", exact());
Example<Adns> example = Example.of(matcherObject,matcher);
return adnsRepository.findAll(example);
}
我能够成功检索没有该布尔过滤器的所有对象。下面是工作代码。
public List<Adns> getAll(){
return adnsRepository.findAll();
}
【问题讨论】:
-
你试过
findByDeletedIsFalse()吗? -
感谢您的快速回复。但是,我不确定您的建议是什么?我没有看到任何像你提到的那样被 org.springframework.data.mongodb.repository.MongoRepository 公开的方法。你能解释一下吗?
-
阅读文档。只需在您的
AdnsRepository上定义该方法,它就会为您神奇地创建。 -
哇。太棒了。工作就像一个魅力。非常感谢@chrylis。
标签: java spring mongodb spring-data spring-data-mongodb