Spring Data Mongo API PropertyReferenceException

huangapple 未分类评论49阅读模式
英文:

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)

huangapple
  • 本文由 发表于 2020年6月29日 11:30:47
  • 转载请务必保留本文链接:https://java.coder-hub.com/62630777.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定