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é:我认为应该更新文档。
我正在使用 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é:我认为应该更新文档。