【发布时间】:2015-01-29 12:25:43
【问题描述】:
Aerospike 客户端具有 scanAll 方法,用于从其存储中读取所有行。 我在以下代码中使用它:
ScanPolicy policy = new ScanPolicy();
policy.concurrentNodes = true;
policy.priority = Priority.DEFAULT;
policy.includeBinData = true;
policy.scanPercent = 100;
client.scanAll(policy, "namespaceName", "setName", new ScanCallback() {
@Override
public void scanCallback(Key key, Record record) throws AerospikeException {
STORE.put(key.userKey.toLong(), record.getValue("binName").toString());
}
});
但它以NullPointerException 结束,因为userKey 为空。所有其他字段都按预期有效。 User key 是 Long 值,用于保存数据:
client.put(writePolicy, new Key("namespaceName", "setName", userKey), new Bin("binName", value));
一切都很好,如果我像这样提出单个请求:
client.get(readPolicy, new Key("namespaceName", "setName", userKey));
可能有什么问题?为什么 userKey 为空?
【问题讨论】: