java - Delete a particular item from a container in cosmos db java
问题描述
I have tried:
PartitionKey partitionKey = new PartitionKey("/sid");
CosmosItemRequestOptions options = new CosmosItemRequestOptions();
cosmosContainer.deleteItem("dbs/Student/colls/Stu/docs/104", partitionKey, options);
But getting error:
Aug 24, 2020 4:47:15 PM com.azure.cosmos.implementation.ClientRetryPolicy shouldRetry
SEVERE: locationEndpoint is null because ClientRetryPolicy::onBeforeRequest(.) is not invoked, probably request creation failed due to invalid options, serialization setting, etc.
Aug 24, 2020 4:47:15 PM com.azure.cosmos.implementation.RenameCollectionAwareClientRetryPolicy lambda$shouldRetry$2
SEVERE: onBeforeSendRequest is not invoked, encountered failure due to request being null
java.lang.IllegalArgumentException: Entity with the specified id does not exist in the system.
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:190)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:218)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:243)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:292)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.create(RxDocumentServiceRequest.java:510)
at com.azure.cosmos.implementation.RxDocumentClientImpl.deleteDocumentInternal(RxDocumentClientImpl.java:1431)
at com.azure.cosmos.implementation.RxDocumentClientImpl.lambda$deleteDocument$33(RxDocumentClientImpl.java:1418)
at com.azure.cosmos.implementation.RxDocumentClientImpl$$Lambda$525.0000000012AE2210.call(Unknown Source)
at com.azure.cosmos.implementation.ObservableHelper.lambda$inlineIfPossibleAsObs$1(ObservableHelper.java:44)
at com.azure.cosmos.implementation.ObservableHelper$$Lambda$198.00000000127DD800.call(Unknown Source)
at com.azure.cosmos.implementation.BackoffRetryUtility.lambda$executeRetry$0(BackoffRetryUtility.java:35)
at com.azure.cosmos.implementation.BackoffRetryUtility$$Lambda$80.00000000112EA850.get(Unknown Source)
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44)
at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:79)
at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46)
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121)
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2344)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:162)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:103)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90)
at reactor.core.publisher.MonoCurrentContext.subscribe(MonoCurrentContext.java:35)
at reactor.core.publisher.Mono.subscribe(Mono.java:4213)
at reactor.core.publisher.Mono.block(Mono.java:1679)
at com.azure.cosmos.CosmosContainer.blockDeleteItemResponse(CosmosContainer.java:236)
at com.azure.cosmos.CosmosContainer.deleteItem(CosmosContainer.java:344)
at com.cosmos.poc.POC.deleteItem(POC.java:160)
at com.cosmos.poc.POC.printListContainers(POC.java:72)
at com.cosmos.poc.POC.printListDataBases(POC.java:54)
at com.cosmos.poc.POC.main(POC.java:30)
Exception in thread "main" java.lang.IllegalArgumentException: Entity with the specified id does not exist in the system.
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:190)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:218)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:243)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.<init>(RxDocumentServiceRequest.java:292)
at com.azure.cosmos.implementation.RxDocumentServiceRequest.create(RxDocumentServiceRequest.java:510)
at com.azure.cosmos.implementation.RxDocumentClientImpl.deleteDocumentInternal(RxDocumentClientImpl.java:1431)
at com.azure.cosmos.implementation.RxDocumentClientImpl.lambda$deleteDocument$33(RxDocumentClientImpl.java:1418)
at com.azure.cosmos.implementation.RxDocumentClientImpl$$Lambda$525.0000000012AE2210.call(Unknown Source)
at com.azure.cosmos.implementation.ObservableHelper.lambda$inlineIfPossibleAsObs$1(ObservableHelper.java:44)
at com.azure.cosmos.implementation.ObservableHelper$$Lambda$198.00000000127DD800.call(Unknown Source)
at com.azure.cosmos.implementation.BackoffRetryUtility.lambda$executeRetry$0(BackoffRetryUtility.java:35)
at com.azure.cosmos.implementation.BackoffRetryUtility$$Lambda$80.00000000112EA850.get(Unknown Source)
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44)
at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:79)
at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46)
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121)
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2344)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:162)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:103)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90)
at reactor.core.publisher.MonoCurrentContext.subscribe(MonoCurrentContext.java:35)
at reactor.core.publisher.Mono.subscribe(Mono.java:4213)
at reactor.core.publisher.Mono.block(Mono.java:1679)
at com.azure.cosmos.CosmosContainer.blockDeleteItemResponse(CosmosContainer.java:236)
at com.azure.cosmos.CosmosContainer.deleteItem(CosmosContainer.java:344)
at com.cosmos.poc.POC.deleteItem(POC.java:160)
at com.cosmos.poc.POC.printListContainers(POC.java:72)
at com.cosmos.poc.POC.printListDataBases(POC.java:54)
at com.cosmos.poc.POC.main(POC.java:30)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
at reactor.core.publisher.Mono.block(Mono.java:1680)
... 6 more
Aug 24, 2020 4:52:11 PM com.azure.cosmos.implementation.RxDocumentClientImpl$1 getDatabaseAccountFromEndpoint
解决方案
cosmosContainer.deleteItem("", new PartitionKey(), options);
您可以删除 options 参数,因为您没有配置它。
cosmosContainer.deleteItem("", new PartitionKey());
推荐阅读
- python-3.7 - 为什么打印后excel进程保持打开状态
- c++ - C++ - 获取 Windows 版本
- java - 分割多边形形状Java
- json - 无法从 ajax 调用中获取参数到控制器剃须刀
- regex - PySpark 使用 Regexp_extract 和 Col 创建数据集
- python - Python Pytrends 代理
- c# - 在插入 C# 和 T-SQL 之后尊重条件
- c++ - 有没有办法使用带有非常量 int 的 std::get(std::tuple) 作为模板参数?
- javascript - 如何在茉莉花的afterEach函数中调用describe或it函数
- flutter - 有没有办法判断一个手势当前在 Flutter 中是否处于活动状态?