gpt4 book ai didi

java - 执行 findAll() 时 Spring boot 和 couchbase 中出现 InvalidDataAccessResourceUsageException

转载 作者:行者123 更新时间:2023-11-30 05:56:50 25 4
gpt4 key购买 nike

我喜欢从 Couchbase 存储桶中获取某种类型的所有文档。

我创建了一个扩展 CouchbaseRepositoryCatRepository,因此我继承了 findAll() 方法。

当运行程序并到达以下行时:

Iterable<Cat> all = catRepository.findAll();

我收到以下错误:

Servlet.service() for servlet [dispatcherServlet] in context with path [] 
threw exception [Request processing failed; nested exception is
org.springframework.dao.InvalidDataAccessResourceUsageException: View cat/all does not exist.; nested exception is
com.couchbase.client.java.error.ViewDoesNotExistException: View cat/all does not exist.] with root cause

rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext
value: com.couchbase.client.java.document.json.JsonObject.class
at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:77) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.producers.SingleProducer.request(SingleProducer.java:65) ~[rxjava-1.2.7.jar:1.2.7]
at rx.Subscriber.setProducer(Subscriber.java:211) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted(OperatorSingle.java:113) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:281) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) ~[rxjava-1.2.7.jar:1.2.7]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_161]
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) ~[na:1.8.0_161]
at java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:1.8.0_161]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_161]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_161]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]

这是存储库(无)代码:

public interface CatsRepository extends CouchbaseRepository<Cat, String> {
// nothing here, as the findAll() is inherited
}

最佳答案

findAll 需要在 Couchbase 本身上创建一个 View 。

您可以通过 Couchbase UI 执行此操作:

  • 登录 Couchbase UI
  • 转到索引(左侧菜单)
  • 观看次数(中上)
  • 选择您的存储桶(右上角下拉菜单)
  • 添加 View (右上角)
  • 使用与您的对象 (foo) 匹配的名称和 View 名称 all,因此文档名为 _design/[bucket_name]/foo 并查看 全部
  • (可选)编辑 View ,替换 map 代码:
    function (doc, meta) {
if (doc._class == "[your_package].Foo") {
emit(meta.id, null);
}
}
  • 发布 View (然后应显示在“生产 View ”列表中)

注意:这个答案与 Couchbase 6 有关。旧/新版本上的过程可能有所不同

关于java - 执行 findAll() 时 Spring boot 和 couchbase 中出现 InvalidDataAccessResourceUsageException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53033160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com