我正在使用Spring Data findAll(Iterable)方法从couchbase中检索信息。但是我看到无响应。
我定义了下面列出的存储库:
from bs4 import BeautifulSoup
import requests
import webbrowser
A = [
'https://www.google.com',
'https://www.stackoverflow.com',
'https://www.xkcd.com',
]
print("Which URL would you like to open?"
" (Please select an option between 1-{})".format(len(A)))
for index, link in enumerate(A):
print index+1, link
_input = input()
try:
option_index = int(_input) - 1
except ValueError:
print "{} is not a valid choice.".format(_input)
raise
try:
selection = A[option_index]
except IndexError:
print "{} is not a valid choice.".format(_input)
raise
webbrowser.open(selection)
response = requests.get(selection)
html_string = response.content
# Do parsing...
我通过传递有效的json
来获取数据public interface CustomerRepository extends CrudRepository<Customer, String> {
}
视图定义如下:
Iterable<Customer> custIter=customerRepository.findAll(customerList);
编辑:
如果我在findAll调用之前的循环中进行findOne调用,则findAll调用将返回数据。
答案 0 :(得分:2)
有点晚了,但是因为@ FuzzyAmi的评论我才有问题。不要发出(null, null)
,因为findAll(Iterable<ID>)
方法依赖于KEYS而不依赖于ID来查找文档。我有一个发出(null, null)
的视图,而findAll(Iterable<ID>)
总是返回一个空列表。我认为这应该记录在spring-data-couchbase javadoc中。
Emit (meta.id, null)
可以使用spring-data-couchbase findAll(Iterable<ID>)
。
@ simon-baslé:我认为应该更新文档。
答案 1 :(得分:1)
findAll基于视图,我认为这可能是由于查看索引延迟...您是否碰巧在执行此代码之前重新创建数据? IIRC此版本没有使用特定的过期标准,因此它应该默认为UPDATE_AFTER,它将在第一次查询后重新同步索引(对应于您在第一次查找时与第一次查询相对应的内容...)