|
Berkeley DB version 5.0.32 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sleepycat.db.JoinCursor
public class JoinCursor
A specialized join cursor for use in performing equality or natural joins on secondary indices.
A join cursor is returned when calling Database.join.
To open a join cursor using two secondary cursors:
Transaction txn = ...
Database primaryDb = ...
SecondaryDatabase secondaryDb1 = ...
SecondaryDatabase secondaryDb2 = ...
SecondaryCursor cursor1 = null;
SecondaryCursor cursor2 = null;
JoinCursor joinCursor = null;
try {
DatabaseEntry key = new DatabaseEntry();
DatabaseEntry data = new DatabaseEntry();
cursor1 = secondaryDb1.openSecondaryCursor(txn, null);
cursor2 = secondaryDb2.openSecondaryCursor(txn, null);
key.setData(...); // initialize key for secondary index 1
OperationStatus status1 =
cursor1.getSearchKey(key, data, LockMode.DEFAULT);
key.setData(...); // initialize key for secondary index 2
OperationStatus status2 =
cursor2.getSearchKey(key, data, LockMode.DEFAULT);
if (status1 == OperationStatus.SUCCESS &&
status2 == OperationStatus.SUCCESS) {
SecondaryCursor[] cursors = {cursor1, cursor2};
joinCursor = primaryDb.join(cursors, null);
while (true) {
OperationStatus joinStatus = joinCursor.getNext(key, data,
LockMode.DEFAULT);
if (joinStatus == OperationStatus.SUCCESS) {
// Do something with the key and data.
} else {
break;
}
}
}
} finally {
if (cursor1 != null) {
cursor1.close();
}
if (cursor2 != null) {
cursor2.close();
}
if (joinCursor != null) {
joinCursor.close();
}
}
| Method Summary | |
|---|---|
void |
close()
Closes the cursors that have been opened by this join cursor. |
JoinConfig |
getConfig()
Returns this object's configuration. |
Database |
getDatabase()
Returns the primary database handle associated with this cursor. |
OperationStatus |
getNext(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
Returns the next primary key and data resulting from the join operation. |
OperationStatus |
getNext(DatabaseEntry key,
LockMode lockMode)
Returns the next primary key resulting from the join operation. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public void close()
throws DatabaseException
The cursors passed to Database.join are not closed
by this method, and should be closed by the caller.
DatabaseException - if a failure occurs.public Database getDatabase()
public JoinConfig getConfig()
public OperationStatus getNext(DatabaseEntry key,
LockMode lockMode)
throws DatabaseException
An entry is returned by the join cursor for each primary key/data pair having
all secondary key values that were specified using the array of secondary
cursors passed to Database.join.
key - the primary key
returned as output. Its byte array does not need to be initialized by the
caller.
lockMode - the locking attributes; if null, default attributes are used.
OperationStatus.NOTFOUND if no matching key/data pair is
found; OperationStatus.KEYEMPTY if the database is a Queue or Recno database and the specified key exists, but was never explicitly created by the application or was later deleted; otherwise, OperationStatus.SUCCESS.
java.lang.NullPointerException - if a DatabaseEntry parameter is null or
does not contain a required non-null byte array.
DeadlockException - if the operation was selected to resolve a
deadlock.
java.lang.IllegalArgumentException - if an invalid parameter was specified.
DatabaseException - if a failure occurs.
public OperationStatus getNext(DatabaseEntry key,
DatabaseEntry data,
LockMode lockMode)
throws DatabaseException
An entry is returned by the join cursor for each primary key/data pair having
all secondary key values that were specified using the array of secondary
cursors passed to Database.join.
key - the primary key
returned as output. Its byte array does not need to be initialized by the
caller.
data - the primary data
returned as output. Its byte array does not need to be initialized by the
caller.
lockMode - the locking attributes; if null, default attributes are used.
OperationStatus.NOTFOUND if no matching key/data pair is
found; OperationStatus.KEYEMPTY if the database is a Queue or Recno database and the specified key exists, but was never explicitly created by the application or was later deleted; otherwise, OperationStatus.SUCCESS.
java.lang.NullPointerException - if a DatabaseEntry parameter is null or
does not contain a required non-null byte array.
DeadlockException - if the operation was selected to resolve a
deadlock.
java.lang.IllegalArgumentException - if an invalid parameter was specified.
DatabaseException - if a failure occurs.
|
Berkeley DB version 5.0.32 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||