Spring 数据 Couchbase findAll(可迭代)

Spring Data Couchbase findAll(Iterable)

我正在使用 Spring Data findAll(Iterable) 方法从 couchbase 检索信息。但是我看到的是空响应。

我定义了下面列出的存储库:

public interface CustomerRepository extends CrudRepository<Customer, String> {

}

我正在通过传递有效 json

来获取数据
Iterable<Customer> custIter=customerRepository.findAll(customerList);

视图定义如下:

function (doc, meta) {  
   if(doc._class=="com.customer.model.types.Customer" ){
      emit(meta.id, doc); 
   } 
}

编辑:

如果我在 findAll 调用之前的循环中进行 findOne 调用,则 findAll 调用 returns data.

findAll 基于一个视图,我认为这可能是由于视图索引延迟...您是否碰巧在执行此代码之前重新创建了数据? IIRC 此版本未使用特定的陈旧标准,因此它应默认为 UPDATE_AFTER,这将在第一次查询后重新同步索引(这对应于您在第一个 findAll 中看到的内容与以下内容......)

有点晚了,但由于@FuzzyAmi 的评论,我遇到了一个问题。不要发出 (null, null),因为 findAll(Iterable<ID>) 方法依赖于 KEYS 而不是 ID 来查找文档。我有一个视图发出 (null, null) 并且 findAll(Iterable<ID>) 总是返回一个空列表。我认为这应该记录在 spring-data-couchbase javadoc 中。

发出 (meta.id, null) 可以使用 spring-data-couchbase findAll(Iterable<ID>).

@simon-baslé:我认为应该更新文档。