1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<!--NewPage-->
3<HTML>
4<HEAD>
5<!-- Generated by javadoc (build 1.5.0) on Thu May 15 17:17:33 EDT 2008 -->
6<TITLE>
7EntityJoin (Oracle - Berkeley DB Java API)
8</TITLE>
9
10<META NAME="keywords" CONTENT="com.sleepycat.persist.EntityJoin class">
11
12<LINK REL ="stylesheet" TYPE="text/css" HREF="/style.css" TITLE="Style">
13
14<SCRIPT type="text/javascript">
15function windowTitle()
16{
17    parent.document.title="EntityJoin (Oracle - Berkeley DB Java API)";
18}
19</SCRIPT>
20<NOSCRIPT>
21</NOSCRIPT>
22
23</HEAD>
24
25<BODY BGCOLOR="white" onload="windowTitle();">
26
27
28<!-- ========= START OF TOP NAVBAR ======= -->
29<A NAME="navbar_top"><!-- --></A>
30<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
31<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
32<TR>
33<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
34<A NAME="navbar_top_firstrow"><!-- --></A>
35<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
36  <TR ALIGN="center" VALIGN="top">
37  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
38  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
39  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
40  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/EntityJoin.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
41  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
42  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
43  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
44  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
45  </TR>
46</TABLE>
47</TD>
48<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
49<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM>
50</TD>
51</TR>
52
53<TR>
54<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
55&nbsp;<A HREF="/com/sleepycat/persist/EntityIndex.html" title="interface in com.sleepycat.persist"><B>PREV CLASS</B></A>&nbsp;
56&nbsp;<A HREF="/com/sleepycat/persist/EntityStore.html" title="class in com.sleepycat.persist"><B>NEXT CLASS</B></A></FONT></TD>
57<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
58  <A HREF="/index.html?com/sleepycat/persist/EntityJoin.html" target="_top"><B>FRAMES</B></A>  &nbsp;
59&nbsp;<A HREF="EntityJoin.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
60&nbsp;<SCRIPT type="text/javascript">
61  <!--
62  if(window==top) {
63    document.writeln('<A HREF="/allclasses-noframe.html"><B>All Classes</B></A>');
64  }
65  //-->
66</SCRIPT>
67<NOSCRIPT>
68  <A HREF="/allclasses-noframe.html"><B>All Classes</B></A>
69</NOSCRIPT>
70
71
72</FONT></TD>
73</TR>
74<TR>
75<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
76  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
77<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
78DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
79</TR>
80</TABLE>
81<A NAME="skip-navbar_top"></A>
82<!-- ========= END OF TOP NAVBAR ========= -->
83
84<HR>
85<!-- ======== START OF CLASS DATA ======== -->
86<H2>
87<FONT SIZE="-1">
88com.sleepycat.persist</FONT>
89<BR>
90Class EntityJoin&lt;PK,E&gt;</H2>
91<PRE>
92<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
93  <IMG SRC="/resources/inherit.gif" ALT="extended by "><B>com.sleepycat.persist.EntityJoin&lt;PK,E&gt;</B>
94</PRE>
95<HR>
96<DL>
97<DT><PRE>public class <B>EntityJoin&lt;PK,E&gt;</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></DL>
98</PRE>
99
100<P>
101Performs an equality join on two or more secondary keys.
102
103 <p><code>EntityJoin</code> objects are thread-safe.  Multiple threads may safely
104 call the methods of a shared <code>EntityJoin</code> object.</p>
105
106 <p>An equality join is a match on all entities in a given primary index that
107 have two or more specific secondary key values.  Note that key ranges may
108 not be matched by an equality join, only exact keys are matched.</p>
109
110 <p>For example:</p>
111 <pre class="code">
112  // Index declarations -- see <a href="package-summary.html#example">package summary example</a>.
113  //
114  PrimaryIndex&lt;String,Person&gt; personBySsn;
115  SecondaryIndex&lt;String,String,Person&gt; personByParentSsn;
116  SecondaryIndex&lt;Long,String,Person&gt; personByEmployerIds;
117  Employer employer = ...;
118
119  // Match on all Person objects having parentSsn "111-11-1111" and also
120  // containing an employerId of employer.id.  In other words, match on all
121  // of Bob's children that work for a given employer.
122  //
123  EntityJoin&lt;String,Person&gt; join = new EntityJoin(personBySsn);
124  join.addCondition(personByParentSsn, "111-11-1111");
125  join.addCondition(personByEmployerIds, employer.id);
126
127  // Perform the join operation by traversing the results with a cursor.
128  //
129  ForwardCursor&lt;Person&gt; results = join.entities();
130  try {
131      for (Person person : results) {
132          System.out.println(person.ssn + ' ' + person.name);
133      }
134  } finally {
135      results.close();
136  }</pre>
137<P>
138
139<P>
140<HR>
141
142<P>
143
144<!-- ======== CONSTRUCTOR SUMMARY ======== -->
145
146<A NAME="constructor_summary"><!-- --></A>
147<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
148<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
149<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
150<B>Constructor Summary</B></FONT></TH>
151</TR>
152<TR BGCOLOR="white" CLASS="TableRowColor">
153<TD><CODE><B><A HREF="/com/sleepycat/persist/EntityJoin.html#EntityJoin(com.sleepycat.persist.PrimaryIndex)">EntityJoin</A></B>(<A HREF="/com/sleepycat/persist/PrimaryIndex.html" title="class in com.sleepycat.persist">PrimaryIndex</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>,<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt;&nbsp;index)</CODE>
154
155<BR>
156&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a join object for a given primary index.</TD>
157</TR>
158</TABLE>
159&nbsp;
160<!-- ========== METHOD SUMMARY =========== -->
161
162<A NAME="method_summary"><!-- --></A>
163<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
164<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
165<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
166<B>Method Summary</B></FONT></TH>
167</TR>
168<TR BGCOLOR="white" CLASS="TableRowColor">
169<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
170<CODE>
171<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
172<TR ALIGN="right" VALIGN="">
173<TD NOWRAP><FONT SIZE="-1">
174<CODE>&lt;SK&gt; void</CODE></FONT></TD>
175</TR>
176</TABLE>
177</CODE></FONT></TD>
178<TD><CODE><B><A HREF="/com/sleepycat/persist/EntityJoin.html#addCondition(com.sleepycat.persist.SecondaryIndex, SK)">addCondition</A></B>(<A HREF="/com/sleepycat/persist/SecondaryIndex.html" title="class in com.sleepycat.persist">SecondaryIndex</A>&lt;SK,<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>,<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt;&nbsp;index,
179             SK&nbsp;key)</CODE>
180
181<BR>
182&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a secondary key condition to the equality join.</TD>
183</TR>
184<TR BGCOLOR="white" CLASS="TableRowColor">
185<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
186<CODE>&nbsp;<A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt;</CODE></FONT></TD>
187<TD><CODE><B><A HREF="/com/sleepycat/persist/EntityJoin.html#entities()">entities</A></B>()</CODE>
188
189<BR>
190&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opens a cursor that returns the entities qualifying for the join.</TD>
191</TR>
192<TR BGCOLOR="white" CLASS="TableRowColor">
193<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
194<CODE>&nbsp;<A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt;</CODE></FONT></TD>
195<TD><CODE><B><A HREF="/com/sleepycat/persist/EntityJoin.html#entities(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)">entities</A></B>(<A HREF="/com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A>&nbsp;txn,
196         <A HREF="/com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A>&nbsp;config)</CODE>
197
198<BR>
199&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opens a cursor that returns the entities qualifying for the join.</TD>
200</TR>
201<TR BGCOLOR="white" CLASS="TableRowColor">
202<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
203<CODE>&nbsp;<A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>&gt;</CODE></FONT></TD>
204<TD><CODE><B><A HREF="/com/sleepycat/persist/EntityJoin.html#keys()">keys</A></B>()</CODE>
205
206<BR>
207&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opens a cursor that returns the primary keys of entities qualifying for
208 the join.</TD>
209</TR>
210<TR BGCOLOR="white" CLASS="TableRowColor">
211<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
212<CODE>&nbsp;<A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>&gt;</CODE></FONT></TD>
213<TD><CODE><B><A HREF="/com/sleepycat/persist/EntityJoin.html#keys(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)">keys</A></B>(<A HREF="/com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A>&nbsp;txn,
214     <A HREF="/com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A>&nbsp;config)</CODE>
215
216<BR>
217&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opens a cursor that returns the primary keys of entities qualifying for
218 the join.</TD>
219</TR>
220</TABLE>
221&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
222<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
223<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
224<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
225</TR>
226<TR BGCOLOR="white" CLASS="TableRowColor">
227<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
228</TR>
229</TABLE>
230&nbsp;
231<P>
232
233<!-- ========= CONSTRUCTOR DETAIL ======== -->
234
235<A NAME="constructor_detail"><!-- --></A>
236<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
237<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
238<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
239<B>Constructor Detail</B></FONT></TH>
240</TR>
241</TABLE>
242
243<A NAME="EntityJoin(com.sleepycat.persist.PrimaryIndex)"><!-- --></A><H3>
244EntityJoin</H3>
245<PRE>
246public <B>EntityJoin</B>(<A HREF="/com/sleepycat/persist/PrimaryIndex.html" title="class in com.sleepycat.persist">PrimaryIndex</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>,<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt;&nbsp;index)</PRE>
247<DL>
248<DD>Creates a join object for a given primary index.
249<P>
250<DL>
251<DT><B>Parameters:</B><DD><CODE>index</CODE> - the primary index on which the join will operate.</DL>
252</DL>
253
254<!-- ============ METHOD DETAIL ========== -->
255
256<A NAME="method_detail"><!-- --></A>
257<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
258<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
259<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
260<B>Method Detail</B></FONT></TH>
261</TR>
262</TABLE>
263
264<A NAME="addCondition(com.sleepycat.persist.SecondaryIndex,java.lang.Object)"><!-- --></A><A NAME="addCondition(com.sleepycat.persist.SecondaryIndex, SK)"><!-- --></A><H3>
265addCondition</H3>
266<PRE>
267public &lt;SK&gt; void <B>addCondition</B>(<A HREF="/com/sleepycat/persist/SecondaryIndex.html" title="class in com.sleepycat.persist">SecondaryIndex</A>&lt;SK,<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>,<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt;&nbsp;index,
268                              SK&nbsp;key)</PRE>
269<DL>
270<DD>Adds a secondary key condition to the equality join.  Only entities
271 having the given key value in the given secondary index will be returned
272 by the join operation.
273<P>
274<DD><DL>
275<DT><B>Parameters:</B><DD><CODE>index</CODE> - the secondary index containing the given key value.<DD><CODE>key</CODE> - the key value to match during the join.</DL>
276</DD>
277</DL>
278<HR>
279
280<A NAME="entities()"><!-- --></A><H3>
281entities</H3>
282<PRE>
283public <A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt; <B>entities</B>()
284                          throws <A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE>
285<DL>
286<DD>Opens a cursor that returns the entities qualifying for the join.  The
287 join operation is performed as the returned cursor is accessed.
288
289 <p>The operations performed with the cursor will not be transaction
290 protected, and <A HREF="/com/sleepycat/db/CursorConfig.html#DEFAULT"><CODE>CursorConfig.DEFAULT</CODE></A> is used implicitly.</p>
291<P>
292<DD><DL>
293
294<DT><B>Returns:</B><DD>the cursor.
295<DT><B>Throws:</B>
296<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html" title="class or interface in java.lang">IllegalStateException</A></CODE> - if less than two conditions were added.
297<DD><CODE><A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE></DL>
298</DD>
299</DL>
300<HR>
301
302<A NAME="entities(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><!-- --></A><H3>
303entities</H3>
304<PRE>
305public <A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">E</A>&gt; <B>entities</B>(<A HREF="/com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A>&nbsp;txn,
306                                 <A HREF="/com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A>&nbsp;config)
307                          throws <A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE>
308<DL>
309<DD>Opens a cursor that returns the entities qualifying for the join.  The
310 join operation is performed as the returned cursor is accessed.
311<P>
312<DD><DL>
313<DT><B>Parameters:</B><DD><CODE>txn</CODE> - the transaction used to protect all operations performed with
314 the cursor, or null if the operations should not be transaction
315 protected.<DD><CODE>config</CODE> - the cursor configuration that determines the default lock
316 mode used for all cursor operations, or null to implicitly use <A HREF="/com/sleepycat/db/CursorConfig.html#DEFAULT"><CODE>CursorConfig.DEFAULT</CODE></A>.
317<DT><B>Returns:</B><DD>the cursor.
318<DT><B>Throws:</B>
319<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html" title="class or interface in java.lang">IllegalStateException</A></CODE> - if less than two conditions were added.
320<DD><CODE><A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE></DL>
321</DD>
322</DL>
323<HR>
324
325<A NAME="keys()"><!-- --></A><H3>
326keys</H3>
327<PRE>
328public <A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>&gt; <B>keys</B>()
329                       throws <A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE>
330<DL>
331<DD>Opens a cursor that returns the primary keys of entities qualifying for
332 the join.  The join operation is performed as the returned cursor is
333 accessed.
334
335 <p>The operations performed with the cursor will not be transaction
336 protected, and <A HREF="/com/sleepycat/db/CursorConfig.html#DEFAULT"><CODE>CursorConfig.DEFAULT</CODE></A> is used implicitly.</p>
337<P>
338<DD><DL>
339
340<DT><B>Returns:</B><DD>the cursor.
341<DT><B>Throws:</B>
342<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html" title="class or interface in java.lang">IllegalStateException</A></CODE> - if less than two conditions were added.
343<DD><CODE><A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE></DL>
344</DD>
345</DL>
346<HR>
347
348<A NAME="keys(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><!-- --></A><H3>
349keys</H3>
350<PRE>
351public <A HREF="/com/sleepycat/persist/ForwardCursor.html" title="interface in com.sleepycat.persist">ForwardCursor</A>&lt;<A HREF="/com/sleepycat/persist/EntityJoin.html" title="type parameter in EntityJoin">PK</A>&gt; <B>keys</B>(<A HREF="/com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A>&nbsp;txn,
352                              <A HREF="/com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A>&nbsp;config)
353                       throws <A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE>
354<DL>
355<DD>Opens a cursor that returns the primary keys of entities qualifying for
356 the join.  The join operation is performed as the returned cursor is
357 accessed.
358<P>
359<DD><DL>
360<DT><B>Parameters:</B><DD><CODE>txn</CODE> - the transaction used to protect all operations performed with
361 the cursor, or null if the operations should not be transaction
362 protected.<DD><CODE>config</CODE> - the cursor configuration that determines the default lock
363 mode used for all cursor operations, or null to implicitly use <A HREF="/com/sleepycat/db/CursorConfig.html#DEFAULT"><CODE>CursorConfig.DEFAULT</CODE></A>.
364<DT><B>Returns:</B><DD>the cursor.
365<DT><B>Throws:</B>
366<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html" title="class or interface in java.lang">IllegalStateException</A></CODE> - if less than two conditions were added.
367<DD><CODE><A HREF="/com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE></DL>
368</DD>
369</DL>
370<!-- ========= END OF CLASS DATA ========= -->
371<HR>
372
373
374<!-- ======= START OF BOTTOM NAVBAR ====== -->
375<A NAME="navbar_bottom"><!-- --></A>
376<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
377<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
378<TR>
379<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
380<A NAME="navbar_bottom_firstrow"><!-- --></A>
381<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
382  <TR ALIGN="center" VALIGN="top">
383  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
384  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
385  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
386  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/EntityJoin.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
387  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
388  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
389  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
390  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="/help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
391  </TR>
392</TABLE>
393</TD>
394<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
395<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM>
396</TD>
397</TR>
398
399<TR>
400<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
401&nbsp;<A HREF="/com/sleepycat/persist/EntityIndex.html" title="interface in com.sleepycat.persist"><B>PREV CLASS</B></A>&nbsp;
402&nbsp;<A HREF="/com/sleepycat/persist/EntityStore.html" title="class in com.sleepycat.persist"><B>NEXT CLASS</B></A></FONT></TD>
403<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
404  <A HREF="/index.html?com/sleepycat/persist/EntityJoin.html" target="_top"><B>FRAMES</B></A>  &nbsp;
405&nbsp;<A HREF="EntityJoin.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
406&nbsp;<SCRIPT type="text/javascript">
407  <!--
408  if(window==top) {
409    document.writeln('<A HREF="/allclasses-noframe.html"><B>All Classes</B></A>');
410  }
411  //-->
412</SCRIPT>
413<NOSCRIPT>
414  <A HREF="/allclasses-noframe.html"><B>All Classes</B></A>
415</NOSCRIPT>
416
417
418</FONT></TD>
419</TR>
420<TR>
421<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
422  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
423<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
424DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
425</TR>
426</TABLE>
427<A NAME="skip-navbar_bottom"></A>
428<!-- ======== END OF BOTTOM NAVBAR ======= -->
429
430<HR>
431<font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>
432</BODY>
433</HTML>
434