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 является нулем. Все остальные поля действительны, как и ожидалось. Ключ пользователя - это значение Long, которое использовалось для сохранения данных:

client.put(writePolicy, new Key("namespaceName", "setName", userKey), new Bin("binName", value));

Все в порядке, если я сделаю один запрос, как это:

client.get(readPolicy, new Key("namespaceName", "setName", userKey));

Что может быть не так? Почему userKey имеет значение null?

Ответы на вопрос(2)

Ваш ответ на вопрос