如果我在mongoDb中有没有“ _class”属性的记录,则无法通过示例查询。顺便说一下,我的数据库是由第三方非Java微服务填充的。示例:
{
"_id":"5ec3f00d98326d4c0ead815f",
"first_name":"firstName",
"last_name":"lastName"
}
然后MongoRepository.findAll(Example<S> example)
无法找到该记录。如果我手动添加正确的“ _class”字段,则所有操作均按预期进行。
有人解决了这个问题吗?Spring Data mongo v.3.0.0.RC1
好,在这种情况下,必须使用UntypedExampleMatcher:
ExampleMatcher matcher = UntypedExampleMatcher.matching()
.withIgnoreNullValues()
.withIgnoreCase();
Entity probe = ...
Example<Entity> entityExample = Example.of(probe, matcher);
entityRepo.findAll(entityExample);
但是这种方法由于某些原因无法正常工作。它运行时间很长,最后以异常结尾。
UPDATE:由于不正确的“探针”,我的请求试图从数据库中获取数千条记录,因此最终以异常结束。修复它之后,使用QBE方法进行搜索是一种魅力。