【问题标题】:Can spring data couchbase be used to access reduced viewsspring data coouchbase 可以用于访问缩减视图吗
【发布时间】:2015-07-14 15:58:41
【问题描述】:

我知道有一种方法可以使用 Couchbase java sdk 访问缩减的视图结果。我目前无法做的是使用 spring-data 来访问缩减视图。这可能吗?

查看:

View byIdGetDateStats = DefaultView.create("byIdGetDateStats",
            "function (doc, meta) {"
            + "if(doc.docType == \"com.bd.idm.model.DayLog\"){"
            + "   emit(doc.userid, doc.date)"
            +"    }}"
            ,"_stats"
            );

当我尝试使用 spring-data 访问这样的视图时:

Query query = new Query();
query.setKey(ComplexKey.of(userid)).setReduce(true).setGroup(true);
ViewResult result = repo.findByIdGetDateStats(query);

错误信息

java.lang.IllegalStateException: Failed to execute CommandLineRunner
...

Caused by: java.lang.RuntimeException: Failed to access the view
...

Caused by: java.util.concurrent.ExecutionException: OperationException: SERVER: query_parse_error Reason: Invalid URL parameter 'group' or  'group_level' for non-reduce view.
....
Caused by: com.couchbase.client.protocol.views.ViewException: query_parse_error Reason: Invalid URL parameter 'group' or  'group_level' for non-reduce view.

....

【问题讨论】:

    标签: spring-data couchbase spring-data-couchbase


    【解决方案1】:

    不,Spring-Data-Couchbase 1.x 将始终将 reduce 设置为 false

    如果您想使用缩小视图并获取ViewResult,请使用CouchbaseTemplate#queryView() 方法。

    您仍然可以通过定义自定义存储库方法在存储库中执行此操作(请参阅此chapter of the doc,您应该能够在您的实现中调用getCouchbaseOperations)。

    【讨论】:

    • 感谢您的回复。尽管您的回答似乎正确,但由于失败,我无法使其正常工作。 2015-07-15 10:14:05.854 错误 59644 --- [main] os.boot.SpringApplication:应用程序启动失败
    • 我能够解决我的问题,并且确实有效。再次感谢!
    • 请注意,有一个 2.0 正在开发中(github.com/spring-projects/spring-data-couchbase/tree/2.0.x未发布),reduce 预计将使用以下类型的接口:@View(viewName="byUserIdWithReduce") public long countByUserIdEquals(String userId);(请注意group 目前还没有计划,你必须使用你的实体的有效属性,这里是userId,在你的方法名称中查询派生工作)=>将导致reduce=true&&key=userIdValue
    猜你喜欢
    • 2017-10-22
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2023-03-16
    相关资源
    最近更新 更多