У аэрокосмического клиента есть метод scanAll для чтения всех строк из его магазина. Я использую его в ниже код:Aerospike: как я могу получить ключ для записи?
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 равна нулю. Все остальные поля действительны, как ожидалось. Ключ Пользователь Долгий значение, которое было использовано для сохранения данных:
client.put(writePolicy, new Key("namespaceName", "setName", userKey), new Bin("binName", value));
Все это хорошо, если я один запрос, как это:
client.get(readPolicy, new Key("namespaceName", "setName", userKey));
Что может быть не так? Почему userKey имеет значение NULL?
Большое спасибо за ваше время и хороший ответ! – DmitryKanunnikoff