问题:MongoDb数据库使用 findAll(Example example);涉及条件查询结果无数据,
-
排查:加上日志
logging:
level:
org.springframework.data.mongodb.core: DEBUG日志打印:查询条件 { “name” : { “KaTeX parse error: Expected 'EOF', got '}' at position 18: …gex" : ".*数据.*"}̲, "_class" : { …in” : [“com.lhq.business.entity.NovelBook”]}}
-
说明除了匹配了名称,默认还匹配了类信息,但是默认数据是通过其他渠道获取的,所以匹配不到数据
-
解决办法:忽略类信息字段匹配,其它方法类似
NovelBook book = new NovelBook(); book.setName("data"); ExampleMatcher matcher = ExampleMatcher.matching() .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING) .withIgnoreNullValues() .withIgnorePaths("_class"); Example<NovelBook> example = Example.of(book, matcher); List<NovelBook> all = novelBookRepository.findAll(example); all.forEach(System.out::println);