英文:
Spring Data Mongo API PropertyReferenceException
问题
我正在使用 spring-boot(2.0.8.RELEASE)并连接到Mongo DB。我试图使用MongoTemplate按名称字段查找雇员文档。
> - 在查询中:
Collection<String> names = getNames();
Query query = new Query(Criteria.where("name").in(names ));
mongoTemplate.find(query, Employee.class)
我遇到了 **找不到类型为Employee的$in属性!是否是指'_id'?** 异常。
为什么会出现这个问题?但响应没有影响,按预期工作。
**异常**:
> org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:94)
> org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:358)
> org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:334)
> org.springframework.data.mapping.PropertyPath.lambda$
> org.springframework.data.mapping.PropertyPath$$Lambda$.apply
> java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:324)
> org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:269)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.getPath(QueryMapper.java:949)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.<init>(QueryMapper.java:832)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.with(QueryMapper.java:843)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.with(QueryMapper.java:789)
> org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:292)
> org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObjectForField(QueryMapper.java:230)
> org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:141)
> org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2252)
> org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2242)
> org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:771)
> org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:757)
> com.demo.employee.repositories.EmployeeRepositoryImpl.getEmployeeDetails(EmployeeRepositoryImpl.java:62)
> com.demo.employee.repositories.EmployeeRepositoryImpl$$FastClassBySpringCGLIB$$d3e7ecc7.invoke(<generated>)
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
> com.demo.employee.repositories.EmployeeRepositoryImpl$$EnhancerBySpringCGLIB$$.getEmployeeDetails
> com.demo.employee.services.EmpService.getEmpFromRepo(EmpService.java:304)
> com.demo.employee.services.EmpService.getMultipleSupplyItems(EmpService.java:347)
> com.demo.employee.services.EmpService$$FastClassBySpringCGLIB$$6fbf28bd.invoke(<generated>)
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
> com.demo.employee.services.EmpService$$EnhancerBySpringCGLIB$$.getMultipleSupplyItems
> com.demo.employee.controllers.EmpController.getEmpCollectionDetails(EmpController.java:88)
> com.demo.employee.controllers.EmpController$$FastClassBySpringCGLIB$$2d4fd3b1.invoke(<generated>)
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:119)
英文:
I am using spring-boot(2.0.8.RELEASE) and connecting Mongo DB. I am trying to find employee document by name field using MongoTemplate.
> - In Query
Collection<String> names = getNames();
Query query = new Query(Criteria.where("name").in(names ));
mongoTemplate.find(query, Employee.class)
I am facing No property $in found for type Employee! Did you mean '_id'? exception.
Why I am getting this issue ? But no impact in response, working as expected.
Exception
> org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:94)
> org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:358)
> org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:334)
> org.springframework.data.mapping.PropertyPath.lambda$
> org.springframework.data.mapping.PropertyPath$$Lambda$.apply
> java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:324)
> org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:269)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.getPath(QueryMapper.java:949)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.<init>(QueryMapper.java:832)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.with(QueryMapper.java:843)
> org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.with(QueryMapper.java:789)
> org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:292)
> org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObjectForField(QueryMapper.java:230)
> org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:141)
> org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2252)
> org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:2242)
> org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:771)
> org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:757)
> com.demo.employee.repositories.EmployeeRepositoryImpl.getEmployeeDetails(EmployeeRepositoryImpl.java:62)
> com.demo.employee.repositories.EmployeeRepositoryImpl$$FastClassBySpringCGLIB$$d3e7ecc7.invoke(<generated>)
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
> com.demo.employee.repositories.EmployeeRepositoryImpl$$EnhancerBySpringCGLIB$$.getEmployeeDetails
> com.demo.employee.services.EmpService.getEmpFromRepo(EmpService.java:304)
> com.demo.employee.services.EmpService.getMultipleSupplyItems(EmpService.java:347)
> com.demo.employee.services.EmpService$$FastClassBySpringCGLIB$$6fbf28bd.invoke(<generated>)
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
> com.demo.employee.services.EmpService$$EnhancerBySpringCGLIB$$.getMultipleSupplyItems
> com.demo.employee.controllers.EmpController.getEmpCollectionDetails(EmpController.java:88)
> com.demo.employee.controllers.EmpController$$FastClassBySpringCGLIB$$2d4fd3b1.invoke(<generated>)
> org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
> org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:119)
专注分享java语言的经验与见解,让所有开发者获益!
评论