|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface SecondaryKeyCreator
The interface implemented for extracting single-valued secondary keys from primary records.
The key creator object is specified by calling SecondaryConfig.setKeyCreator
. The secondary
database configuration is specified when calling Environment.openSecondaryDatabase
.
For example:
class MyKeyCreator implements SecondaryKeyCreator { public boolean createSecondaryKey(SecondaryDatabase secondary, DatabaseEntry key, DatabaseEntry data, DatabaseEntry result) throws DatabaseException { // // DO HERE: Extract the secondary key from the primary key and // data, and set the secondary key into the result parameter. // return true; } } ... SecondaryConfig secConfig = new SecondaryConfig(); secConfig.setKeyCreator(new MyKeyCreator()); // Now pass secConfig to Environment.openSecondaryDatabase
Use this interface when zero or one secondary key is present in a single
primary record, in other words, for many-to-one and one-to-one
relationships. When more than one secondary key may be present (for
many-to-many and one-to-many relationships), use the SecondaryMultiKeyCreator
interface instead. The table below summarizes how
to create all four variations of relationships.
Relationship | Interface | Duplicates | Example |
---|---|---|---|
One-to-one | SecondaryKeyCreator |
No | A person record with a unique social security number key. |
Many-to-one | SecondaryKeyCreator |
Yes | A person record with a non-unique employer key. |
One-to-many | SecondaryMultiKeyCreator |
No | A person record with multiple unique email address keys. |
Many-to-many | SecondaryMultiKeyCreator |
Yes | A person record with multiple non-unique organization keys. |
To configure a database for duplicates. pass true to DatabaseConfig.setSortedDuplicates(boolean)
.
Method Summary | |
---|---|
boolean |
createSecondaryKey(SecondaryDatabase secondary,
DatabaseEntry key,
DatabaseEntry data,
DatabaseEntry result)
Creates a secondary key entry, given a primary key and data entry. |
Method Detail |
---|
boolean createSecondaryKey(SecondaryDatabase secondary, DatabaseEntry key, DatabaseEntry data, DatabaseEntry result) throws DatabaseException
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.
DatabaseException
- if an error occurs attempting to create the
secondary key.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |