gpt4 book ai didi

java - 内联 View 定义 Couch Db Ektorp

转载 作者:行者123 更新时间:2023-12-02 08:08:53 25 4
gpt4 key购买 nike

我在 Spring 3 中使用 Couch DB 和 Ektorp。我阅读了文档并尝试实现示例。我对这些技术很陌生。这是我不明白的地方:

@View( name = "all", map = "function(doc) { if (doc.type == 'Sofa' ) emit( null, doc._id )}")
public class SofaRepository extends CouchDbRepositorySupport<Sofa> {

@View( name = "avg_sofa_size", map = "function(doc) {...}", reduce = "function(doc) {...}")
public int getAverageSofaSize() {
ViewResult r = db.queryView(createQuery("avg_sofa_size"));
return r.getRows().get(0).getValueAsInt();
}

}

wievs 是如何工作的,如何定义它们,那一行会发生什么?

最佳答案

CouchDbRepositorySupport 开箱即用地为 SofaRepository 提供以下方法:

public void add(Sofa entity);
public void update(Sofa entity);
public void remove(Sofa entity);
public Sofa get(String id);
public Sofa get(String id, String rev);
public List<T> getAll();
public boolean contains(String docId);

通过为 CouchDbRepositorySupport 使用此内联 View 注释:

@View( name = "all", map = "function(doc) { if (doc.type == 'Sofa' ) emit( null, doc._id )}") 

您重新定义了 getAll() 方法的返回值。

您还向存储库添加了另一个方法getAverageSofaSize(),其中包含内联 View :

@View( name = "avg_sofa_size", map = "function(doc) {...}", reduce = "function(doc) {...}")

它明确提供了 db.queryView(createQuery("avg_sofa_size")); 下的查询db 这里是 CouchDbConnector能够创建、删除、清除、查找等。

查看有关 defining in line Views 的更多文档

关于java - 内联 View 定义 Couch Db Ektorp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741129/

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