I am trying to query mongodb using it's regex functionality. I am using Spring boot with mongo repository. The implemented code is as below -
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);
But this fails with an exception -
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)
I want to understand the reason behind this problem, and if possible, a solution so as to solve this.