我尝试了两种类型的查询
通过存储库
@Query(value="{blockedAccounts : { $size : 1 }, updatedDate : { $gte : ?0 }}") public List<ChatRoom> findAllByAccountAndUpdatedDate(Date updatedDateGreaterThan);
通过正常的spring查询
public List<ChatRoom> findAll(Account account) { Query query = new Query(Criteria.where("accounts").is(account).and("updatedDate").gte(CommonUtils.getPreviousDate(1)). andOperator(Criteria.where("blockedAccounts").exists(true) , Criteria.where("blockedAccounts").size(0))); return findAll(query, ChatRoom.class);
两次都出现映射异常:
org.springframework.data.mapping.model.MappingException
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/CyberDust] threw exception [Request processing failed; nested exception is org.springframework.data.mapping.model.MappingException: No mapping metadata found for class java.lang.Integer] with root cause
org.springframework.data.mapping.model.MappingException: No mapping metadata found for class java.lang.Integer
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.createDBRef(MappingMongoConverter.java:684)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.toDBRef(MappingMongoConverter.java:277)
at org.springframework.data.mongodb.core.convert.QueryMapper.convertAssociation(QueryMapper.java:248)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:145)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:100)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1336)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1322)
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:495)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery$Execution.readCollection(AbstractMongoQuery.java:123)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery$CollectionExecution.execute(AbstractMongoQuery.java:146)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery.execute(AbstractMongoQuery.java:86)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:312)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy47.findAllByAccountAndUpdatedDate(Unknown Source)
at com.mentionmobile.cyberdust.dbservices.ChatRoomDbService.findAll(ChatRoomDbService.java:64)
和
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/CyberDust] threw exception [Request processing failed; nested exception is org.springframework.data.mapping.model.MappingException: No mapping metadata found for class java.lang.Integer] with root cause
org.springframework.data.mapping.model.MappingException: No mapping metadata found for class java.lang.Integer
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.createDBRef(MappingMongoConverter.java:684)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.toDBRef(MappingMongoConverter.java:277)
at org.springframework.data.mongodb.core.convert.QueryMapper.convertAssociation(QueryMapper.java:248)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:145)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:100)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1336)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1322)
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:495)
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:486)
at com.mentionmobile.cyberdust.dbservices.IDbServiceImpl.findAll(IDbServiceImpl.java:60)
at com.mentionmobile.cyberdust.dbservices.ChatRoomDbService.findAll(ChatRoomDbService.java:47)
我认为问题出在我的查询方法上,但不确定在哪里查看。
有人可以指出我正确的方向吗?