Spring Data Mongo:对于没有“ _class”属性的记录,无法通过示例查询(QBE)

问题描述 投票:0回答:1

如果我在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

spring-data-mongodb
1个回答
0
投票

好,在这种情况下,必须使用UntypedExampleMatcher:

ExampleMatcher matcher = UntypedExampleMatcher.matching()
        .withIgnoreNullValues()
        .withIgnoreCase();
Entity probe = ...

Example<Entity> entityExample = Example.of(probe, matcher);
entityRepo.findAll(entityExample);

但是这种方法由于某些原因无法正常工作。它运行时间很长,最后以异常结尾。

UPDATE:由于不正确的“探针”,我的请求试图从数据库中获取数千条记录,因此最终以异常结束。修复它之后,使用QBE方法进行搜索是一种魅力。

© www.soinside.com 2019 - 2024. All rights reserved.