Spring Data Couchbase 索引问题
Spring Data Couchbase problems with indexes
我正在玩沙发底座和 spring 数据沙发底座。为此,我安装了 5.5.1 build 3511
版本的 couchbase 并启用了测试桶。我创建了用户 beer-sample
,密码 beer-sample
,并将他的所有权限添加到存储桶 beer-sample
。
然后我为桶中的现有啤酒创建了 this sample application with configuration for couchbase. When I start the application and query 我收到异常:
com.couchbase.client.java.error.ViewDoesNotExistException: View beer/all does not exist.
at com.couchbase.client.java.view.ViewQueryResponseMapper$BuildViewResult.call(ViewQueryResponseMapper.java:211)
at com.couchbase.client.java.view.ViewQueryResponseMapper$BuildViewResult.call(ViewQueryResponseMapper.java:185)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:77)
at rx.internal.producers.SingleProducer.request(SingleProducer.java:65)
at rx.Subscriber.setProducer(Subscriber.java:211)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
at rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted(OperatorSingle.java:113)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:281)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
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)
Caused by: 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)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73)
... 16 more
我想索引应该是用我的配置自动创建的,但也许我错了。
您正在 BeerRepository
中使用 Spring 的 couchbase 存储库界面。接口的 findAll()
方法需要 Couchbase View
来获取数据。所以你需要在 couchbase 中手动创建视图,或者可以用 @ViewIndexed(designDoc = "beer", viewName = "all")
注释你的 BeerRepository
界面,如果它不存在,它将自动创建视图。
您犯的错误是将 Beer
class 注释为 @ViewIndexed
,因为该注释应该用于您的 Repository 接口。有关注释 here.
的更多信息
综上所述,您还应该查看利用 Couchbase 的 N1QL
查询从 Couchbase 访问数据。您可以在您的存储库方法上使用 @Query
注释。有关使用 @Query
注释 here.
的更多信息
我正在玩沙发底座和 spring 数据沙发底座。为此,我安装了 5.5.1 build 3511
版本的 couchbase 并启用了测试桶。我创建了用户 beer-sample
,密码 beer-sample
,并将他的所有权限添加到存储桶 beer-sample
。
然后我为桶中的现有啤酒创建了 this sample application with configuration for couchbase. When I start the application and query 我收到异常:
com.couchbase.client.java.error.ViewDoesNotExistException: View beer/all does not exist.
at com.couchbase.client.java.view.ViewQueryResponseMapper$BuildViewResult.call(ViewQueryResponseMapper.java:211)
at com.couchbase.client.java.view.ViewQueryResponseMapper$BuildViewResult.call(ViewQueryResponseMapper.java:185)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:77)
at rx.internal.producers.SingleProducer.request(SingleProducer.java:65)
at rx.Subscriber.setProducer(Subscriber.java:211)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
at rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted(OperatorSingle.java:113)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:281)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
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)
Caused by: 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)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73)
... 16 more
我想索引应该是用我的配置自动创建的,但也许我错了。
您正在 BeerRepository
中使用 Spring 的 couchbase 存储库界面。接口的 findAll()
方法需要 Couchbase View
来获取数据。所以你需要在 couchbase 中手动创建视图,或者可以用 @ViewIndexed(designDoc = "beer", viewName = "all")
注释你的 BeerRepository
界面,如果它不存在,它将自动创建视图。
您犯的错误是将 Beer
class 注释为 @ViewIndexed
,因为该注释应该用于您的 Repository 接口。有关注释 here.
综上所述,您还应该查看利用 Couchbase 的 N1QL
查询从 Couchbase 访问数据。您可以在您的存储库方法上使用 @Query
注释。有关使用 @Query
注释 here.