gpt4 book ai didi

java - 与 java 模式一起使用时,spring + mongodb 的正则表达式查询失败

转载 作者:行者123 更新时间:2023-12-01 18:48:15 25 4
gpt4 key购买 nike

我正在尝试使用 mongodb 的正则表达式功能来查询它。我正在将 Spring boot 与 mongo 存储库一起使用。实现的代码如下 -

Criteria criteria = Criteria.where(field).regex(Pattern.compile(value, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE));
Query query = new Query();
query.addCriteria(criteria);
mongoTemplate.find(query, DummyClass.class, collectionName);

但这会失败并出现异常 -

org.springframework.data.mapping.MappingException: Couldn't find PersistentEntity for type class java.util.regex.Pattern!
at org.springframework.data.mapping.context.MappingContext.getRequiredPersistentEntity(MappingContext.java:76)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:435)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:391)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.convertToMongoType(MappingMongoConverter.java:1194)
at org.springframework.data.mongodb.core.convert.QueryMapper.delegateConvertToMongoType(QueryMapper.java:441)
at org.springframework.data.mongodb.core.convert.QueryMapper.convertId(QueryMapper.java:560)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedValue(QueryMapper.java:349)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObjectForField(QueryMapper.java:231)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:140)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2235)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2225)
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:770)

我想了解这个问题背后的原因,如果可能的话,希望有一个解决方案来解决这个问题。

最佳答案

这是固定的。在向 MongoDB 提供配置时,我想为其提供自定义转换列表,其中我想对特定类使用自定义转换器。我提供的是CustomConversions。将返回类型保持为 CustomConversions,我实际上返回了子类 MongoCustomConversios,如下所示 -

@Bean
@Override
public CustomConversions customConversions() {
List<Converter<?, ?>> converterList = new ArrayList<>();
converterList.add(new Converter1());
converterList.add(new Converter2());
converterList.add(new Converter3());

return new MongoCustomConversions(converterList);
}

这解决了我遇到的问题。

关于java - 与 java 模式一起使用时,spring + mongodb 的正则表达式查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59780337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com