嗨,我有一个Spring Boot Webflux应用程序,并使用mongo db作为后端。我想删除所有与某个查询匹配的文档,所以我创建了一个方法
fun deleteAllByInsertTimestampIsBefore(to: LocalDateTime): Mono<Void>
但是,当我想执行该方法时,会出现异常
reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.data.mapping.MappingException: Couldn't find PersistentEntity for type class java.lang.Void!
Caused by: org.springframework.data.mapping.MappingException: Couldn't find PersistentEntity for type class java.lang.Void!
at org.springframework.data.mapping.context.MappingContext.getRequiredPersistentEntity(MappingContext.java:79)
at org.springframework.data.mongodb.repository.query.DtoInstantiatingConverter.<init>(DtoInstantiatingConverter.java:62)
at org.springframework.data.mongodb.repository.query.ReactiveMongoQueryExecution$ResultProcessingConverter.convert(ReactiveMongoQueryExecution.java:176)
at org.springframework.data.mongodb.repository.query.ReactiveMongoQueryExecution$ResultProcessingExecution.execute(ReactiveMongoQueryExecution.java:146)
at org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery.execute(AbstractReactiveMongoQuery.java:125)
at org.springframework.data.mongodb.repository.query.AbstractReactiveMongoQuery.execute(AbstractReactiveMongoQuery.java:91)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:605)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodinvocation.proceed(ReflectiveMethodinvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodinvocation.proceed(ReflectiveMethodinvocation.java:186)
at org.springframework.aop.interceptor.ExposeinvocationInterceptor.invoke(ExposeinvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodinvocation.proceed(ReflectiveMethodinvocation.java:186)
at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodinvocation.proceed(ReflectiveMethodinvocation.java:186)
at org.springframework.data.repository.core.support.MethodinvocationValidator.invoke(MethodinvocationValidator.java:99)
at org.springframework.aop.framework.ReflectiveMethodinvocation.proceed(ReflectiveMethodinvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy91.deleteAllByInsertTimestampIsBefore(Unknown Source)
at com.x.sniper.app.registration.RegistrationRequestService.removeOldRegistrationRequest(RegistrationRequestService.kt:56)
at com.x.sniper.app.registration.SpringRegistrationService.removeOldRegistrationRequest(SpringRegistrationService.kt:76)
at com.x.sniper.app.database.ScheduledDatabasecleanup$setup$1.invoke(ScheduledDatabasecleanup.kt:32)
at com.x.sniper.app.database.ScheduledDatabasecleanup$setup$1.invoke(ScheduledDatabasecleanup.kt:17)
at com.x.sniper.app.database.ScheduledDatabasecleanup$scheduledDatabasecleanup$3.apply(ScheduledDatabasecleanup.kt:47)
at com.x.sniper.app.database.ScheduledDatabasecleanup$scheduledDatabasecleanup$3.apply(ScheduledDatabasecleanup.kt:17)
at reactor.core.publisher.FluxflatMap$flatMapMain.onNext(FluxflatMap.java:350)
at reactor.core.publisher.FluxflatMap$flatMapMain.drainLoop(FluxflatMap.java:664)
at reactor.core.publisher.FluxflatMap$flatMapMain.drain(FluxflatMap.java:540)
at reactor.core.publisher.FluxflatMap$flatMapInner.onSubscribe(FluxflatMap.java:924)
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
at reactor.core.publisher.Flux.subscribe(Flux.java:7921)
at reactor.core.publisher.FluxflatMap$flatMapMain.onNext(FluxflatMap.java:389)
at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)
at reactor.core.publisher.FluxInterval$IntervalRunnable.run(FluxInterval.java:123)
at reactor.core.scheduler.PeriodicWorkerTask.call(PeriodicWorkerTask.java:59)
at reactor.core.scheduler.PeriodicWorkerTask.run(PeriodicWorkerTask.java:73)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.Futuretask.runAndReset(Futuretask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFuturetask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFuturetask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
这是否意味着弹簧数据DeleteBy..
方法返回的结果与Mono有所不同