Klient Aerospike ma scanAll metodę odczytu wszystkich wierszy ze swojego magazynu. go używać w kodzie folowing:Aerospike: jak uzyskać klucz rekordu?
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());
}
});
Ale to jest wykończony NullPointerException
, ponieważ userKey jest null. Wszystkie pozostałe pola są zgodne z oczekiwaniami. klucz użytkownika jest długi stosunek, który był używany do zapisywania danych:
client.put(writePolicy, new Key("namespaceName", "setName", userKey), new Bin("binName", value));
Wszystko jest w porządku, jeśli to zrobię pojedynczego żądania takiego:
client.get(readPolicy, new Key("namespaceName", "setName", userKey));
Co może być nie tak? Dlaczego userKey ma wartość null?
Dziękuję bardzo za poświęcony czas i dobrą odpowiedź! – DmitryKanunnikoff