@FunctionalInterface
public interface SSecondaryKeyCreator
The key creator object is specified by calling SSecondaryConfig.setKeyCreator(com.sleepycat.client.SSecondaryKeyCreator). The secondary database configuration is
specified when calling SEnvironment.openSecondaryDatabase(com.sleepycat.client.STransaction, java.lang.String, java.lang.String, com.sleepycat.client.SDatabase, com.sleepycat.client.SSecondaryConfig).
For example:
class MyKeyCreator implements SSecondaryKeyCreator {
public boolean createSecondaryKey(SSecondaryDatabase secondary,
SDatabaseEntry key,
SDatabaseEntry data,
SDatabaseEntry result) throws SDatabaseException {
//
// DO HERE: Extract the secondary key from the primary key and
// data, and set the secondary key into the result parameter.
//
return true;
}
}
...
SSecondaryConfig secConfig = new SSecondaryConfig();
secConfig.setKeyCreator(new MyKeyCreator());
// Now pass secConfig to SEnvironment.openSecondaryDatabase
| Modifier and Type | Method and Description |
|---|---|
boolean |
createSecondaryKey(SSecondaryDatabase secondary,
SDatabaseEntry key,
SDatabaseEntry data,
SDatabaseEntry result)
Creates a secondary key entry, given a primary key and data entry.
|
boolean createSecondaryKey(SSecondaryDatabase secondary, SDatabaseEntry key, SDatabaseEntry data, SDatabaseEntry result) throws SDatabaseException
A secondary key may be derived from the primary key, primary data, or a combination of the primary key and data. For secondary keys that are optional, the key creator method may return false and the key/data pair will not be indexed. To ensure the integrity of a secondary database the key creator method must always return the same result for a given set of input parameters.
secondary - the database to which the secondary key will be added.
This parameter is passed for informational purposes but is not commonly
used.key - the primary key entry. This parameter must not be modified
by this method.data - the primary data entry. This parameter must not be modified
by this method.result - the secondary key created by this method.SDatabaseException - if an error occurs attempting to create the
secondary key.Copyright (c) 2016, 2019 Oracle and/or its affiliates. All rights reserved.