Sophie

Sophie

distrib > PLD > th > x86_64 > by-pkgid > 636b2a8b77acacd6717dd7e72eda4c1d > files > 446

db6.1-java-devel-6.1.29.0-1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_75) on Fri May 13 13:32:17 PDT 2016 -->
<title>SecondaryMultiKeyCreator (Oracle - Berkeley DB Java API)</title>
<meta name="date" content="2016-05-13">
<link rel="stylesheet" type="text/css" href="../../../style.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="SecondaryMultiKeyCreator (Oracle - Berkeley DB Java API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SecondaryMultiKeyCreator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><b>Berkeley DB</b><br><font size="-1"> version 6.1.29</font></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../com/sleepycat/db/Sequence.html" title="class in com.sleepycat.db"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/sleepycat/db/SecondaryMultiKeyCreator.html" target="_top">Frames</a></li>
<li><a href="SecondaryMultiKeyCreator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.sleepycat.db</div>
<h2 title="Interface SecondaryMultiKeyCreator" class="title">Interface SecondaryMultiKeyCreator</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="strong">SecondaryMultiKeyCreator</span></pre>
<div class="block">The interface implemented for extracting multi-valued secondary keys from
primary records.
<p>
The key creator object is specified by calling
<a href="../../../com/sleepycat/db/SecondaryConfig.html#setMultiKeyCreator(com.sleepycat.db.SecondaryMultiKeyCreator)"><code>SecondaryConfig.setMultiKeyCreator</code></a>.
The secondary database configuration is specified when calling
<a href="../../../com/sleepycat/db/Environment.html#openSecondaryDatabase(com.sleepycat.db.Transaction,%20java.lang.String,%20java.lang.String,%20com.sleepycat.db.Database,%20com.sleepycat.db.SecondaryConfig)"><code>Environment.openSecondaryDatabase</code></a>.
<p>
For example:
<pre>
    class MyMultiKeyCreator implements SecondaryMultiKeyCreator {
    public void createSecondaryKeys(SecondaryDatabase secondary,
                                        DatabaseEntry key,
                                        DatabaseEntry data,
                                        Set results)
            throws DatabaseException {
            //
            // DO HERE: Extract the secondary keys from the primary key and
            // data.  For each key extracted, create a DatabaseEntry and add it
            // to the results set.
            //
        }
    }
    ...
    SecondaryConfig secConfig = new SecondaryConfig();
    secConfig.setMultiKeyCreator(new MyMultiKeyCreator());
    // Now pass secConfig to Environment.openSecondaryDatabase
</pre>
<p>
Use this interface when any number of secondary keys may be present in a single
primary record, in other words, for many-to-many and one-to-many relationships.
When only zero or one secondary key is present (for many-to-one and one-to-one
relationships) you may use the <a href="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><code>SecondaryKeyCreator</code></a> interface instead.
The table below summarizes how to create all four variations of relationships.
<div>
<table border="yes">
    <tr><th>Relationship</th>
        <th>Interface</th>
        <th>Duplicates</th>
        <th>Example</th>
    </tr>
    <tr><td>One-to-one</td>
        <td><a href="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><code>SecondaryKeyCreator</code></a></td>
        <td>No</td>
        <td>A person record with a unique social security number key.</td>
    </tr>
    <tr><td>Many-to-one</td>
        <td><a href="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><code>SecondaryKeyCreator</code></a></td>
        <td>Yes</td>
        <td>A person record with a non-unique employer key.</td>
    </tr>
    <tr><td>One-to-many</td>
        <td><a href="../../../com/sleepycat/db/SecondaryMultiKeyCreator.html" title="interface in com.sleepycat.db"><code>SecondaryMultiKeyCreator</code></a></td>
        <td>No</td>
        <td>A person record with multiple unique email address keys.</td>
    </tr>
    <tr><td>Many-to-many</td>
        <td><a href="../../../com/sleepycat/db/SecondaryMultiKeyCreator.html" title="interface in com.sleepycat.db"><code>SecondaryMultiKeyCreator</code></a></td>
        <td>Yes</td>
        <td>A person record with multiple non-unique organization keys.</td>
    </tr>
</table>
</div>
<p>To configure a database for duplicates. pass true to <a href="../../../com/sleepycat/db/DatabaseConfig.html#setSortedDuplicates(boolean)"><code>DatabaseConfig.setSortedDuplicates(boolean)</code></a>.</p>
<p>
Note that <code>SecondaryMultiKeyCreator</code> may also be used for single key
secondaries (many-to-one and one-to-one); in this case, at most a single key is
added to the results set.  <code>SecondaryMultiKeyCreator</code> is only
slightly less efficient than <a href="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><code>SecondaryKeyCreator</code></a> in that two or three
temporary sets must be created to hold the results.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../com/sleepycat/db/SecondaryConfig.html" title="class in com.sleepycat.db"><code>SecondaryConfig</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../com/sleepycat/db/SecondaryMultiKeyCreator.html#createSecondaryKeys(com.sleepycat.db.SecondaryDatabase,%20com.sleepycat.db.DatabaseEntry,%20com.sleepycat.db.DatabaseEntry,%20java.util.Set)">createSecondaryKeys</a></strong>(<a href="../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</a>&nbsp;secondary,
                   <a href="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</a>&nbsp;key,
                   <a href="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</a>&nbsp;data,
                   java.util.Set&nbsp;results)</code>
<div class="block">Creates a secondary key entry, given a primary key and data entry.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="createSecondaryKeys(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, java.util.Set)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createSecondaryKeys</h4>
<pre>void&nbsp;createSecondaryKeys(<a href="../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</a>&nbsp;secondary,
                       <a href="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</a>&nbsp;key,
                       <a href="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</a>&nbsp;data,
                       java.util.Set&nbsp;results)
                         throws <a href="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</a></pre>
<div class="block">Creates a secondary key entry, given a primary key and data entry.
    <p>
    A secondary key may be derived from the primary key, primary data, or a
    combination of the primary key and data.  Zero or more secondary keys may
    be derived from the primary record and returned in the results parameter.
    To ensure the integrity of a secondary database the key creator method must
    always return the same results for a given set of input parameters.
    <p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>secondary</code> - the database to which the secondary key will be added.
    This parameter is passed for informational purposes but is not commonly
    used.
    <p></dd><dd><code>key</code> - the primary key entry.  This parameter must not be modified
    by this method.
    <p></dd><dd><code>data</code> - the primary data entry.  This parameter must not be modified
    by this method.
    <p></dd><dd><code>results</code> - the set to contain the the secondary key DatabaseEntry
    objects created by this method.
    <p></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</a></code> - if an error occurs attempting to create the
    secondary key.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SecondaryMultiKeyCreator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><b>Berkeley DB</b><br><font size="-1"> version 6.1.29</font></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../com/sleepycat/db/Sequence.html" title="class in com.sleepycat.db"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/sleepycat/db/SecondaryMultiKeyCreator.html" target="_top">Frames</a></li>
<li><a href="SecondaryMultiKeyCreator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><font size=1>Copyright (c) 1996, 2016 Oracle and/or its affiliates.  All rights reserved.</font></small></p>
</body>
</html>