Retrieving a Single Record

To retrieve a record from the store, use the KVStore.get() method. This method returns a ValueVersion object. Use ValueVersion.getValue() to return the Value object associated with the key. It is then up to your application to turn the Value's byte array into a useful form. Normally, this will require the use of an Avro binding. See Avro Bindings for details.

For example, in Writing Records to the Store we showed a trivial example of storing a key-value pair to the store, where the value was a simple String. The following trivial example shows how to retrieve that record. (Again, this is not how your code should deserialize data, because this example does not use Avro to manage the value's schema.)

package kvstore.basicExample;

...

import oracle.kv.Key;
import oracle.kv.Value;
import oracle.kv.ValueVersion;
import java.util.ArrayList;

...

ArrayList<String> majorComponents = new ArrayList<String>();
ArrayList<String> minorComponents = new ArrayList<String>();

...

// Define the major and minor path components for the key
majorComponents.add("Smith");
majorComponents.add("Bob");

minorComponents.add("phonenumber");

// Create the key
Key myKey = Key.createKey(majorComponents, minorComponents);

// Now retrieve the record. Note that we do not show the creation of 
// the kvstore handle here.

ValueVersion vv = kvstore.get(myKey);
Value v = vv.getValue(); 
String data = new String(v.getValue());