【发布时间】:2016-04-13 15:38:36
【问题描述】:
我正在使用 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 调用会返回数据。
【问题讨论】:
-
您在返回的可迭代对象中看到空值还是单个空引用?你在传递一个键列表吗?那是哪个版本的 SDC?
-
嗨西蒙,我只看到一个空引用。我正在传递这样的键列表 - [“string1”,“string2”]。这是版本:org.springframework.data:spring-data-couchbase:1.3.2.RELEASE。当我使用 findAll 时,这将返回一个空响应。但是当我使用 findOne 后跟 findAll 时, findAll 正在返回响应。运行一次 findOne 后,即使我注释了 findOne ,后续的 findAll 调用也是返回结果。
-
你好。只是一些快速的 cmets: 1. 发出“doc”不是一个好主意 - 它实际上在索引中创建了一个重复的 doc(原始的)。相反,只需在获得视图结果后获取()文档。 2. 此外,meta.id 已经作为视图数据的一部分发出,因此重新发出它没有任何意义。你可以发出(null,null)。 3. finally:您可以在 couchbase UI 上调试您的视图。请记住,如果您尚未发布视图,您可能会看到部分结果。
标签: java spring spring-boot spring-data couchbase