<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_15) on Thu Jul 17 13:34:49 CDT 2008 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
Index (OpenJPA 1.0.3 API)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Index (OpenJPA 1.0.3 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Z_">Z</A> <A HREF="#___">_</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#abortUnion()"><B>abortUnion()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.html#abortUnion()"><B>abortUnion()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Union.html" title="interface in org.apache.openjpa.jdbc.sql">Union</A>
<DD>Force the use of a series of standard selects rather than a true UNION.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#abs(org.apache.openjpa.kernel.exps.Value)"><B>abs(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#abs(org.apache.openjpa.kernel.exps.Value)"><B>abs(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the absolute value of the given one.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#abs(org.apache.openjpa.kernel.exps.Value)"><B>abs(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Move to the given <strong>0-based</strong> row in the result, or
 return false if the row does not exist.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Override if desired.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#absolute(int)"><B>absolute(int)</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Move to the given 0-based position.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#absoluteInternal(int)"><B>absoluteInternal(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Throws an exception by default.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#absoluteInternal(int)"><B>absoluteInternal(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#absoluteInternal(int)"><B>absoluteInternal(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel"><B>AbstractBrokerFactory</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Abstract implementation of the <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A>
 that must be subclassed for a specific runtime.<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#AbstractBrokerFactory(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>AbstractBrokerFactory(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta"><B>AbstractCFMetaDataFactory</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Base class for factory implementations built around XML metadata files
 in the common fomat.<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#AbstractCFMetaDataFactory()"><B>AbstractCFMetaDataFactory()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Parser.html" title="interface in org.apache.openjpa.meta"><B>AbstractCFMetaDataFactory.Parser</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Internal parser interface.<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta"><B>AbstractCFMetaDataFactory.Serializer</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Internal serializer interface.<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util"><B>AbstractChangeTracker</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Base class that provides utilities to change trackers.<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#AbstractChangeTracker()"><B>AbstractChangeTracker()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>AbstractClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op strategy for easy extension.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#AbstractClassStrategy()"><B>AbstractClassStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>AbstractConcurrentEventManager</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>Base event manager that handles adding/removing listeners
 and firing events.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#AbstractConcurrentEventManager()"><B>AbstractConcurrentEventManager()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache"><B>AbstractDataCache</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Abstract <A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCache</CODE></A> implementation that provides various
 statistics, logging, and timeout functionality common across cache
 implementations.<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#AbstractDataCache()"><B>AbstractDataCache()</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>AbstractDB2Dictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Base dictionary for the IBM DB2 family of databases.<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html#AbstractDB2Dictionary()"><B>AbstractDB2Dictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractDB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>AbstractDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op strategy for easy extension.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#AbstractDiscriminatorStrategy()"><B>AbstractDiscriminatorStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps"><B>AbstractExpressionBuilder</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Abstract base class to help build expressions.<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#AbstractExpressionBuilder(org.apache.openjpa.kernel.exps.ExpressionFactory, org.apache.openjpa.kernel.exps.Resolver)"><B>AbstractExpressionBuilder(ExpressionFactory, Resolver)</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html" title="class in org.apache.openjpa.kernel.exps"><B>AbstractExpressionVisitor</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>No-op abstract visitor meant for easy extension.<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html#AbstractExpressionVisitor()"><B>AbstractExpressionVisitor()</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionVisitor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>AbstractFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op strategy for easy extension.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#AbstractFieldStrategy()"><B>AbstractFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc"><B>AbstractJDBCListener</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>An abstract implementation of the <A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>JDBCListener</CODE></A>
 listener.<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#AbstractJDBCListener()"><B>AbstractJDBCListener()</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>AbstractJDBCSavepointManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Abstract <A HREF="./org/apache/openjpa/kernel/SavepointManager.html" title="interface in org.apache.openjpa.kernel"><CODE>SavepointManager</CODE></A> implementation that
 delegates to the subclass for savepoint operations on the active
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#AbstractJDBCSavepointManager()"><B>AbstractJDBCSavepointManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel"><B>AbstractJDBCSavepointManager.ConnectionSavepoint</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>A savepoint which provides access to the current transactional
 connection.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html#AbstractJDBCSavepointManager.ConnectionSavepoint(org.apache.openjpa.kernel.Broker, java.lang.String, boolean)"><B>AbstractJDBCSavepointManager.ConnectionSavepoint(Broker, String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager.ConnectionSavepoint</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><B>AbstractJDBCSeq</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Abstract sequence implementation.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#AbstractJDBCSeq()"><B>AbstractJDBCSeq()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event"><B>AbstractLifecycleListener</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Abstract implementation of the <A HREF="./org/apache/openjpa/event/LifecycleListener.html" title="interface in org.apache.openjpa.event"><CODE>LifecycleListener</CODE></A> interface
 which delegates events to a single method.<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#AbstractLifecycleListener()"><B>AbstractLifecycleListener()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel"><B>AbstractLockManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Abstract <A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel"><CODE>LockManager</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#AbstractLockManager()"><B>AbstractLockManager()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log"><B>AbstractLog</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>A simple implementation of the <A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log"><CODE>Log</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#AbstractLog()"><B>AbstractLog()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util"><B>AbstractLRSProxyCollection</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>A collection proxy designed for collections backed by extremely large
 result sets in which each call to <A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#iterator()"><CODE>AbstractLRSProxyCollection.iterator()</CODE></A> may perform a database
 query.<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#AbstractLRSProxyCollection(java.lang.Class, boolean)"><B>AbstractLRSProxyCollection(Class, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util"><B>AbstractLRSProxyMap</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>A map proxy designed for maps backed by extremely large result sets in
 which each call to <A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#get(java.lang.Object)"><CODE>AbstractLRSProxyMap.get(java.lang.Object)</CODE></A> or <A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#containsKey(java.lang.Object)"><CODE>AbstractLRSProxyMap.containsKey(java.lang.Object)</CODE></A> may perform a
 database query.<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#AbstractLRSProxyMap(java.lang.Class, java.lang.Class)"><B>AbstractLRSProxyMap(Class, Class)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AbstractManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>AbstractManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/ee/AbstractManagedRuntime.html#AbstractManagedRuntime()"><B>AbstractManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AbstractManagedRuntime.html" title="class in org.apache.openjpa.ee">AbstractManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta"><B>AbstractMetaDataDefaults</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Abstract metadata defaults.<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#AbstractMetaDataDefaults()"><B>AbstractMetaDataDefaults()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta"><B>AbstractMetaDataFactory</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Abstract <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> that provides default implementations
 of many methods.<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#AbstractMetaDataFactory()"><B>AbstractMetaDataFactory()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop"><B>AbstractNonSequentialResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Abstract base class for random-access result lists.<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#AbstractNonSequentialResultList()"><B>AbstractNonSequentialResultList()</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel"><B>AbstractPCData</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Abstract base class which implements core PCData behavior.<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#AbstractPCData()"><B>AbstractPCData()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel"><B>AbstractPCResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Abstract implementation of <A HREF="./org/apache/openjpa/kernel/PCResultObjectProvider.html" title="interface in org.apache.openjpa.kernel"><CODE>PCResultObjectProvider</CODE></A>
 that implements <A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#getResultObject()"><CODE>ResultObjectProvider.getResultObject()</CODE></A>
 by assembling the necessary information about the object to be loaded.<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#AbstractPCResultObjectProvider(org.apache.openjpa.kernel.StoreContext)"><B>AbstractPCResultObjectProvider(StoreContext)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Create a new provider for loading PC objects from the input
 into <code>ctx</code>.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf"><B>AbstractProductDerivation</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Abstract no-op product derivation for easy extension.<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#AbstractProductDerivation()"><B>AbstractProductDerivation()</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache"><B>AbstractQueryCache</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Abstract <A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache"><CODE>QueryCache</CODE></A> implementation that provides various
 statistics, logging, and timeout functionality common across cache
 implementations.<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#AbstractQueryCache()"><B>AbstractQueryCache()</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event"><B>AbstractRemoteCommitProvider</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Abstract implementation of <A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitProvider</CODE></A>.<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#AbstractRemoteCommitProvider()"><B>AbstractRemoteCommitProvider()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql"><B>AbstractResult</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A> implementation designed to be subclassed easily by
 implementations.<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#AbstractResult()"><B>AbstractResult()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop"><B>AbstractResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Abstract base class for read-only result lists.<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#AbstractResultList()"><B>AbstractResultList()</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop"><B>AbstractSequentialResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Abstract base class for sequential result lists.<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#AbstractSequentialResultList()"><B>AbstractSequentialResultList()</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>AbstractSQLServerDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for the SQL Server databases (Sybase and MS SQL Server).<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#AbstractSQLServerDictionary()"><B>AbstractSQLServerDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html" title="class in org.apache.openjpa.abstractstore"><B>AbstractStoreBrokerFactory</B></A> - Class in <A HREF="./org/apache/openjpa/abstractstore/package-summary.html">org.apache.openjpa.abstractstore</A><DD><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A> implementation for use with the
 <A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore"><CODE>AbstractStoreManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html#AbstractStoreBrokerFactory(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String, java.lang.String, java.lang.String)"><B>AbstractStoreBrokerFactory(OpenJPAConfiguration, String, String, String)</B></A> - 
Constructor for class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreBrokerFactory</A>
<DD>Construct the factory with the given settings.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore"><B>AbstractStoreManager</B></A> - Class in <A HREF="./org/apache/openjpa/abstractstore/package-summary.html">org.apache.openjpa.abstractstore</A><DD>Abstract store manager implementation to ease development of custom
 OpenJPA back-ends.<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#AbstractStoreManager()"><B>AbstractStoreManager()</B></A> - 
Constructor for class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel"><B>AbstractStoreQuery</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Abstract <A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel"><CODE>StoreQuery</CODE></A> that implements most methods as no-ops.<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#AbstractStoreQuery()"><B>AbstractStoreQuery()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel"><B>AbstractStoreQuery.AbstractExecutor</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Abstract <A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel"><CODE>AbstractStoreQuery.AbstractExecutor</CODE></A> that implements most methods as no-ops.<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#AbstractStoreQuery.AbstractExecutor()"><B>AbstractStoreQuery.AbstractExecutor()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>AbstractStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op strategy for easy extension.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#AbstractStrategy()"><B>AbstractStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant"><B>AbstractTask</B></A> - Class in <A HREF="./org/apache/openjpa/lib/ant/package-summary.html">org.apache.openjpa.lib.ant</A><DD>Ant tasks all have a nested <code>&lt;config&rt;</code> tag, which uses
 the configuration as a bean-like task.<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#AbstractTask()"><B>AbstractTask()</B></A> - 
Constructor for class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event"><B>AbstractTransactionListener</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Abstract implementation of the <A HREF="./org/apache/openjpa/event/TransactionListener.html" title="interface in org.apache.openjpa.event"><CODE>TransactionListener</CODE></A> interface
 that provides no-op implementations of all methods.<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#AbstractTransactionListener()"><B>AbstractTransactionListener()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>AbstractUpdateManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Base update manager with common functionality.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#AbstractUpdateManager()"><B>AbstractUpdateManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html" title="class in org.apache.openjpa.jdbc.kernel"><B>AbstractUpdateManager.CustomMapping</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Executes customized mapping updates.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html#AbstractUpdateManager.CustomMapping(int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.Strategy)"><B>AbstractUpdateManager.CustomMapping(int, OpenJPAStateManager, Strategy)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager.CustomMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>AbstractValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op implementations of <A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>ValueHandler</CODE></A> interface methods.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#AbstractValueHandler()"><B>AbstractValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>AbstractVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op strategy for easy extension.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#AbstractVersionStrategy()"><B>AbstractVersionStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#acceptAction(java.net.ServerSocket)"><B>acceptAction(ServerSocket)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for ServerSocket.accept().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)"><B>acceptVisit(ExpressionVisitor)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Expression.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)"><B>acceptVisit(ExpressionVisitor)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Expression.html" title="interface in org.apache.openjpa.kernel.exps">Expression</A>
<DD>Accept a visit from a tree visitor.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)"><B>acceptVisit(ExpressionVisitor)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)"><B>acceptVisit(ExpressionVisitor)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Accept a visit from a tree visitor.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ACCESS_FIELD"><B>ACCESS_FIELD</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Persistent attributes are accessed via direct field access.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ACCESS_PROPERTY"><B>ACCESS_PROPERTY</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Persistent attributes are accessed via setters and getters.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#ACCESS_TYPE_FIELD"><B>ACCESS_TYPE_FIELD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Access type for generated source, defaults to field-based access.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#ACCESS_TYPE_PROPERTY"><B>ACCESS_TYPE_PROPERTY</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ACCESS_UNKNOWN"><B>ACCESS_UNKNOWN</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Unknown access type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>AccessDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Access via DataDirect SequeLink and DataDirect ODBC
 FoxPro driver.<DT><A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html#AccessDictionary()"><B>AccessDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AccessDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#accessingField(java.lang.Object, int)"><B>accessingField(Object, int)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Notify the state manager for <code>o</code> (if any) that a field
 is about to be accessed.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#accessingField(int)"><B>accessingField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Field access callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#accessingField(int)"><B>accessingField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#accessingField(int)"><B>accessingField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#accessingField(int)"><B>accessingField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#accessingField(int)"><B>accessingField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#accessPath"><B>accessPath</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#accessType"><B>accessType</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#ACT_CASCADE"><B>ACT_CASCADE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#ACT_NONE"><B>ACT_NONE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#ACT_RUN"><B>ACT_RUN</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#action"><B>action</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#action"><B>action</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html#action"><B>action</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html" title="class in org.apache.openjpa.meta">MetaDataTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#ACTION_ADD"><B>ACTION_ADD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_ADD"><B>ACTION_ADD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_ADD"><B>ACTION_ADD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_ADD"><B>ACTION_ADD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#ACTION_ADD"><B>ACTION_ADD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#ACTION_ADD"><B>ACTION_ADD</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_BUILD"><B>ACTION_BUILD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_BUILD_SCHEMA"><B>ACTION_BUILD_SCHEMA</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ACTION_CASCADE"><B>ACTION_CASCADE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Cascade any modification of the joined primary key columns to
 this table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_CREATEDB"><B>ACTION_CREATEDB</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ACTION_DEFAULT"><B>ACTION_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Set the local columns to their default values if the primary key
 columns are modified.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#ACTION_DELETE"><B>ACTION_DELETE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Mark the row for deletion.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_DELETE_TABLE_CONTENTS"><B>ACTION_DELETE_TABLE_CONTENTS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#ACTION_DROP"><B>ACTION_DROP</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_DROP"><B>ACTION_DROP</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_DROP"><B>ACTION_DROP</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_DROP"><B>ACTION_DROP</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#ACTION_DROP"><B>ACTION_DROP</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#ACTION_DROP"><B>ACTION_DROP</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_DROPDB"><B>ACTION_DROPDB</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#ACTION_EXCEPTION"><B>ACTION_EXCEPTION</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Constant representing the <A HREF="./org/apache/openjpa/kernel/InverseManager.html#ACTION_EXCEPTION"><CODE>InverseManager.ACTION_EXCEPTION</CODE></A> action
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_EXPORT"><B>ACTION_EXPORT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_EXPORT"><B>ACTION_EXPORT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#ACTION_GET"><B>ACTION_GET</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_GET"><B>ACTION_GET</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_IMPORT"><B>ACTION_IMPORT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_IMPORT"><B>ACTION_IMPORT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#ACTION_INSERT"><B>ACTION_INSERT</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Mark the row for inserttion.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#ACTION_MANAGE"><B>ACTION_MANAGE</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Constant representing the <A HREF="./org/apache/openjpa/kernel/InverseManager.html#ACTION_MANAGE"><CODE>InverseManager.ACTION_MANAGE</CODE></A> action
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ACTION_NONE"><B>ACTION_NONE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Logical foreign key; links columns, but does not perform any action
 when the joined primary key columns are modified.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ACTION_NULL"><B>ACTION_NULL</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Null the local columns if the joined primary key columns are modified.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_REFLECT"><B>ACTION_REFLECT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_REFRESH"><B>ACTION_REFRESH</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_REFRESH"><B>ACTION_REFRESH</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ACTION_RESTRICT"><B>ACTION_RESTRICT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Throw an exception if joined primary key columns are modified.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTION_RETAIN"><B>ACTION_RETAIN</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_SET"><B>ACTION_SET</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#ACTION_UNKNOWN"><B>ACTION_UNKNOWN</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Symbolic constant reserved for situations when a row operation
 is unknown.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#ACTION_UPDATE"><B>ACTION_UPDATE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Mark the row for update.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTION_VALIDATE"><B>ACTION_VALIDATE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#ACTION_WARN"><B>ACTION_WARN</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Constant representing the <A HREF="./org/apache/openjpa/kernel/InverseManager.html#ACTION_WARN"><CODE>InverseManager.ACTION_WARN</CODE></A> action
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#ACTIONS"><B>ACTIONS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#ACTIONS"><B>ACTIONS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#ACTIONS"><B>ACTIONS</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html" title="class in org.apache.openjpa.event">LifecycleEventManager.ListenerList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#add(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>add(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#add(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object, java.lang.Object)"><B>add(JDBCStore, Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#add(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object, java.lang.Object)"><B>add(JDBCStore, Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#add(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object, java.lang.Object)"><B>add(JDBCStore, Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Add an item to the data structure representing a field value.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#add(int, java.lang.Object)"><B>add(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#add(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>add(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the two values added together.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#add(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>add(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#add(java.lang.Object, java.lang.Class, java.lang.Object, java.lang.Class)"><B>add(Object, Class, Object, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Add the given values.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#add(int, java.lang.Object)"><B>add(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#add(int, java.lang.Object)"><B>add(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Inserts the specified element at the tail of this queue.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#add(int, java.lang.Object)"><B>add(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Adds the specified element to this set if it is not already present.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">Queue</A>
<DD>Inserts the specified element into this queue if it is possible to do so
 immediately without violating capacity restrictions, returning
 <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt>
 if no space is currently available.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, java.lang.String)"><B>add(String, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, boolean)"><B>add(String, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, int)"><B>add(String, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, java.lang.Class)"><B>add(String, Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, java.util.EnumSet)"><B>add(String, EnumSet)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, java.lang.Enum)"><B>add(String, Enum)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#add(java.lang.String, org.apache.openjpa.persistence.AnnotationBuilder)"><B>add(String, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#add"><B>add</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Collection of added items.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Mark the given value as added.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#addAccessPath(org.apache.openjpa.meta.ClassMetaData)"><B>addAccessPath(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Register the specified metadata as being in the query's access path.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#addAccessPathMetaDatas(java.util.List, org.apache.openjpa.meta.ClassMetaData[])"><B>addAccessPathMetaDatas(List, ClassMetaData[])</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Add the given access path metadatas to the full path list, making sure
 to maintain only base metadatas in the list.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#addAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>addAggregateListener(AggregateListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#addAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>addAggregateListener(AggregateListener)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Register an aggregate listener for the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#addAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>addAggregateListener(AggregateListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html#addAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>addAggregateListener(AggregateListener)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuerySPI</A>
<DD>Register an aggregate listener for the query.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#addAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>addAggregateListener(AggregateListener)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#addAll(org.apache.openjpa.jdbc.schema.Schema)"><B>addAll(Schema)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Add the given schema's objects to the set of objects that will be
 serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#addAll(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>addAll(SchemaGroup)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Add all the objects in the given group to the set of objects that
 will be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#addAll(org.apache.openjpa.jdbc.schema.Schema)"><B>addAll(Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#addAll(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>addAll(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#addAll(org.apache.openjpa.jdbc.sql.SelectImpl.Selects)"><B>addAll(SelectImpl.Selects)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Add all aliases from another instance.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#addAll(int, java.util.Collection)"><B>addAll(int, Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#addAll(int, java.util.Collection)"><B>addAll(int, Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#addAll(int, java.util.Collection)"><B>addAll(int, Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#addAll(int, java.util.Collection)"><B>addAll(int, Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Adds all of the elements in the specified collection to this set if
 they're not already present.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html#addAll(org.apache.openjpa.meta.MetaDataRepository)"><B>addAll(MetaDataRepository)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Serializer</A>
<DD>Add all components in the given repository to the set to be
 serialized.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAll(org.apache.openjpa.meta.MetaDataRepository)"><B>addAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add all components in the given repository to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#addAll(org.apache.openjpa.meta.MetaDataRepository)"><B>addAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#addAll(org.apache.openjpa.meta.MetaDataRepository)"><B>addAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addAll(org.apache.openjpa.meta.MetaDataRepository)"><B>addAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add all components in the given repository to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#addAll(org.apache.openjpa.util.ProxyCollection, int, java.util.Collection)"><B>addAll(ProxyCollection, int, Collection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Override for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#addAll(int, java.util.Collection)" title="class or interface in java.util"><CODE>List.addAll(int, Collection)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#addAll(org.apache.openjpa.util.ProxyCollection, java.util.Collection)"><B>addAll(ProxyCollection, Collection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Override for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#addAll(java.util.Collection)" title="class or interface in java.util"><CODE>Collection.addAll(java.util.Collection<? extends E>)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#addAllAbsent(java.util.Collection)"><B>addAllAbsent(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(org.apache.openjpa.persistence.AnnotationBuilder, java.lang.Object)"><B>addAnnotation(AnnotationBuilder, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(org.apache.openjpa.persistence.AnnotationBuilder, org.apache.openjpa.meta.ClassMetaData)"><B>addAnnotation(AnnotationBuilder, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add an annotation builder to list of builders for the specified
 class metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(org.apache.openjpa.persistence.AnnotationBuilder, org.apache.openjpa.meta.FieldMetaData)"><B>addAnnotation(AnnotationBuilder, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add an annotation builder to list of builders for the specified
 field metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(org.apache.openjpa.persistence.AnnotationBuilder, org.apache.openjpa.meta.SequenceMetaData)"><B>addAnnotation(AnnotationBuilder, SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add an annotation builder to list of builders for the specified
 sequence metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(org.apache.openjpa.persistence.AnnotationBuilder, org.apache.openjpa.meta.QueryMetaData)"><B>addAnnotation(AnnotationBuilder, QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add an annotation builder to list of builders for the specified
 query metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(java.lang.Class, org.apache.openjpa.meta.ClassMetaData)"><B>addAnnotation(Class&lt;? extends Annotation&gt;, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Creates an an annotation builder for the specified class metadata
 and adds it to list of builders.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(java.lang.Class, org.apache.openjpa.meta.FieldMetaData)"><B>addAnnotation(Class&lt;? extends Annotation&gt;, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Creates an an annotation builder for the specified class metadata
 and adds it to list of builders.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(java.lang.Class, org.apache.openjpa.meta.SequenceMetaData)"><B>addAnnotation(Class&lt;? extends Annotation&gt;, SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Creates an an annotation builder for the specified class metadata
 and adds it to list of builders.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addAnnotation(java.lang.Class, org.apache.openjpa.meta.QueryMetaData)"><B>addAnnotation(Class&lt;? extends Annotation&gt;, QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Creates an an annotation builder for the specified class metadata
 and adds it to list of builders.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#addAnnotation(org.apache.openjpa.persistence.AnnotationBuilder, org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>addAnnotation(AnnotationBuilder, QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Add an annotation builder to list of builders for the specified
 class metadata.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#addAnnotation(java.lang.Class, org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>addAnnotation(Class&lt;? extends Annotation&gt;, QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Creates an an annotation builder for the specified class metadata
 and adds it to list of builders.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#addAttribute(java.lang.String, java.lang.String)"><B>addAttribute(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Add an attribute to the current group.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#addBatch(java.lang.String)"><B>addBatch(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#addBatch()"><B>addBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#addBatch(java.lang.String)"><B>addBatch(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#addBatch()"><B>addBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#addBatch(java.lang.String)"><B>addBatch(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#addBeanField(serp.bytecode.BCClass, java.lang.String, java.lang.Class)"><B>addBeanField(BCClass, String, Class)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Add a bean field of the given name and type.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addBoolean(java.lang.String)"><B>addBoolean(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#addCastAsType(java.lang.String, org.apache.openjpa.jdbc.kernel.exps.Val)"><B>addCastAsType(String, Val)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>add CAST for a function operator where operand is a param
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#addCastAsType(java.lang.String, org.apache.openjpa.jdbc.kernel.exps.Val)"><B>addCastAsType(String, Val)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>add CAST for a function operator where operand is a param
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#addCastForParam(java.lang.String, org.apache.openjpa.jdbc.kernel.exps.Val)"><B>addCastForParam(String, Val)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Replace SQL '?' with CAST string if required by DB platform
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#addClassConditions(org.apache.openjpa.jdbc.sql.Select, boolean, org.apache.openjpa.jdbc.sql.Joins)"><B>addClassConditions(Select, boolean, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Add WHERE conditions to the given select limiting the returned results
 to our mapping type, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#addClassExtensionKeys(java.util.Collection)"><B>addClassExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#addClassExtensionKeys(java.util.Collection)"><B>addClassExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#addClassExtensionKeys(java.util.Collection)"><B>addClassExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#addClassExtensionKeys(java.util.Collection)"><B>addClassExtensionKeys(Collection)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Add any extension keys used by this instance to the given set.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#addClassExtensionKeys(java.util.Collection)"><B>addClassExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#addClassLoader(java.lang.ClassLoader)"><B>addClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Add the given class loader to the set of loaders that will be tried.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#addClassLoader(int, java.lang.ClassLoader)"><B>addClassLoader(int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Add the given class loader at the specified index.
<DT><A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html#addClassLoader(java.lang.ClassLoader)"><B>addClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html" title="class in org.apache.openjpa.util">MultiLoaderClassResolver</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#addClassLoaders(int, org.apache.openjpa.lib.util.MultiClassLoader)"><B>addClassLoaders(int, MultiClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Adds all class loaders from the given multi loader starting at the
 given index.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#addClassLoaders(org.apache.openjpa.lib.util.MultiClassLoader)"><B>addClassLoaders(MultiClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Adds all the class loaders from the given multi loader.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addClassMappingAnnotations(org.apache.openjpa.meta.ClassMetaData)"><B>addClassMappingAnnotations(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add mapping attributes for the given class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addClassMappingAttributes(org.apache.openjpa.meta.ClassMetaData)"><B>addClassMappingAttributes(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add mapping attributes for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#addColumn(org.apache.openjpa.jdbc.schema.Column)"><B>addColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Add a column to the constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html#addColumn(org.apache.openjpa.jdbc.schema.Column)"><B>addColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema">PrimaryKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#addColumn(org.apache.openjpa.jdbc.schema.Column)"><B>addColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Add the given column to the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addColumn(java.lang.String)"><B>addColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Add a column to the table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#addColumnResult(java.lang.Object)"><B>addColumnResult(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Add the id of a mapped column in the query result.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#addComments(java.lang.Object)"><B>addComments(Object)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Add current comments to the given entity.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#addComments(java.lang.String[])"><B>addComments(String[])</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Add a comment to the stream.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#addComments(java.lang.Object)"><B>addComments(Object)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Write the given entity's comments.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#addCommments(java.lang.Object)"><B>addCommments(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#addConstraints(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>addConstraints(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Add existing unique constraints and indexes to the given value.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#addContainedBy(org.apache.openjpa.meta.FetchGroup)"><B>addContainedBy(FetchGroup)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Adds this receiver as one of the included fetch groups of the given
 parent.
<DT><A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html#addContextClassLoaders(org.apache.openjpa.lib.util.MultiClassLoader)"><B>addContextClassLoaders(MultiClassLoader)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html" title="class in org.apache.openjpa.util">Serialization.ClassResolvingObjectInputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html#addContextClassLoaders(org.apache.openjpa.lib.util.MultiClassLoader)"><B>addContextClassLoaders(MultiClassLoader)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html" title="class in org.apache.openjpa.util">Serialization.PersistentObjectInputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#addDeclaredFetchGroup(java.lang.String)"><B>addDeclaredFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Adds fetch group of the given name, or returns existing instance.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#addDeclaredField(java.lang.String, java.lang.Class)"><B>addDeclaredField(String, Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Add a new field metadata to this class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#addDeclaredFieldMapping(java.lang.String, java.lang.Class)"><B>addDeclaredFieldMapping(String, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#addDeclaredField(java.lang.String, java.lang.Class)"><CODE>ClassMetaData.addDeclaredField(java.lang.String, java.lang.Class)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#addDeclaredInclude(java.lang.String)"><B>addDeclaredInclude(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Includes given fetch group within this receiver.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#addDeclaredInterface(java.lang.Class)"><B>addDeclaredInterface(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Explicitly declare the given interface among the ones this
 class implements.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#addDecorator(org.apache.openjpa.lib.jdbc.ConnectionDecorator)"><B>addDecorator(ConnectionDecorator)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>Add a connection decorator.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#addDecorators(java.util.Collection)"><B>addDecorators(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>Add multiple connection decorators efficiently.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html#addDefaultConstructor"><B>addDefaultConstructor</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#addDefinedSuperclassField(java.lang.String, java.lang.Class, java.lang.Class)"><B>addDefinedSuperclassField(String, Class, Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Add a new defined superclass field metadata to this class.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addDouble(java.lang.String)"><B>addDouble(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#added(java.lang.Object)"><B>added(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Notify the tracker that the given object was added.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#added(java.lang.Object)"><B>added(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#added(java.lang.Object, java.lang.Object)"><B>added(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTracker.html#added(java.lang.Object)"><B>added(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTracker.html" title="interface in org.apache.openjpa.util">CollectionChangeTracker</A>
<DD>Record that the given element was added.
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#added(java.lang.Object)"><B>added(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTracker.html#added(java.lang.Object, java.lang.Object)"><B>added(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util">MapChangeTracker</A>
<DD>Record that the given entry was added to the map.
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#added(java.lang.Object, java.lang.Object)"><B>added(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#addEdge(org.apache.openjpa.lib.graph.Edge)"><B>addEdge(Edge)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Add an edge to the graph.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#addEmbeddedMetaData()"><B>addEmbeddedMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#addEmbeddedMetaData()"><B>addEmbeddedMetaData()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Add embedded metadata for this value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#addEmbeddedMetaData()"><B>addEmbeddedMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#addException(java.util.Collection, java.lang.Exception)"><B>addException(Collection, Exception)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>Add the given exception to the given list, which may start out as null.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#addExpirationListener(org.apache.openjpa.datacache.ExpirationListener)"><B>addExpirationListener(ExpirationListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#addExpirationListener(org.apache.openjpa.datacache.ExpirationListener)"><B>addExpirationListener(ExpirationListener)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Add a new expiration event listener to this cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#addExpirationListener(org.apache.openjpa.datacache.ExpirationListener)"><B>addExpirationListener(ExpirationListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#addExtension(java.lang.String, java.lang.Object)"><B>addExtension(String, Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Add a vendor extension to this entity.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#addExtension(java.lang.String, java.lang.String, java.lang.Object)"><B>addExtension(String, String, Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Add a vendor extension to this entity.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#addExtensionKeys(java.util.Collection)"><B>addExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#addExtensionKeys(java.util.Collection)"><B>addExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Add all the known extension keys to the specified collection; any
 implementation that utilized new extensions should override this
 method to include both the known extensions of its superclass as well
 as its own extension keys.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#addExtensionKeys(java.util.Collection)"><B>addExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Adds <code>group</code> to the set of fetch group names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>group</code> to the set of fetch group to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFetchGroup(java.lang.String)"><B>addFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Adds <code>groups</code> to the set of fetch group names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFetchGroups(java.lang.String...)"><B>addFetchGroups(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>groups</code> to the set of fetch group names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>groups</code> to the set of fetch group names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFetchGroups(java.lang.String...)"><B>addFetchGroups(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFetchGroups(java.lang.String...)"><B>addFetchGroups(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFetchGroups(java.util.Collection)"><B>addFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFetchGroups(java.lang.String...)"><B>addFetchGroups(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#addFetchInnerJoin(java.lang.String)"><B>addFetchInnerJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#addFetchInnerJoin(java.lang.String)"><B>addFetchInnerJoin(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Adds <code>field</code> to the set of fully-qualified field names to
 eagerly join when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#addFetchInnerJoin(java.lang.String)"><B>addFetchInnerJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#addFetchInnerJoins(java.util.Collection)"><B>addFetchInnerJoins(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#addFetchInnerJoins(java.util.Collection)"><B>addFetchInnerJoins(Collection)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Adds <code>fields</code> to the set of fully-qualified field names to
 eagerly join when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#addFetchInnerJoins(java.util.Collection)"><B>addFetchInnerJoins(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Adds <code>field</code> to the set of fully-qualified field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#addField(java.lang.String, org.apache.openjpa.meta.XMLMetaData)"><B>addField(String, XMLMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#addField(java.lang.String, org.apache.openjpa.meta.XMLMetaData)"><B>addField(String, XMLMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#addField(java.lang.String, org.apache.openjpa.meta.XMLMetaData)"><B>addField(String, XMLMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>field</code> to the set of fully-qualified field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addField(java.lang.Class, java.lang.String)"><B>addField(Class, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>field</code> to the set of field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addField(java.lang.Class, java.lang.String)"><B>addField(Class, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addField(java.lang.Class, java.lang.String)"><B>addField(Class, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addField(java.lang.Class, java.lang.String)"><B>addField(Class, String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addField(java.lang.String)"><B>addField(String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#addFieldExtensionKeys(java.util.Collection)"><B>addFieldExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#addFieldExtensionKeys(java.util.Collection)"><B>addFieldExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#addFieldExtensionKeys(java.util.Collection)"><B>addFieldExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#addFieldExtensionKeys(java.util.Collection)"><B>addFieldExtensionKeys(Collection)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Add any extension keys used by this instance to the given set.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#addFieldExtensionKeys(java.util.Collection)"><B>addFieldExtensionKeys(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addFieldMappingAttributes(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.AnnotationBuilder)"><B>addFieldMappingAttributes(FieldMetaData, FieldMetaData, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add mapping attributes for the given field.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addFieldMappingAttributes(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>addFieldMappingAttributes(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add mapping attributes for the given field.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Adds <code>fields</code> to the set of fully-qualified field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFields(java.lang.String...)"><B>addFields(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>fields</code> to the set of fully-qualified field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFields(java.lang.Class, java.lang.String...)"><B>addFields(Class, String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>fields</code> to the set of field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>fields</code> to the set of fully-qualified field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#addFields(java.lang.Class, java.util.Collection)"><B>addFields(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Adds <code>fields</code> to the set of field names to
 use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFields(java.lang.String...)"><B>addFields(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFields(java.lang.Class, java.lang.String...)"><B>addFields(Class, String...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#addFields(java.lang.Class, java.util.Collection)"><B>addFields(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFields(java.lang.Class, java.util.Collection)"><B>addFields(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFields(java.lang.Class, java.lang.String...)"><B>addFields(Class, String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#addFields(java.lang.String...)"><B>addFields(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFields(java.lang.Class, java.util.Collection)"><B>addFields(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFields(java.lang.Class, java.lang.String...)"><B>addFields(Class, String...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFields(java.util.Collection)"><B>addFields(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#addFields(java.lang.String...)"><B>addFields(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addFile(java.lang.String)"><B>addFile(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#addFileset(org.apache.tools.ant.types.FileSet)"><B>addFileset(FileSet)</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#addFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>addFilterListener(FilterListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#addFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>addFilterListener(FilterListener)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Register a filter listener for the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#addFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>addFilterListener(FilterListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html#addFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>addFilterListener(FilterListener)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuerySPI</A>
<DD>Register a filter listener for the query.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#addFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>addFilterListener(FilterListener)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#addForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>addForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Add the given foreign key to the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addForeignKey()"><B>addForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Add a foreign key to the table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addForeignKey(java.lang.String)"><B>addForeignKey(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Add a foreign key to the table.
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#addGraphVisitor(org.apache.openjpa.lib.graph.GraphVisitor)"><B>addGraphVisitor(GraphVisitor)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>add a <A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html" title="interface in org.apache.openjpa.lib.graph"><CODE>GraphVisitor</CODE></A> to be notified during breadth first search.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#addHint(java.lang.String, java.lang.Object)"><B>addHint(String, Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Add a query hint.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#addIfAbsent(java.lang.Object)"><B>addIfAbsent(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addIndex(java.lang.String)"><B>addIndex(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Add an index to the table.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addInt(java.lang.String)"><B>addInt(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#addInternalListener(org.apache.openjpa.event.RemoteCommitListener)"><B>addInternalListener(RemoteCommitListener)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Adds an OpenJPA-internal listener to this RemoteCommitEventManager.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#addIterator(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>addIterator(MetaDataIterator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>Add an iterator to the chain.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#addJarFile(java.net.URL)"><B>addJarFile(URL)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#addJarFileName(java.lang.String)"><B>addJarFileName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#addJoin(java.lang.String)"><B>addJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#addJoin(java.lang.String)"><B>addJoin(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Adds <code>field</code> to the set of fully-qualified field names to
 eagerly join when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#addJoin(java.lang.String)"><B>addJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#addJoinClassConditions()"><B>addJoinClassConditions()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#addJoinClassConditions()"><B>addJoinClassConditions()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Apply class conditions from relation joins.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#addJoinClassConditions()"><B>addJoinClassConditions()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#addJoinConstraints(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>addJoinConstraints(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Add existing unique constraints and indexes to the given field's join.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#addJoins(java.util.Collection)"><B>addJoins(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#addJoins(java.util.Collection)"><B>addJoins(Collection)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Adds <code>fields</code> to the set of fully-qualified field names to
 eagerly join when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#addJoins(java.util.Collection)"><B>addJoins(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#addLifecycleListener(java.lang.Object, java.lang.Class[])"><B>addLifecycleListener(Object, Class[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#addLifecycleListener(java.lang.Object, java.lang.Class[])"><B>addLifecycleListener(Object, Class[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Register a listener for lifecycle-related events on the specified
 classes.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#addLifecycleListener(java.lang.Object, java.lang.Class[])"><B>addLifecycleListener(Object, Class[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Register a listener for lifecycle-related events on the specified
 classes.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#addLifecycleListener(java.lang.Object, java.lang.Class[])"><B>addLifecycleListener(Object, Class[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#addLifecycleListener(java.lang.Object, java.lang.Class[])"><B>addLifecycleListener(Object, Class[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#addLifecycleListener(java.lang.Object, java.lang.Class[])"><B>addLifecycleListener(Object, Class[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#addLifecycleListener(java.lang.Object, java.lang.Class...)"><B>addLifecycleListener(Object, Class...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#addLifecycleListener(java.lang.Object, java.lang.Class...)"><B>addLifecycleListener(Object, Class...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#addLifecycleListener(java.lang.Object, java.lang.Class...)"><B>addLifecycleListener(Object, Class...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>Register a listener for lifecycle-related events on the specified
 classes.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#addLifecycleListener(java.lang.Object, java.lang.Class...)"><B>addLifecycleListener(Object, Class...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>Register a listener for lifecycle-related events on the specified
 classes.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#addListener(java.lang.Object, java.lang.Class[])"><B>addListener(Object, Class[])</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Register a lifecycle listener for the given classes.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#addListener(org.apache.openjpa.event.RemoteCommitListener)"><B>addListener(RemoteCommitListener)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#addListener(java.lang.Object)"><B>addListener(Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#addListener(org.apache.openjpa.jdbc.schema.SchemaGenerator.Listener)"><B>addListener(SchemaGenerator.Listener)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Adds a listener for schema generation events.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#addListener(java.lang.Object)"><B>addListener(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Register an event listener.
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html#addListener(java.lang.Object)"><B>addListener(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A>
<DD>Add an event listener.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#addListeners(org.apache.openjpa.kernel.BrokerImpl)"><B>addListeners(BrokerImpl)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Add factory-registered lifecycle listeners to the broker.
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#addLogFactory(org.apache.openjpa.lib.log.LogFactory)"><B>addLogFactory(LogFactory)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#addManagedClassName(java.lang.String)"><B>addManagedClassName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#addMapping(java.lang.String, java.lang.Object)"><B>addMapping(String, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Map the given path to the given result id.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#addMapping(int, int, java.lang.Object, java.lang.Object)"><B>addMapping(int, int, Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#addMappingFileName(java.lang.String)"><B>addMappingFileName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html#addMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>addMetaData(ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Serializer</A>
<DD>Add a class meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addMetaData(java.lang.Class)"><B>addMetaData(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new metadata, populate it with default information, add it to
 the repository, and return it.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addMetaData(java.lang.Class, int)"><B>addMetaData(Class, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new metadata, populate it with default information, add it to
 the repository, and return it.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>addMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add a class meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>addMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add a class meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html#addName(java.lang.String, boolean)"><B>addName(String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html" title="class in org.apache.openjpa.jdbc.schema">NameSet</A>
<DD>Attempt to add the given name to the set.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#addNode(java.lang.Object)"><B>addNode(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Add a node to the graph.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addNonMappedInterface(java.lang.Class)"><B>addNonMappedInterface(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Add the given non-mapped interface to the repository.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addObject(java.lang.String)"><B>addObject(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#addPCResult(java.lang.Class)"><B>addPCResult(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Add a mapped persistence-capable result with the given candidate type.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addPersistenceAware(java.lang.Class)"><B>addPersistenceAware(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Add the given class as persistence-aware.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addPlugin(java.lang.String, boolean)"><B>addPlugin(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addPluginList(java.lang.String)"><B>addPluginList(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#addPrimaryKey(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>addPrimaryKey(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Add the given primary key to the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addPrimaryKey()"><B>addPrimaryKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Set the primary key for the table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addPrimaryKey(java.lang.String)"><B>addPrimaryKey(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Set the primary key for the table.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)"><B>addPrimaryKeyColumn(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)"><B>addPrimaryKeyColumn(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Add the primary key column to the given table and return it.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)"><B>addPrimaryKeyColumn(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html#addProperties(java.util.Map)"><B>addProperties(Map)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf">ConfigurationProvider</A>
<DD>Add the given properties to those in this provider, overwriting
 any exisitng properties under the same keys.
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#addProperties(java.util.Map)"><B>addProperties(Map)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html#addProperty(java.lang.String, java.lang.Object)"><B>addProperty(String, Object)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf">ConfigurationProvider</A>
<DD>Add a single property, overwriting any existing property under the
 same key.
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#addProperty(java.lang.String, java.lang.Object)"><B>addProperty(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#addPropertyChangeListener(java.beans.PropertyChangeListener)"><B>addPropertyChangeListener(PropertyChangeListener)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Adds a listener for any property changes.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addPropertyChangeListener(java.beans.PropertyChangeListener)"><B>addPropertyChangeListener(PropertyChangeListener)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#addProvider(org.apache.openjpa.lib.util.ResourceBundleProvider)"><B>addProvider(ResourceBundleProvider)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Register a resource provider.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html#addQueryMetaData(org.apache.openjpa.meta.QueryMetaData)"><B>addQueryMetaData(QueryMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Serializer</A>
<DD>Add a query meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addQueryMetaData(java.lang.Class, java.lang.String)"><B>addQueryMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Add a new query metadata to the repository and return it.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addQueryMetaData(org.apache.openjpa.meta.QueryMetaData)"><B>addQueryMetaData(QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add a query meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addQueryMetaData(org.apache.openjpa.meta.QueryMetaData)"><B>addQueryMetaData(QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add a query meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#addQueryResultMapping(java.lang.Class, java.lang.String)"><B>addQueryResultMapping(Class, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Add a query result mapping.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#addQueryResultMapping(org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>addQueryResultMapping(QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Adds the given result set mapping to local cache.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#addQueryResultMapping(org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>addQueryResultMapping(QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>Adds the given result set mapping to local cache.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#addRegisterClassListener(org.apache.openjpa.enhance.PCRegistry.RegisterClassListener)"><B>addRegisterClassListener(PCRegistry.RegisterClassListener)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Register a <A HREF="./org/apache/openjpa/enhance/PCRegistry.RegisterClassListener.html" title="interface in org.apache.openjpa.enhance"><CODE>PCRegistry.RegisterClassListener</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#addResult(java.lang.Object)"><B>addResult(Object)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Add a result to be returned from the current parse.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#addSchema(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>addSchema(ClassMapping, SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>No-op.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCSeq.html#addSchema(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>addSchema(ClassMapping, SchemaGroup)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCSeq.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCSeq</A>
<DD>Add any tables, etc needed by this factory for the given mapping
 to the given schema group, if they do not exist already.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#addSchema(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>addSchema(ClassMapping, SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#addSchema(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>addSchema(ClassMapping, SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#addSchema()"><B>addSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Add a schema to the group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#addSchema(java.lang.String)"><B>addSchema(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Add a schema to the group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#addSequence(java.lang.String)"><B>addSequence(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Add a sequence to the schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#addSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>addSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html#addSequenceMetaData(org.apache.openjpa.meta.SequenceMetaData)"><B>addSequenceMetaData(SequenceMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Serializer</A>
<DD>Add a sequence meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addSequenceMetaData(java.lang.String)"><B>addSequenceMetaData(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Add a new sequence metadata to the repository and return it.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addSequenceMetaData(org.apache.openjpa.meta.SequenceMetaData)"><B>addSequenceMetaData(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add a sequence meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addSequenceMetaData(org.apache.openjpa.meta.SequenceMetaData)"><B>addSequenceMetaData(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add a sequence meta data to the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#addStandardProperties(java.lang.StringBuffer)"><B>addStandardProperties(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#addStandardProperties(java.lang.StringBuffer)"><B>addStandardProperties(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Add standard properties to the given properties buffer.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addStrategyMappingAttributes(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.AnnotationBuilder)"><B>addStrategyMappingAttributes(FieldMetaData, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Set mapping attributes for strategy.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addStrategyMappingAttributes(org.apache.openjpa.meta.FieldMetaData)"><B>addStrategyMappingAttributes(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Set mapping attributes for strategy.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addString(java.lang.String)"><B>addString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addStringList(java.lang.String)"><B>addStringList(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addSystemListener(java.lang.Object)"><B>addSystemListener(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Add the given system lifecycle listener.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#addSystemMappingElements(java.util.Collection)"><B>addSystemMappingElements(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Add system-level mapping elements to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#addSystemMappingElements(java.util.Collection)"><B>addSystemMappingElements(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#addSystemMappingElements(java.util.Collection)"><B>addSystemMappingElements(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#addSystemMappingElements(java.util.Collection)"><B>addSystemMappingElements(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Add system-level mapping elements to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#addTable(java.lang.String)"><B>addTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Add a table to the schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#addTable(org.apache.openjpa.jdbc.schema.Table)"><B>addTable(Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Add the given table to the set of tables that will be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#addTable(org.apache.openjpa.jdbc.schema.Table)"><B>addTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#addText(java.lang.String)"><B>addText(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Add text to the current element.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#addToCollection(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, java.lang.Object)"><B>addToCollection(OpenJPAStateManager, FieldMetaData, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Add the given value to the collection at the selected field.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Register a listener for transaction-related events.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Register a listener for transaction-related events on the specified
 classes.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>Register a listener for transaction-related events on the specified
 classes.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#addTransactionListener(java.lang.Object)"><B>addTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>Register a listener for transaction-related events.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#addTransformer(javax.persistence.spi.ClassTransformer)"><B>addTransformer(ClassTransformer)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#addTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)"><B>addTypesChangedListener(TypesChangedListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#addTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)"><B>addTypesChangedListener(TypesChangedListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#addTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)"><B>addTypesChangedListener(TypesChangedListener)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Add a new types event listener to this cache.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#addUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>addUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#addUnique(java.lang.String)"><B>addUnique(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Add a unique constraint to the table.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#addValue(org.apache.openjpa.lib.conf.Value)"><B>addValue(Value)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Add the given value to the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#addValue(org.apache.openjpa.lib.conf.Value)"><B>addValue(Value)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#addVersionMethods(serp.bytecode.BCClass)"><B>addVersionMethods(BCClass)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Add methods for loading and storing version data.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#addXMLMetaData(java.lang.Class, java.lang.String)"><B>addXMLMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new metadata, populate it with default information, add it to
 the repository, and return it.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_ATTACH"><B>AFTER_ATTACH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is attached.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_BEGIN"><B>AFTER_BEGIN</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that a transaction has just begun.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_CLEAR"><B>AFTER_CLEAR</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is cleared.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_COMMIT"><B>AFTER_COMMIT</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that the transaction has committed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#AFTER_COMMIT"><B>AFTER_COMMIT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A> was just committed.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_COMMIT_COMPLETE"><B>AFTER_COMMIT_COMPLETE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that the commit has completey ended and the
 transaction is no longer active.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#AFTER_CONNECT"><B>AFTER_CONNECT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a connection was obtained.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#AFTER_CREATE_STATEMENT"><B>AFTER_CREATE_STATEMENT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> is being created.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_DELETE"><B>AFTER_DELETE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is deleted.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_DELETE_PERFORMED"><B>AFTER_DELETE_PERFORMED</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is deleted, after the record has been
 deleted from the store.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_DETACH"><B>AFTER_DETACH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is detached.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_DIRTY"><B>AFTER_DIRTY</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is dirtied for the first time.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_DIRTY_FLUSHED"><B>AFTER_DIRTY_FLUSHED</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is dirtied for the first time after flush.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#AFTER_EXECUTE_STATEMENT"><B>AFTER_EXECUTE_STATEMENT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> completed execution.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_FLUSH"><B>AFTER_FLUSH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that changes have been flushed to the datastore.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_LOAD"><B>AFTER_LOAD</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is loaded.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_PERSIST"><B>AFTER_PERSIST</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is made persistent
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_PERSIST_PERFORMED"><B>AFTER_PERSIST_PERFORMED</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is made persistent, after the record has
 been written to the store
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#AFTER_PREPARE_STATEMENT"><B>AFTER_PREPARE_STATEMENT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> is being prepared.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_REFRESH"><B>AFTER_REFRESH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instances is refreshed.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_ROLLBACK"><B>AFTER_ROLLBACK</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that the transaction was rolled back.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#AFTER_ROLLBACK"><B>AFTER_ROLLBACK</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a rollback just occured.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_ROLLBACK_COMPLETE"><B>AFTER_ROLLBACK_COMPLETE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that the rollback has completey ended and the
 transaction is no longer active.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#AFTER_STATE_TRANSITIONS"><B>AFTER_STATE_TRANSITIONS</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that all state transitions have been made.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_STORE"><B>AFTER_STORE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is stored.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#AFTER_UPDATE_PERFORMED"><B>AFTER_UPDATE_PERFORMED</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is modified, after the change has been
 sent to the store.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterAdd(org.apache.openjpa.util.ProxyCollection, java.lang.Object, boolean)"><B>afterAdd(ProxyCollection, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#add(E)" title="class or interface in java.util"><CODE>Collection.add(Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterAddElement(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>afterAddElement(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>Vector#addElement(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterAddLast(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>afterAddLast(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>LinkedList#addLast(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterAttach(org.apache.openjpa.event.LifecycleEvent)"><B>afterAttach(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AttachListener.html#afterAttach(org.apache.openjpa.event.LifecycleEvent)"><B>afterAttach(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AttachListener.html" title="interface in org.apache.openjpa.event">AttachListener</A>
<DD>Invoked after the instance has been attached.
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterBegin(org.apache.openjpa.event.TransactionEvent)"><B>afterBegin(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BeginTransactionListener.html#afterBegin(org.apache.openjpa.event.TransactionEvent)"><B>afterBegin(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BeginTransactionListener.html" title="interface in org.apache.openjpa.event">BeginTransactionListener</A>
<DD>Notification that a transaction has begun.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterClear(org.apache.openjpa.event.LifecycleEvent)"><B>afterClear(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/ClearListener.html#afterClear(org.apache.openjpa.event.LifecycleEvent)"><B>afterClear(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/ClearListener.html" title="interface in org.apache.openjpa.event">ClearListener</A>
<DD>Invoked after state is cleared.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)"><B>afterCommit(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>This method is part of the <A HREF="./org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitListener</CODE></A> interface.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)"><B>afterCommit(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>This method is part of the <A HREF="./org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitListener</CODE></A> interface.
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterCommit(org.apache.openjpa.event.TransactionEvent)"><B>afterCommit(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html#afterCommit(org.apache.openjpa.event.TransactionEvent)"><B>afterCommit(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event">EndTransactionListener</A>
<DD>Notification that a transaction has successfully committed.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#afterCommit(org.apache.openjpa.event.TransactionEvent)"><B>afterCommit(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitListener.html#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)"><B>afterCommit(RemoteCommitEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event">RemoteCommitListener</A>
<DD>Notification that a transaction associated with a different
 BrokerFactory has successfully committed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterCommit(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterCommit(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#afterCommit(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterCommit(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterCommitComplete(org.apache.openjpa.event.TransactionEvent)"><B>afterCommitComplete(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html#afterCommitComplete(org.apache.openjpa.event.TransactionEvent)"><B>afterCommitComplete(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event">EndTransactionListener</A>
<DD>Notification that a transaction has successfully committed and
 the transaction is no longer active.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#afterCommitComplete(org.apache.openjpa.event.TransactionEvent)"><B>afterCommitComplete(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#afterCompletion(int)"><B>afterCompletion(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#afterCompletion(int)"><B>afterCompletion(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterConnect(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterConnect(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#afterConnect(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterConnect(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterCreateStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterCreateStatement(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#afterCreateStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterCreateStatement(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterDelete(org.apache.openjpa.event.LifecycleEvent)"><B>afterDelete(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DeleteListener.html#afterDelete(org.apache.openjpa.event.LifecycleEvent)"><B>afterDelete(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DeleteListener.html" title="interface in org.apache.openjpa.event">DeleteListener</A>
<DD>Invoked after the instance transferred to a deleted state.
<DT><A HREF="./org/apache/openjpa/event/PostDeleteListener.html#afterDeletePerformed(org.apache.openjpa.event.LifecycleEvent)"><B>afterDeletePerformed(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/PostDeleteListener.html" title="interface in org.apache.openjpa.event">PostDeleteListener</A>
<DD>Receives notifications before an update is performed.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterDetach(org.apache.openjpa.event.LifecycleEvent)"><B>afterDetach(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DetachListener.html#afterDetach(org.apache.openjpa.event.LifecycleEvent)"><B>afterDetach(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DetachListener.html" title="interface in org.apache.openjpa.event">DetachListener</A>
<DD>Invoked after the instance has been detached.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterDirty(org.apache.openjpa.event.LifecycleEvent)"><B>afterDirty(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DirtyListener.html#afterDirty(org.apache.openjpa.event.LifecycleEvent)"><B>afterDirty(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DirtyListener.html" title="interface in org.apache.openjpa.event">DirtyListener</A>
<DD>Invoked after the first change is applied.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterDirtyFlushed(org.apache.openjpa.event.LifecycleEvent)"><B>afterDirtyFlushed(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DirtyListener.html#afterDirtyFlushed(org.apache.openjpa.event.LifecycleEvent)"><B>afterDirtyFlushed(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DirtyListener.html" title="interface in org.apache.openjpa.event">DirtyListener</A>
<DD>Invoked after the first change is applied to a flushed instance.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#afterEntrySet(org.apache.openjpa.util.ProxyMap, java.util.Set)"><B>afterEntrySet(ProxyMap, Set)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Wrap the given entry set in a proxy.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterExecuteStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterExecuteStatement(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#afterExecuteStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterExecuteStatement(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterFlush(org.apache.openjpa.event.TransactionEvent)"><B>afterFlush(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/FlushTransactionListener.html#afterFlush(org.apache.openjpa.event.TransactionEvent)"><B>afterFlush(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/FlushTransactionListener.html" title="interface in org.apache.openjpa.event">FlushTransactionListener</A>
<DD>Notification that a transaction has flushed all object changes.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterIterator(org.apache.openjpa.util.ProxyCollection, java.util.Iterator)"><B>afterIterator(ProxyCollection, Iterator)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Wrap given iterator in a proxy.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#afterLast()"><B>afterLast()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterListIterator(org.apache.openjpa.util.ProxyCollection, int, java.util.ListIterator)"><B>afterListIterator(ProxyCollection, int, ListIterator)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Wrap given iterator in a proxy.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterListIterator(org.apache.openjpa.util.ProxyCollection, java.util.ListIterator)"><B>afterListIterator(ProxyCollection, ListIterator)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Wrap given iterator in a proxy.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterLoad(org.apache.openjpa.event.LifecycleEvent)"><B>afterLoad(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LoadListener.html#afterLoad(org.apache.openjpa.event.LifecycleEvent)"><B>afterLoad(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LoadListener.html" title="interface in org.apache.openjpa.event">LoadListener</A>
<DD>Invoked after state has been loaded into the instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#afterLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>afterLoad(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#afterLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>afterLoad(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html#afterLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>afterLoad(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#afterLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>afterLoad(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#afterLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>afterLoad(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>This method is called after data is loaded into the instance, in
 case the version indicator works off of a state image.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterOffer(org.apache.openjpa.util.ProxyCollection, java.lang.Object, boolean)"><B>afterOffer(ProxyCollection, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>Queue#offer(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterPersist(org.apache.openjpa.event.LifecycleEvent)"><B>afterPersist(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/PersistListener.html#afterPersist(org.apache.openjpa.event.LifecycleEvent)"><B>afterPersist(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/PersistListener.html" title="interface in org.apache.openjpa.event">PersistListener</A>
<DD>Invoked when an instance is persisted.
<DT><A HREF="./org/apache/openjpa/event/PostPersistListener.html#afterPersistPerformed(org.apache.openjpa.event.LifecycleEvent)"><B>afterPersistPerformed(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/PostPersistListener.html" title="interface in org.apache.openjpa.event">PostPersistListener</A>
<DD>Receives notifications after a persist operation has been written to the
 data store.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterPoll(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>afterPoll(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>Queue#poll</CODE> on super.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterPrepareStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterPrepareStatement(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#afterPrepareStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterPrepareStatement(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#afterPut(org.apache.openjpa.util.ProxyMap, java.lang.Object, java.lang.Object, java.lang.Object, boolean)"><B>afterPut(ProxyMap, Object, Object, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call after invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#put(K, V)" title="class or interface in java.util"><CODE>Map.put(K, V)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterRefresh(org.apache.openjpa.event.LifecycleEvent)"><B>afterRefresh(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LoadListener.html#afterRefresh(org.apache.openjpa.event.LifecycleEvent)"><B>afterRefresh(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LoadListener.html" title="interface in org.apache.openjpa.event">LoadListener</A>
<DD>Invoked after state has been refreshed.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterRemove(org.apache.openjpa.util.ProxyCollection, int, java.lang.Object)"><B>afterRemove(ProxyCollection, int, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#remove(int)" title="class or interface in java.util"><CODE>List.remove(int)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterRemove(org.apache.openjpa.util.ProxyCollection, java.lang.Object, boolean)"><B>afterRemove(ProxyCollection, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#remove(java.lang.Object)" title="class or interface in java.util"><CODE>Collection.remove(java.lang.Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterRemove(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>afterRemove(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>Queue#remove</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#afterRemove(org.apache.openjpa.util.ProxyMap, java.lang.Object, java.lang.Object, boolean)"><B>afterRemove(ProxyMap, Object, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call after invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#remove(java.lang.Object)" title="class or interface in java.util"><CODE>Map.remove(java.lang.Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterRemoveElement(org.apache.openjpa.util.ProxyCollection, java.lang.Object, boolean)"><B>afterRemoveElement(ProxyCollection, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>Vector#removeElement</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterRemoveFirst(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>afterRemoveFirst(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>LinkedList#removeFirst</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterRemoveLast(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>afterRemoveLast(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>LinkedList#removeLast</CODE> on super.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterReturn(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterReturn(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterRollback(org.apache.openjpa.event.TransactionEvent)"><B>afterRollback(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html#afterRollback(org.apache.openjpa.event.TransactionEvent)"><B>afterRollback(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event">EndTransactionListener</A>
<DD>Notification that a transaction has been rolled back.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#afterRollback(org.apache.openjpa.event.TransactionEvent)"><B>afterRollback(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#afterRollback(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterRollback(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#afterRollback(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>afterRollback(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterRollbackComplete(org.apache.openjpa.event.TransactionEvent)"><B>afterRollbackComplete(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html#afterRollbackComplete(org.apache.openjpa.event.TransactionEvent)"><B>afterRollbackComplete(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event">EndTransactionListener</A>
<DD>Notification that a transaction has been rolled back and
 the transaction is no longer active.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#afterRollbackComplete(org.apache.openjpa.event.TransactionEvent)"><B>afterRollbackComplete(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#afterSection()"><B>afterSection()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterSet(org.apache.openjpa.util.ProxyCollection, int, java.lang.Object, java.lang.Object)"><B>afterSet(ProxyCollection, int, Object, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#set(int, E)" title="class or interface in java.util"><CODE>List.set(int, E)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#afterSetElementAt(org.apache.openjpa.util.ProxyCollection, java.lang.Object, int, java.lang.Object)"><B>afterSetElementAt(ProxyCollection, Object, int, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>Vector#setElementAt</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#afterSetProperty(org.apache.openjpa.util.ProxyMap, java.lang.String, java.lang.String, java.lang.Object, boolean)"><B>afterSetProperty(ProxyMap, String, String, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call after invoking <CODE>Properties#setProperty</CODE> on super.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)"><B>afterSpecificationSet(Configuration)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)"><B>afterSpecificationSet(Configuration)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Called after the specification has been set.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)"><B>afterSpecificationSet(Configuration)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Apply <A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)"><CODE>ProductDerivation.afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)</CODE></A> callbacks
 to the the given instance.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html#afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)"><B>afterSpecificationSet(Configuration)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCPersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#afterSpecificationSet(org.apache.openjpa.lib.conf.Configuration)"><B>afterSpecificationSet(Configuration)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#afterStateTransitions(org.apache.openjpa.event.TransactionEvent)"><B>afterStateTransitions(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html#afterStateTransitions(org.apache.openjpa.event.TransactionEvent)"><B>afterStateTransitions(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event">EndTransactionListener</A>
<DD>Notification that state transitions are complete.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#afterStateTransitions(org.apache.openjpa.event.TransactionEvent)"><B>afterStateTransitions(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#afterStore(org.apache.openjpa.event.LifecycleEvent)"><B>afterStore(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/StoreListener.html#afterStore(org.apache.openjpa.event.LifecycleEvent)"><B>afterStore(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/StoreListener.html" title="interface in org.apache.openjpa.event">StoreListener</A>
<DD>Invoked just after store.
<DT><A HREF="./org/apache/openjpa/event/UpdateListener.html#afterUpdatePerformed(org.apache.openjpa.event.LifecycleEvent)"><B>afterUpdatePerformed(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/UpdateListener.html" title="interface in org.apache.openjpa.event">UpdateListener</A>
<DD>Receives notifications before an update is performed.
<DT><A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html#agentmain(java.lang.String, java.lang.instrument.Instrumentation)"><B>agentmain(String, Instrumentation)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance">InstrumentationFactory</A>
<DD>The method that is called when a jar is added as an agent at runtime.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps"><B>AggregateListener</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>An aggregate listener aggregates data produced by an ExpressionQuery.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#aggregateListenerPlugins"><B>aggregateListenerPlugins</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FlatClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">TimestampVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#ALIAS"><B>ALIAS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#alias"><B>alias</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#alias(java.lang.String)"><B>alias(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Alias the given setting.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#alias(java.lang.String, java.lang.String[], boolean)"><B>alias(String, String[], boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Alias the given setting.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#ALIAS_EJB"><B>ALIAS_EJB</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html#ALIASES"><B>ALIASES</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html" title="class in org.apache.openjpa.conf">QueryCompilationCacheValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html#ALIASES"><B>ALIASES</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#all(org.apache.openjpa.kernel.exps.Value)"><B>all(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#all(org.apache.openjpa.kernel.exps.Value)"><B>all(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#all(org.apache.openjpa.kernel.exps.Value)"><B>all(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#ALL_EVENTS"><B>ALL_EVENTS</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Convenience array of all event types.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>allocate(int, StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>allocate(int, StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>allocate(int, StoreContext, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>Allocate additional values efficiently.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>allocate(int, StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>allocate(int, StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel">UUIDHexSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>allocate(int, StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel">UUIDStringSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html#allocate(int)"><B>allocate(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence">Generator</A>
<DD>Hint to the sequence to allocate additional values up-front for
 efficiency.
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#allocate(int)"><B>allocate(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#allocateInternal(int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>allocateInternal(int, JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Allocate additional sequence values.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#allocateInternal(int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>allocateInternal(int, JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#allowConcurrentRead"><B>allowConcurrentRead</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>This setting inserts "BYPASS" after every "SELECT".
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#allowsAliasInBulkClause"><B>allowsAliasInBulkClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#allowsDuplicates()"><B>allowsDuplicates()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>Whether the underlying collection allows duplicates.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#allowsDuplicates(java.lang.Class)"><B>allowsDuplicates(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return whether the given collection type allows duplicates.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#allProceduresAreCallable()"><B>allProceduresAreCallable()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#allSequencesFromOneSchemaSQL"><B>allSequencesFromOneSchemaSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>SQL statement to load schema,name pairs from a named schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#allSequencesSQL"><B>allSequencesSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>SQL statement to load all sequence schema,name pairs from all schemas.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#allTablesAreSelectable()"><B>allTablesAreSelectable()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#and(org.apache.openjpa.kernel.exps.Expression, org.apache.openjpa.kernel.exps.Expression)"><B>and(Expression, Expression)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#and(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.Joins)"><B>and(Joins, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#and(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.Joins)"><B>and(Joins, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>AND the given joins together.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#and(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.Joins)"><B>and(Joins, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#and(org.apache.openjpa.kernel.exps.Expression, org.apache.openjpa.kernel.exps.Expression)"><B>and(Expression, Expression)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the two expressions AND'd together.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#and(org.apache.openjpa.kernel.exps.Expression, org.apache.openjpa.kernel.exps.Expression)"><B>and(Expression, Expression)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence"><B>AnnotationBuilder</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Helper class to stringify annotation declarations.<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#AnnotationBuilder(java.lang.Class)"><B>AnnotationBuilder(Class&lt;? extends Annotation&gt;)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc"><B>AnnotationPersistenceMappingParser</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Persistence annotation mapping parser.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#AnnotationPersistenceMappingParser(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>AnnotationPersistenceMappingParser(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc"><B>AnnotationPersistenceMappingSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Serializes persistence mappings as annotations.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#AnnotationPersistenceMappingSerializer(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>AnnotationPersistenceMappingSerializer(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc"><B>AnnotationPersistenceMappingSerializer.MappingSerializationComparator</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Extends <A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc"><CODE>AnnotationPersistenceMappingSerializer.MappingSerializationComparator</CODE></A> for store-specific tags such
 as &lt;sql-result-set-mapping&gt;.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.MappingSerializationComparator.html#AnnotationPersistenceMappingSerializer.MappingSerializationComparator()"><B>AnnotationPersistenceMappingSerializer.MappingSerializationComparator()</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer.MappingSerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence"><B>AnnotationPersistenceMetaDataParser</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Persistence annotation metadata parser.<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#AnnotationPersistenceMetaDataParser(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>AnnotationPersistenceMetaDataParser(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence"><B>AnnotationPersistenceMetaDataSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Serializes persistence metadata as annotations.<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#AnnotationPersistenceMetaDataSerializer(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>AnnotationPersistenceMetaDataSerializer(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence"><B>AnnotationPersistenceMetaDataSerializer.SerializationComparator</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Compares clases, sequences, and queries to order them for serialization.<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html#AnnotationPersistenceMetaDataSerializer.SerializationComparator()"><B>AnnotationPersistenceMetaDataSerializer.SerializationComparator()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer.SerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence"><B>AnnotationPersistenceXMLMetaDataParser</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>JAXB xml annotation metadata parser.<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#AnnotationPersistenceXMLMetaDataParser(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>AnnotationPersistenceXMLMetaDataParser(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#any(org.apache.openjpa.kernel.exps.Value)"><B>any(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#any(org.apache.openjpa.kernel.exps.Value)"><B>any(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#any(org.apache.openjpa.kernel.exps.Value)"><B>any(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#append(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>append(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#append(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>append(SQLBuffer, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Append the given joins to the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#append(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>append(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#append(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>append(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append all SQL and parameters of the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#append(org.apache.openjpa.jdbc.schema.Table)"><B>append(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#append(org.apache.openjpa.jdbc.schema.Sequence)"><B>append(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#append(org.apache.openjpa.jdbc.schema.Column)"><B>append(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#append(java.lang.String)"><B>append(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#append(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>append(Select, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a subselect.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#APPEND"><B>APPEND</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#append(byte[], byte[])"><B>append(byte[], byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Appends two bytes array into one.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(boolean)"><B>append(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(byte)"><B>append(byte)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(char)"><B>append(char)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(double)"><B>append(double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(float)"><B>append(float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(int)"><B>append(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(long)"><B>append(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(short)"><B>append(short)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#append(java.lang.Object)"><B>append(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(java.lang.String)"><B>append(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(boolean)"><B>append(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(char)"><B>append(char)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(double)"><B>append(double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(float)"><B>append(float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(int)"><B>append(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(long)"><B>append(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(short)"><B>append(short)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(java.lang.Object)"><B>append(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(java.io.InputStream)"><B>append(InputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(java.io.Reader)"><B>append(Reader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#append(java.io.File)"><B>append(File)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Add the given value to the internal template.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#appendCast(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, int)"><B>appendCast(SQLBuffer, FilterValue, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>Cast the specified value to the specified type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendCast(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, int)"><B>appendCast(SQLBuffer, FilterValue, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Cast the specified value to the specified type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendCount(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>appendCount(Select, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a subselect count.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#appendInfo(java.lang.StringBuffer)"><B>appendInfo(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#appendInfo(java.lang.StringBuffer)"><B>appendInfo(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#appendInfo(java.lang.StringBuffer)"><B>appendInfo(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#appendInfo(java.lang.StringBuffer)"><B>appendInfo(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#appendInfo(java.lang.StringBuffer)"><B>appendInfo(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#appendInfo(java.lang.StringBuffer)"><B>appendInfo(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsEmpty(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsEmpty(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Append the SQL testing whether this value is empty to the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Append a where clause to the given statement checking if this value
 is empty.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsNotEmpty(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsNotEmpty(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Append the SQL testing whether this value is not empty to
 the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Append a where clause to the given statement checking if this value
 is not empty.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotEmpty(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsNotNull(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsNotNull(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Append the SQL testing whether this value is not null to the given
 buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Append a where clause to the given statement checking if this value
 is not null.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNotNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#appendIsNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsNull(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendIsNull(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Append the SQL testing whether this value is null to the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Append a where clause to the given statement checking if this value
 is null.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#appendIsNull(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendIsNull(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendJoinCount(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.DBDictionary, org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.ForeignKey)"><B>appendJoinCount(SQLBuffer, Select, Joins, DBDictionary, FieldMapping, ForeignKey)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#appendLength(org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendLength(SQLBuffer, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendLength(org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendLength(SQLBuffer, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#appendLength(org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendLength(SQLBuffer, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendNumericCast(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>appendNumericCast(SQLBuffer, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Append SQL for the given numeric value to the buffer, casting as needed.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#appendOpenJPABanner(java.lang.StringBuffer)"><B>appendOpenJPABanner(StringBuffer)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#appendProperty(java.lang.StringBuffer, java.lang.String, java.lang.String)"><B>appendProperty(StringBuffer, String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Add a string property to the buffer.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#appendProperty(java.lang.StringBuffer, java.lang.String, int)"><B>appendProperty(StringBuffer, String, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Add an int property to the buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>If this dictionary can select ranges,
 use this method to append the range SQL.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#appendSelectRange(org.apache.openjpa.jdbc.sql.SQLBuffer, long, long, boolean)"><B>appendSelectRange(SQLBuffer, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#appendSize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendSize(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#appendSize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendSize(Select, ExpContext, ExpState, SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Append the SQL checking the size of this value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#appendSize(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendSize(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#appendSize(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendSize(SQLBuffer, Select, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Append a where clause to the given statement checking the size
 of the value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#appendSize(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendSize(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendSize(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins)"><B>appendSize(SQLBuffer, Select, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendSize(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>appendSize(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Helper method to add size properties to the specified type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#appendSize(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>appendSize(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#appendSize(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>appendSize(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendTo(Select, ExpContext, ExpState, SQLBuffer, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>appendTo(SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Append the first SQL element for this value to the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendTo(SQLBuffer, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Append the <code>index</code>th SQL element for this value to the
 given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue[], org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>appendTo(SQLBuffer, FilterValue, FilterValue[], ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCAggregateListener.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue[], org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>appendTo(SQLBuffer, FilterValue[], ClassMapping, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCAggregateListener.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">JDBCAggregateListener</A>
<DD>Append the SQL for this aggregate.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCFilterListener.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue[], org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>appendTo(SQLBuffer, FilterValue, FilterValue[], ClassMapping, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCFilterListener.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">JDBCFilterListener</A>
<DD>Append the SQL for this expression or value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCStringContains.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue[], org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>appendTo(SQLBuffer, FilterValue, FilterValue[], ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCStringContains.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCStringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue[], org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>appendTo(SQLBuffer, FilterValue, FilterValue[], ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCWildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendTo(Select, ExpContext, ExpState, SQLBuffer, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendTo(Select, ExpContext, ExpState, SQLBuffer, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#appendTo(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue[], org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>appendTo(SQLBuffer, FilterValue, FilterValue[], ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><B>appendTo(Select, ExpContext, ExpState, SQLBuffer, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Append the <code>index</code>th SQL element to the given buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#appendUnaliasedJoin(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.DBDictionary, org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.ForeignKey)"><B>appendUnaliasedJoin(SQLBuffer, Select, Joins, DBDictionary, FieldMapping, ForeignKey)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendUpdates(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object[], java.util.Map, boolean)"><B>appendUpdates(Select, JDBCStore, SQLBuffer, Object[], Map, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(java.lang.Object)"><B>appendValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(Object, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value for a specific column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(boolean)"><B>appendValue(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(boolean, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(boolean, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(byte)"><B>appendValue(byte)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(byte, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(byte, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(char)"><B>appendValue(char)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(char, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(char, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(double)"><B>appendValue(double)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(double, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(double, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(float)"><B>appendValue(float)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(float, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(float, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(int)"><B>appendValue(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(int, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(long)"><B>appendValue(long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(long, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(long, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(short)"><B>appendValue(short)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#appendValue(short, org.apache.openjpa.jdbc.schema.Column)"><B>appendValue(short, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Append a parameter value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#appendXmlComparison(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.String, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, boolean, boolean)"><B>appendXmlComparison(SQLBuffer, String, FilterValue, FilterValue, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>If this dictionary supports XML type,
 use this method to append xml predicate.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#appendXmlComparison(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.String, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, boolean, boolean)"><B>appendXmlComparison(SQLBuffer, String, FilterValue, FilterValue, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>If this dictionary supports XML type,
 use this method to append xml predicate.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#appendXmlComparison(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.String, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, boolean, boolean)"><B>appendXmlComparison(SQLBuffer, String, FilterValue, FilterValue, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>If this dictionary supports XML type,
 use this method to append xml predicate.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#appendXmlComparison(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.String, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, boolean, boolean)"><B>appendXmlComparison(SQLBuffer, String, FilterValue, FilterValue, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>If this dictionary supports XML type,
 use this method to append xml predicate.
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util"><B>ApplicationIds</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utility class for manipulating application object ids.<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#ApplicationIds()"><B>ApplicationIds()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance"><B>ApplicationIdTool</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Generates a class appropriate for use as an application identity class.<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#ApplicationIdTool(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class)"><B>ApplicationIdTool(OpenJPAConfiguration, Class)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Constructs a new ApplicationIdTool capable of generating an
 object id class for <code>type</code>.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#ApplicationIdTool(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class, org.apache.openjpa.meta.ClassMetaData)"><B>ApplicationIdTool(OpenJPAConfiguration, Class, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Constructs a new tool instance capable of generating an
 object id class for <code>meta</code>.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance"><B>ApplicationIdTool.Flags</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Run flags.<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#ApplicationIdTool.Flags()"><B>ApplicationIdTool.Flags()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.ObjectIdLoader.html" title="interface in org.apache.openjpa.enhance"><B>ApplicationIdTool.ObjectIdLoader</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Interface implemented by metadata factories that can load non-existant
 object id classes.<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant"><B>ApplicationIdToolTask</B></A> - Class in <A HREF="./org/apache/openjpa/ant/package-summary.html">org.apache.openjpa.ant</A><DD>Executes the application id tool on the specified files.<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#ApplicationIdToolTask()"><B>ApplicationIdToolTask()</B></A> - 
Constructor for class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#areAllPrimaryKeyColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>areAllPrimaryKeyColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Return whether all the given columns are primary key columns.
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#areEqual(byte[], byte[])"><B>areEqual(byte[], byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Compares two byte arrays for equality.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#areRemoteEventsEnabled()"><B>areRemoteEventsEnabled()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Return true if remote events are enabled.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>Args</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>A list of arguments to a multi-argument function.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#Args(org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.Val)"><B>Args(Val, Val)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence"><B>ArgumentException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Extended <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang"><CODE>IllegalArgumentException</CODE></A>.<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#ArgumentException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>ArgumentException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#ArgumentException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable[], java.lang.Object, boolean)"><B>ArgumentException(Localizer.Message, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Arguments.html" title="interface in org.apache.openjpa.kernel.exps"><B>Arguments</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Multiple arguments to a function call.<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#ARRAY"><B>ARRAY</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util"><B>ArrayStateImage</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utilities for dealing with a simple state image consisting of an
 <code>Object[]</code> of field values with one extra index containing a
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/BitSet.html" title="class or interface in java.util"><CODE>BitSet</CODE></A> of loaded fields.<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#ArrayStateImage()"><B>ArrayStateImage()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#arrayTypeName"><B>arrayTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#ascending"><B>ascending</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#ASCII_STREAM"><B>ASCII_STREAM</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#asExpression(org.apache.openjpa.kernel.exps.Value)"><B>asExpression(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#asExpression(org.apache.openjpa.kernel.exps.Value)"><B>asExpression(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the given value as an expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#asExpression(org.apache.openjpa.kernel.exps.Value)"><B>asExpression(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#assertActiveTransaction()"><B>assertActiveTransaction()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Throw an exception if there is no active transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#assertActiveTransaction()"><B>assertActiveTransaction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#assertActiveTransaction()"><B>assertActiveTransaction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxies.html#assertAllowedType(java.lang.Object, java.lang.Class)"><B>assertAllowedType(Object, Class)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util">Proxies</A>
<DD>Used by proxy types to check that an attempt to add a new value is legal.
<DT><A HREF="./org/apache/openjpa/enhance/PCSubclassValidator.html#assertCanSubclass()"><B>assertCanSubclass()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCSubclassValidator.html" title="class in org.apache.openjpa.enhance">PCSubclassValidator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#assertFiles(java.lang.String[])"><B>assertFiles(String[])</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Helper method to throw a standard exception if the task is not given
 any files to execute on.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#assertJoinable(org.apache.openjpa.jdbc.schema.Column)"><B>assertJoinable(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return the joinable for the given column, or throw an exception if
 none is available.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#assertJoinable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>assertJoinable(ValueMapping)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Throw the proper exception if the given handler-controlled value
 represents an unjoinable relation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#assertNoForeignKey(org.apache.openjpa.meta.MetaDataContext, boolean)"><B>assertNoForeignKey(MetaDataContext, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Assert that the user did not try to place a foreign key on this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#assertNoIndex(org.apache.openjpa.meta.MetaDataContext, boolean)"><B>assertNoIndex(MetaDataContext, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Assert that the user did not try to place an index on this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#assertNoJoin(org.apache.openjpa.meta.MetaDataContext, boolean)"><B>assertNoJoin(MetaDataContext, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Assert that the user did not try to join.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#assertNontransactionalRead()"><B>assertNontransactionalRead()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Throw an exception if there is no transaction active and
 nontransactional reading is not enabled.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#assertNontransactionalRead()"><B>assertNontransactionalRead()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#assertNontransactionalRead()"><B>assertNontransactionalRead()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#assertNoSchemaComponents(org.apache.openjpa.meta.MetaDataContext, boolean)"><B>assertNoSchemaComponents(MetaDataContext, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Assert that the user did not supply any columns, index, unique
 constraint, or foreign key for this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#assertNotMappedBy()"><B>assertNotMappedBy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>Throws an informative exception if the field declares a mapped-by value.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#assertNotReadOnly()"><B>assertNotReadOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#assertNotReadOnly()"><B>assertNotReadOnly()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Assert that the query is not read-only.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#assertNotReadOnly()"><B>assertNotReadOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#assertNotReadOnly()"><B>assertNotReadOnly()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Checks if the configuration is read only and if so throws an
 exception, otherwise returns silently.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#assertNotSerialized()"><B>assertNotSerialized()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#assertNotSerialized()"><B>assertNotSerialized()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Check that the query has not been serialized, which causes it to lose
 its association with its Broker.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#assertNotSerialized()"><B>assertNotSerialized()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#assertNoUnique(org.apache.openjpa.meta.MetaDataContext, boolean)"><B>assertNoUnique(MetaDataContext, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Assert that the user did not try to place a unique constraint on this
 mapping.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Throw an exception if this broker has been closed.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Throw an exception if the context is closed.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Assert that the query's broker is still open.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#assertOpen()"><B>assertOpen()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#assertParameters(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>assertParameters(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>Checks that the passed parameters match the declarations.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#assertPersistenceCapable(java.lang.Object)"><B>assertPersistenceCapable(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return the given instance as a <A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#assertStrategy(org.apache.openjpa.meta.MetaDataContext, java.lang.Object, java.lang.Object, boolean)"><B>assertStrategy(MetaDataContext, Object, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Assert that this info has the given strategy or no strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#assertSupport(boolean, java.lang.String)"><B>assertSupport(boolean, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Assert that the given dictionary flag is true.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#assertSupported(int, org.apache.openjpa.meta.MetaDataContext, java.lang.String)"><B>assertSupported(int, MetaDataContext, String)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>Assert that the given strategy is supported by the current runtime.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#assertUnboundVariablesValid()"><B>assertUnboundVariablesValid()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Validate that all unbound variables are of a PC type.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#assertWriteOperation()"><B>assertWriteOperation()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Throw an exception if a write operation is not permitted (there is
 no active transaction and nontransactional writing is not enabled).
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#assertWriteOperation()"><B>assertWriteOperation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#assertWriteOperation()"><B>assertWriteOperation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#assign(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.StoreManager, boolean)"><B>assign(OpenJPAStateManager, StoreManager, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>Assign an application identity object to the given state, or return
 false if determining the application identity requires a flush.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#assignDataStoreId(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>assignDataStoreId(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Assign a new datastore identity to the given instance.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#assignField(org.apache.openjpa.kernel.OpenJPAStateManager, int, boolean)"><B>assignField(OpenJPAStateManager, int, boolean)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#assignField(org.apache.openjpa.kernel.OpenJPAStateManager, int, boolean)"><B>assignField(OpenJPAStateManager, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#assignField(org.apache.openjpa.kernel.OpenJPAStateManager, int, boolean)"><B>assignField(OpenJPAStateManager, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#assignField(org.apache.openjpa.kernel.OpenJPAStateManager, int, boolean)"><B>assignField(OpenJPAStateManager, int, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Assign a value to the given field.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#assignObjectId(org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>assignObjectId(OpenJPAStateManager, boolean)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#assignObjectId(org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>assignObjectId(OpenJPAStateManager, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#assignObjectId(org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>assignObjectId(OpenJPAStateManager, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#assignObjectId(boolean)"><B>assignObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#assignObjectId(boolean)"><B>assignObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#assignObjectId(boolean)"><B>assignObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#assignObjectId(boolean)"><B>assignObjectId(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Ask the store manager to assign a permanent oid to this new instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#assignObjectId(boolean)"><B>assignObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#assignObjectId(org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>assignObjectId(OpenJPAStateManager, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Assign an object id to the given new instance.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#attach(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>attach(Object, boolean, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Import the specified detached object into the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#attach(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>attach(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#attach(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>attach(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#attach(org.apache.openjpa.kernel.AttachManager, java.lang.Object, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.enhance.PersistenceCapable, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData, boolean)"><B>attach(AttachManager, Object, ClassMetaData, PersistenceCapable, OpenJPAStateManager, ValueMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#attachAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>attachAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Import the specified objects into the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#attachAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>attachAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#attachAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>attachAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AttachListener.html" title="interface in org.apache.openjpa.event"><B>AttachListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when a detached instance is attached.<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#ATTRIBUTE"><B>ATTRIBUTE</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#ATTRIBUTE_ALLOWED_VALUES"><B>ATTRIBUTE_ALLOWED_VALUES</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Attribute of returned <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> property descriptors listing
 recognized values for the property.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#ATTRIBUTE_CATEGORY"><B>ATTRIBUTE_CATEGORY</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Attribute of the returned <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> property descriptors naming
 the property' hierarchical category.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#ATTRIBUTE_INTERFACE"><B>ATTRIBUTE_INTERFACE</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Attribute of the returned <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> property descriptors naming
 the interface that plugin values for this property must implement.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#ATTRIBUTE_ORDER"><B>ATTRIBUTE_ORDER</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Attribute of the returned <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> property descriptors naming
 the property's ordering in its category.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#ATTRIBUTE_TYPE"><B>ATTRIBUTE_TYPE</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Attribute of the returned <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> property descriptors naming
 the property's type or category.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#ATTRIBUTE_XML"><B>ATTRIBUTE_XML</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Attribute of the returned <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> property descriptors naming
 the property's name in XML format (i.e.
<DT><A HREF="./org/apache/openjpa/enhance/AttributeTranslator.html" title="interface in org.apache.openjpa.enhance"><B>AttributeTranslator</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Instances of this interface can convert a positional index for a
 <CODE>FieldMetaData</CODE> that uses property access into the underlying
 field name.<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#AUTOASSIGN"><B>AUTOASSIGN</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>"autoassigned" value strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#autoAssignClause"><B>autoAssignClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#autoAssignSequenceName"><B>autoAssignSequenceName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>The global sequence name to use for autoassign simulation.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#autoAssignTypeName"><B>autoAssignTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#autoClear"><B>autoClear</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AutoClear.html" title="interface in org.apache.openjpa.kernel"><B>AutoClear</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>State clearing constants.<DT><A HREF="./org/apache/openjpa/persistence/AutoClearType.html" title="enum in org.apache.openjpa.persistence"><B>AutoClearType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible settings for the auto-clear behavior of an
 <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#autoDetach"><B>autoDetach</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel"><B>AutoDetach</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Bit flags for when to automatically detach the entire persistence context.<DT><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence"><B>AutoDetachType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible settings for the auto-detach behavior of an
 <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>AutomaticManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>Implementation of the <A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> interface that searches
 through a set of known JNDI locations and method invocations to locate the
 appropriate mechanism for obtaining a TransactionManager.<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#AutomaticManagedRuntime()"><B>AutomaticManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#avg(org.apache.openjpa.kernel.exps.Value)"><B>avg(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#avg(org.apache.openjpa.kernel.exps.Value)"><B>avg(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the average of the given value for all matches.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#avg(org.apache.openjpa.kernel.exps.Value)"><B>avg(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html#await()"><B>await()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent">Condition</A>
<DD>Causes the current thread to wait until it is signalled or
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#interrupt()" title="class or interface in java.lang"><CODE>interrupted</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html#await(long, org.apache.openjpa.lib.util.concurrent.TimeUnit)"><B>await(long, TimeUnit)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent">Condition</A>
<DD>Causes the current thread to wait until it is signalled or interrupted,
 or the specified waiting time elapses.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html#awaitNanos(org.apache.openjpa.lib.util.concurrent.Condition, long)"><B>awaitNanos(Condition, long)</B></A> - 
Static method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html" title="class in org.apache.openjpa.lib.util.concurrent">Utils</A>
<DD>Causes the current thread to wait until it is signalled or interrupted,
 or the specified waiting time elapses.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html#awaitUninterruptibly()"><B>awaitUninterruptibly()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent">Condition</A>
<DD>Causes the current thread to wait until it is signalled.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html#awaitUntil(java.util.Date)"><B>awaitUntil(Date)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent">Condition</A>
<DD>Causes the current thread to wait until it is signalled or interrupted,
 or the specified deadline elapses.
</DL>
<HR>
<A NAME="_B_"><!-- --></A><H2>
<B>B</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#backingMember(java.lang.reflect.Member)"><B>backingMember(Member)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Supply the backing member object; this allows us to utilize
 parameterized type information if available.
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#backup(java.io.File, boolean)"><B>backup(File, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Backup the given file to a new file called &lt;file-name&gt;~.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#backupAndDelete(java.util.Collection)"><B>backupAndDelete(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Backup and delete the source files for the given metadatas.
<DT><A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html" title="class in org.apache.openjpa.lib.util"><B>Base16Encoder</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Base 16 encoder.<DT><A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html#Base16Encoder()"><B>Base16Encoder()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html" title="class in org.apache.openjpa.lib.util">Base16Encoder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#bCClassWrite(serp.bytecode.BCClass, java.io.File)"><B>bCClassWrite(BCClass, File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for BCClass.write().
<DT><A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html" title="class in org.apache.openjpa.event"><B>BeanLifecycleCallbacks</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Performs a callback method on a cached bean instance.<DT><A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html#BeanLifecycleCallbacks(java.lang.Class, java.lang.String, boolean, java.lang.Class)"><B>BeanLifecycleCallbacks(Class, String, boolean, Class)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html" title="class in org.apache.openjpa.event">BeanLifecycleCallbacks</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html#BeanLifecycleCallbacks(java.lang.Class, java.lang.reflect.Method, boolean)"><B>BeanLifecycleCallbacks(Class, Method, boolean)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html" title="class in org.apache.openjpa.event">BeanLifecycleCallbacks</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_ATTACH"><B>BEFORE_ATTACH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is attached.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_CLEAR"><B>BEFORE_CLEAR</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is cleared.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#BEFORE_CLOSE"><B>BEFORE_CLOSE</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a connection was closed.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#BEFORE_COMMIT"><B>BEFORE_COMMIT</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that the transaction is about to be committed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#BEFORE_COMMIT"><B>BEFORE_COMMIT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A> is about to be committed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#BEFORE_CREATE_STATEMENT"><B>BEFORE_CREATE_STATEMENT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> is being created.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_DELETE"><B>BEFORE_DELETE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is deleted.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_DETACH"><B>BEFORE_DETACH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is detached.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_DIRTY"><B>BEFORE_DIRTY</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is dirtied for the first time.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_DIRTY_FLUSHED"><B>BEFORE_DIRTY_FLUSHED</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is dirtied for the first time after flush.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#BEFORE_EXECUTE_STATEMENT"><B>BEFORE_EXECUTE_STATEMENT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> is about to be executed.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#BEFORE_FLUSH"><B>BEFORE_FLUSH</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Event type signifying that changes are about to be flushed to the
 datastore.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_PERSIST"><B>BEFORE_PERSIST</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type before an instance is made persistent
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#BEFORE_PREPARE_STATEMENT"><B>BEFORE_PREPARE_STATEMENT</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> is being prepared.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#BEFORE_ROLLBACK"><B>BEFORE_ROLLBACK</B></A> - 
Static variable in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Type code indicating that a rollback is about to occur.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_STORE"><B>BEFORE_STORE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is stored.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#BEFORE_UPDATE"><B>BEFORE_UPDATE</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Event type when an instance is modified.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#beforeAccessField(int)"><B>beforeAccessField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Load the given field before access.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeAdd(org.apache.openjpa.util.ProxyCollection, int, java.lang.Object)"><B>beforeAdd(ProxyCollection, int, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#add(int, E)" title="class or interface in java.util"><CODE>List.add(int,Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeAdd(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeAdd(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#add(E)" title="class or interface in java.util"><CODE>Collection.add(Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeAddElement(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeAddElement(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Vector#addElement(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeAddFirst(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeAddFirst(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>LinkedList#addFirst(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeAddLast(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeAddLast(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>LinkedList#addLast(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeAttach(org.apache.openjpa.event.LifecycleEvent)"><B>beforeAttach(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AttachListener.html#beforeAttach(org.apache.openjpa.event.LifecycleEvent)"><B>beforeAttach(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AttachListener.html" title="interface in org.apache.openjpa.event">AttachListener</A>
<DD>Invoked before the instance is attached.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeClear(org.apache.openjpa.event.LifecycleEvent)"><B>beforeClear(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/ClearListener.html#beforeClear(org.apache.openjpa.event.LifecycleEvent)"><B>beforeClear(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/ClearListener.html" title="interface in org.apache.openjpa.event">ClearListener</A>
<DD>Invoked before state is cleared.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeClear(org.apache.openjpa.util.ProxyCollection)"><B>beforeClear(ProxyCollection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before clearing collection.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#beforeClear(org.apache.openjpa.util.ProxyMap)"><B>beforeClear(ProxyMap)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#clear()" title="class or interface in java.util"><CODE>Map.clear()</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#beforeClose(org.apache.openjpa.lib.conf.Configuration)"><B>beforeClose(Configuration)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Called as the first step of a Configuration's close() method.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforeClose(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeClose(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#beforeClose(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeClose(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#beforeCommit(org.apache.openjpa.event.TransactionEvent)"><B>beforeCommit(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html#beforeCommit(org.apache.openjpa.event.TransactionEvent)"><B>beforeCommit(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event">EndTransactionListener</A>
<DD>Notification that the next flush is for the transaction commit.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#beforeCommit(org.apache.openjpa.event.TransactionEvent)"><B>beforeCommit(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforeCommit(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeCommit(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#beforeCommit(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeCommit(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#beforeCompletion()"><B>beforeCompletion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#beforeCompletion()"><B>beforeCompletion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationClose(Configuration)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationClose(Configuration)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Called before the given Configuration is closed.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html#beforeConfigurationConstruct(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>beforeConfigurationConstruct(ConfigurationProvider)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html" title="class in org.apache.openjpa.jdbc.conf">JDBCProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#beforeConfigurationConstruct(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>beforeConfigurationConstruct(ConfigurationProvider)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#beforeConfigurationConstruct(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>beforeConfigurationConstruct(ConfigurationProvider)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Provides the instance with a callback to mutate the initial properties
 of the <A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf"><CODE>ConfigurationProvider</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#beforeConfigurationConstruct(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>beforeConfigurationConstruct(ConfigurationProvider)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Apply <A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#beforeConfigurationConstruct(org.apache.openjpa.lib.conf.ConfigurationProvider)"><CODE>ProductDerivation.beforeConfigurationConstruct(org.apache.openjpa.lib.conf.ConfigurationProvider)</CODE></A> callbacks
 to the the given instance.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationLoad(Configuration)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationLoad(Configuration)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Provides the instance with the opportunity to mutate
 <code>conf</code> before the user configuration is applied.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationLoad(Configuration)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Apply <A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)"><CODE>ProductDerivation.beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)</CODE></A> callbacks
 to the the given instance.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html#beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationLoad(Configuration)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCPersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#beforeConfigurationLoad(org.apache.openjpa.lib.conf.Configuration)"><B>beforeConfigurationLoad(Configuration)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforeCreateStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeCreateStatement(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#beforeCreateStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeCreateStatement(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeDelete(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDelete(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DeleteListener.html#beforeDelete(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDelete(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DeleteListener.html" title="interface in org.apache.openjpa.event">DeleteListener</A>
<DD>Invoked before the instance transferred to a deleted state.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeDetach(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDetach(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DetachListener.html#beforeDetach(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDetach(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DetachListener.html" title="interface in org.apache.openjpa.event">DetachListener</A>
<DD>Invoked before the instance is detached.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeDirty(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDirty(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DirtyListener.html#beforeDirty(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDirty(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DirtyListener.html" title="interface in org.apache.openjpa.event">DirtyListener</A>
<DD>Invoked before the first change is applied.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeDirtyFlushed(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDirtyFlushed(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DirtyListener.html#beforeDirtyFlushed(org.apache.openjpa.event.LifecycleEvent)"><B>beforeDirtyFlushed(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/DirtyListener.html" title="interface in org.apache.openjpa.event">DirtyListener</A>
<DD>Invoked before the first change is applied to a flushed instance.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforeExecuteStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeExecuteStatement(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#beforeExecuteStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeExecuteStatement(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#beforeFirst()"><B>beforeFirst()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#beforeFlush(org.apache.openjpa.event.TransactionEvent)"><B>beforeFlush(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/FlushTransactionListener.html#beforeFlush(org.apache.openjpa.event.TransactionEvent)"><B>beforeFlush(TransactionEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/FlushTransactionListener.html" title="interface in org.apache.openjpa.event">FlushTransactionListener</A>
<DD>Notification that a transaction is about to flush all object changes.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeInsertElementAt(org.apache.openjpa.util.ProxyCollection, java.lang.Object, int)"><B>beforeInsertElementAt(ProxyCollection, Object, int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Vector#insertElementAt(Object,int)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#beforeLoad(org.apache.openjpa.util.ProxyMap, java.io.InputStream)"><B>beforeLoad(ProxyMap, InputStream)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call before invoking <CODE>Properties#load</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#beforeLoadFromXML(org.apache.openjpa.util.ProxyMap, java.io.InputStream)"><B>beforeLoadFromXML(ProxyMap, InputStream)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call before invoking <CODE>Properties#loadXML</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeOffer(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeOffer(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Queue#offer(Object)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforePersist(org.apache.openjpa.event.LifecycleEvent)"><B>beforePersist(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/PersistListener.html#beforePersist(org.apache.openjpa.event.LifecycleEvent)"><B>beforePersist(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/PersistListener.html" title="interface in org.apache.openjpa.event">PersistListener</A>
<DD>Invoked before an instance is persisted.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforePoll(org.apache.openjpa.util.ProxyCollection)"><B>beforePoll(ProxyCollection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Queue#poll</CODE> on super.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforePrepareStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforePrepareStatement(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#beforePrepareStatement(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforePrepareStatement(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#beforePut(org.apache.openjpa.util.ProxyMap, java.lang.Object, java.lang.Object)"><B>beforePut(ProxyMap, Object, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#put(K, V)" title="class or interface in java.util"><CODE>Map.put(K, V)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#beforeRefresh(boolean)"><B>beforeRefresh(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#beforeRefresh(boolean)"><B>beforeRefresh(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#beforeRefresh(boolean)"><B>beforeRefresh(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#beforeRefresh(boolean)"><B>beforeRefresh(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Prepare the instance for refresh
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#beforeRefresh(boolean)"><B>beforeRefresh(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemove(org.apache.openjpa.util.ProxyCollection, int)"><B>beforeRemove(ProxyCollection, int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#remove(int)" title="class or interface in java.util"><CODE>List.remove(int)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemove(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeRemove(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#remove(java.lang.Object)" title="class or interface in java.util"><CODE>Collection.remove(java.lang.Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemove(org.apache.openjpa.util.ProxyCollection)"><B>beforeRemove(ProxyCollection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Queue#remove</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#beforeRemove(org.apache.openjpa.util.ProxyMap, java.lang.Object)"><B>beforeRemove(ProxyMap, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#remove(java.lang.Object)" title="class or interface in java.util"><CODE>Map.remove(java.lang.Object)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemoveAllElements(org.apache.openjpa.util.ProxyCollection)"><B>beforeRemoveAllElements(ProxyCollection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before clearing vector.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemoveElement(org.apache.openjpa.util.ProxyCollection, java.lang.Object)"><B>beforeRemoveElement(ProxyCollection, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Vector#removeElement</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemoveElementAt(org.apache.openjpa.util.ProxyCollection, int)"><B>beforeRemoveElementAt(ProxyCollection, int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Vector#removeElementAt(int)</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemoveFirst(org.apache.openjpa.util.ProxyCollection)"><B>beforeRemoveFirst(ProxyCollection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>LinkedList#removeFirst</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeRemoveLast(org.apache.openjpa.util.ProxyCollection)"><B>beforeRemoveLast(ProxyCollection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call after invoking <CODE>LinkedList#removeLast</CODE> on super.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforeReturn(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeReturn(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#beforeRollback(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeRollback(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html#beforeRollback(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>beforeRollback(JDBCEvent)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc">JDBCListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeSet(org.apache.openjpa.util.ProxyCollection, int, java.lang.Object)"><B>beforeSet(ProxyCollection, int, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#set(int, E)" title="class or interface in java.util"><CODE>List.set(int, E)</CODE></A> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#beforeSetElementAt(org.apache.openjpa.util.ProxyCollection, java.lang.Object, int)"><B>beforeSetElementAt(ProxyCollection, Object, int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Call before invoking <CODE>Vector#setElementAt</CODE> on super.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#beforeSetProperty(org.apache.openjpa.util.ProxyMap, java.lang.String, java.lang.String)"><B>beforeSetProperty(ProxyMap, String, String)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Call before invoking <CODE>Properties#setProperty</CODE> on super.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#beforeStateChange(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.PCState)"><B>beforeStateChange(OpenJPAStateManager, PCState, PCState)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#beforeStateChange(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.PCState)"><B>beforeStateChange(OpenJPAStateManager, PCState, PCState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#beforeStateChange(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.PCState)"><B>beforeStateChange(OpenJPAStateManager, PCState, PCState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#beforeStateChange(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.PCState)"><B>beforeStateChange(OpenJPAStateManager, PCState, PCState)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Notification that the given state manager is about to change its
 lifecycle state.
<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#beforeStore(org.apache.openjpa.event.LifecycleEvent)"><B>beforeStore(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/StoreListener.html#beforeStore(org.apache.openjpa.event.LifecycleEvent)"><B>beforeStore(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/StoreListener.html" title="interface in org.apache.openjpa.event">StoreListener</A>
<DD>Invoked just prior to store.
<DT><A HREF="./org/apache/openjpa/event/UpdateListener.html#beforeUpdate(org.apache.openjpa.event.LifecycleEvent)"><B>beforeUpdate(LifecycleEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/UpdateListener.html" title="interface in org.apache.openjpa.event">UpdateListener</A>
<DD>Receives notifications before an update is performed.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>OpenJPA assumes that after this method is invoked, all data
 accesses through this store manager will be part of a single
 unit of work that can be rolled back.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#begin()"><B>begin()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Begin a transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#begin()"><B>begin()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Begin a data store transaction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#begin()"><B>begin()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#beginOperation(boolean)"><B>beginOperation(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Begin a logical operation.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#beginOperation(boolean)"><B>beginOperation(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#beginOperation(boolean)"><B>beginOperation(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#beginOptimistic()"><B>beginOptimistic()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>No-op implementation.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#beginOptimistic()"><B>beginOptimistic()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#beginOptimistic()"><B>beginOptimistic()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#beginOptimistic()"><B>beginOptimistic()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Notification that an optimistic transaction has started.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#beginStore()"><B>beginStore()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#beginStore()"><B>beginStore()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#beginStore()"><B>beginStore()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Begin a data store transaction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#beginStore()"><B>beginStore()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#beginStore()"><B>beginStore()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Begins a store transaction if one isn't already started.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#beginTransaction()"><B>beginTransaction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>Does nothing by default.
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#beginTransaction()"><B>beginTransaction()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Notification that a transaction is beginning.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStore.html#beginTransaction()"><B>beginTransaction()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore">XMLStore</A>
<DD>Begin a datastore transaction.
<DT><A HREF="./org/apache/openjpa/event/BeginTransactionListener.html" title="interface in org.apache.openjpa.event"><B>BeginTransactionListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Notified when transactions begin.<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#BIGDECIMAL"><B>BIGDECIMAL</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util"><B>BigDecimalId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#BigDecimalId(java.lang.Class, java.lang.String)"><B>BigDecimalId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#BigDecimalId(java.lang.Class, java.math.BigDecimal)"><B>BigDecimalId(Class, BigDecimal)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#BigDecimalId(java.lang.Class, java.math.BigDecimal, boolean)"><B>BigDecimalId(Class, BigDecimal, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#BIGINTEGER"><B>BIGINTEGER</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util"><B>BigIntegerId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#BigIntegerId(java.lang.Class, java.lang.String)"><B>BigIntegerId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#BigIntegerId(java.lang.Class, java.math.BigInteger)"><B>BigIntegerId(Class, BigInteger)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#BigIntegerId(java.lang.Class, java.math.BigInteger, boolean)"><B>BigIntegerId(Class, BigInteger, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#bigintTypeName"><B>bigintTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#BINARY_STREAM"><B>BINARY_STREAM</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#binaryTypeName"><B>binaryTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#bind(org.apache.openjpa.kernel.exps.Value)"><B>bind(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Record that the given variable is bound.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#bindKeyVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindKeyVariable(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#bindKeyVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindKeyVariable(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Bind the given variable to the key set of the given map value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#bindKeyVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindKeyVariable(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#bindValueVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindValueVariable(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#bindValueVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindValueVariable(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Bind the given variable to the value set of the given map value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#bindValueVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindValueVariable(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#bindVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindVariable(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#bindVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindVariable(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Bind the given variable to the given collection value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#bindVariable(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>bindVariable(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#bitLengthFunction"><B>bitLengthFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#bitTypeName"><B>bitTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#BLOB"><B>BLOB</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#blobAsObject"><B>blobAsObject</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#blobTypeName"><B>blobTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>BlobValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for blob values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html#BlobValueHandler()"><B>BlobValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">BlobValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#BOOLEAN"><B>BOOLEAN</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#BOOLEAN_OBJ"><B>BOOLEAN_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#booleanTypeName"><B>booleanTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf"><B>BooleanValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A boolean <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#BooleanValue(java.lang.String)"><B>BooleanValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Bootstrap.html" title="class in org.apache.openjpa.kernel"><B>Bootstrap</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Helper methods for acquiring <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A> objects<DT><A HREF="./org/apache/openjpa/kernel/Bootstrap.html#Bootstrap()"><B>Bootstrap()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Bootstrap.html" title="class in org.apache.openjpa.kernel">Bootstrap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf"><B>BootstrapException</B></A> - Exception in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Exception recognized by <A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf"><CODE>bootstrap</CODE></A> framework.<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html#BootstrapException()"><B>BootstrapException()</B></A> - 
Constructor for exception org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf">BootstrapException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html#BootstrapException(java.lang.String)"><B>BootstrapException(String)</B></A> - 
Constructor for exception org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf">BootstrapException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html#BootstrapException(java.lang.Throwable)"><B>BootstrapException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf">BootstrapException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html#BootstrapException(java.lang.String, java.lang.Throwable)"><B>BootstrapException(String, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf">BootstrapException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph"><B>BreadthFirstWalk</B></A> - Class in <A HREF="./org/apache/openjpa/lib/graph/package-summary.html">org.apache.openjpa.lib.graph</A><DD>Performs a breadth-first walk of a given <A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph"><CODE>Graph</CODE></A>,
 notifying visitors as it sees each node.<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#BreadthFirstWalk(org.apache.openjpa.lib.graph.Graph)"><B>BreadthFirstWalk(Graph)</B></A> - 
Constructor for class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#broadcast(org.apache.openjpa.event.RemoteCommitEvent)"><B>broadcast(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html#broadcast(org.apache.openjpa.event.RemoteCommitEvent)"><B>broadcast(RemoteCommitEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event">RemoteCommitProvider</A>
<DD>Notifies other remote event managers in this JVM and on other machines
 of changes to the cache.
<DT><A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html#broadcast(org.apache.openjpa.event.RemoteCommitEvent)"><B>broadcast(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html" title="class in org.apache.openjpa.event">SingleJVMRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#broadcast(org.apache.openjpa.event.RemoteCommitEvent)"><B>broadcast(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel"><B>Broker</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>The broker is the primary interface into the OpenJPA runtime.<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html#BROKER_FACTORY_CREATED"><B>BROKER_FACTORY_CREATED</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event">BrokerFactoryEvent</A>
<DD>Fired after a <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A> has been fully created.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><B>BrokerFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Factory for <A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel"><CODE>Broker</CODE></A> instances.<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event"><B>BrokerFactoryEvent</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Event fired when a <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A> is created.<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html#BrokerFactoryEvent(org.apache.openjpa.kernel.BrokerFactory, int)"><B>BrokerFactoryEvent(BrokerFactory, int)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event">BrokerFactoryEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEventManager.html" title="class in org.apache.openjpa.event"><B>BrokerFactoryEventManager</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD><CODE>EventManager</CODE> responsible for notifying listeners of
 <A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event"><CODE>BrokerFactoryEvent</CODE></A>s.<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEventManager.html#BrokerFactoryEventManager(org.apache.openjpa.lib.conf.Configuration)"><B>BrokerFactoryEventManager(Configuration)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryEventManager.html" title="class in org.apache.openjpa.event">BrokerFactoryEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryListener.html" title="interface in org.apache.openjpa.event"><B>BrokerFactoryListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Interface for listening to <A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event"><CODE>BrokerFactoryEvent</CODE></A> objects.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#brokerFactoryPlugin"><B>brokerFactoryPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html" title="class in org.apache.openjpa.conf"><B>BrokerFactoryValue</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Value type used to represent the <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A>.<DT><A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html#BrokerFactoryValue()"><B>BrokerFactoryValue()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html" title="class in org.apache.openjpa.conf">BrokerFactoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel"><B>BrokerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Concrete <A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel"><CODE>Broker</CODE></A>.<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#BrokerImpl()"><B>BrokerImpl()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#brokerPlugin"><B>brokerPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/BrokerValue.html" title="class in org.apache.openjpa.conf"><B>BrokerValue</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Custom <A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf"><CODE>PluginValue</CODE></A> that can efficiently create <A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel"><CODE>BrokerImpl</CODE></A>
 instances.<DT><A HREF="./org/apache/openjpa/conf/BrokerValue.html#BrokerValue()"><B>BrokerValue()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerValue.html" title="class in org.apache.openjpa.conf">BrokerValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#buildAnnotations()"><B>buildAnnotations()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#BYTE"><B>BYTE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#BYTE_OBJ"><B>BYTE_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ByteArrayValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for byte array values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html#ByteArrayValueHandler()"><B>ByteArrayValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ByteArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><B>BytecodeWriter</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Control how enhanced bytecode is written.<DT><A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util"><B>ByteId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for byte fields.<DT><A HREF="./org/apache/openjpa/util/ByteId.html#ByteId(java.lang.Class, java.lang.Byte)"><B>ByteId(Class, Byte)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#ByteId(java.lang.Class, java.lang.String)"><B>ByteId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#ByteId(java.lang.Class, byte)"><B>ByteId(Class, byte)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#ByteId(java.lang.Class, byte, boolean)"><B>ByteId(Class, byte, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#BYTES"><B>BYTES</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.SerializedData.html#bytes"><B>bytes</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.SerializedData.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary.SerializedData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util"><B>Bytes</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>This class came from the Apache Commons Id sandbox project in support
 of the UUIDGenerator implementation.</DL>
<HR>
<A NAME="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/sql/CacheDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>CacheDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Intersystems Cache.<DT><A HREF="./org/apache/openjpa/jdbc/sql/CacheDictionary.html#CacheDictionary()"><B>CacheDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/CacheDictionary.html" title="class in org.apache.openjpa.jdbc.sql">CacheDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util"><B>CacheMap</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Fixed-size map that has ability to pin/unpin entries and move overflow to
 a backing soft map.<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#CacheMap()"><B>CacheMap()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Create a non-LRU (and therefore highly concurrent) cache map with a
 size of 1000.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#CacheMap(boolean, int)"><B>CacheMap(boolean, int)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Create a cache map with the given properties.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#CacheMap(boolean, int, int, float)"><B>CacheMap(boolean, int, int, float)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Create a cache map with the given properties.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#cacheMap"><B>cacheMap</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The map for non-expired and non-pinned references.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#cacheMapOverflowRemoved(java.lang.Object, java.lang.Object)"><B>cacheMapOverflowRemoved(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Called from <A HREF="./org/apache/openjpa/lib/util/SizedMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><CODE>SizedMap.overflowRemoved(java.lang.Object, java.lang.Object)</CODE></A> in the cache map.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#cacheTables"><B>cacheTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>Sets whether HSQL should use "CREATED CACHED TABLE" rather than
 "CREATE TABLE", which allows disk-based database operations.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html#calculateDBDictionary(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String, java.lang.String, java.lang.String)"><B>calculateDBDictionary(JDBCConfiguration, String, String, String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionaryFactory</A>
<DD>Attempt to create the dictionary from the given connection URL and
 driver name, either or both of which may be null.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>calculateValue(Select, ExpContext, ExpState, Val, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>calculateValue(Select, ExpContext, ExpState, Val, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>calculateValue(Select, ExpContext, ExpState, Val, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>calculateValue(Select, ExpContext, ExpState, Val, ExpState)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Calculate and cache the SQL for this value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html#calendar"><B>calendar</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html" title="class in org.apache.openjpa.jdbc.sql">Calendard</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#CALENDAR"><B>CALENDAR</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html" title="class in org.apache.openjpa.jdbc.sql"><B>Calendard</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A calendar-modified value.<DT><A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html#Calendard(java.lang.Object, java.util.Calendar)"><B>Calendard(Object, Calendar)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html" title="class in org.apache.openjpa.jdbc.sql">Calendard</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#callAbstractPCData(serp.bytecode.BCClass, java.lang.String, java.lang.Class, java.lang.Class[])"><B>callAbstractPCData(BCClass, String, Class, Class[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Add method which defers to AbstractPCData.
<DT><A HREF="./org/apache/openjpa/util/UserException.html#CALLBACK"><B>CALLBACK</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/CallbackModes.html#CALLBACK_FAIL_FAST"><B>CALLBACK_FAIL_FAST</B></A> - 
Static variable in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/CallbackModes.html" title="interface in org.apache.openjpa.event">CallbackModes</A>
<DD>Flag to stop executing callbacks on exception immediately.
<DT><A HREF="./org/apache/openjpa/event/CallbackModes.html#CALLBACK_IGNORE"><B>CALLBACK_IGNORE</B></A> - 
Static variable in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/CallbackModes.html" title="interface in org.apache.openjpa.event">CallbackModes</A>
<DD>Flag to ignore exceptions made during callback.
<DT><A HREF="./org/apache/openjpa/event/CallbackModes.html#CALLBACK_LOG"><B>CALLBACK_LOG</B></A> - 
Static variable in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/CallbackModes.html" title="interface in org.apache.openjpa.event">CallbackModes</A>
<DD>Flag to log exceptions made during callback.
<DT><A HREF="./org/apache/openjpa/event/CallbackModes.html#CALLBACK_RETHROW"><B>CALLBACK_RETHROW</B></A> - 
Static variable in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/CallbackModes.html" title="interface in org.apache.openjpa.event">CallbackModes</A>
<DD>Flag to re-throw exceptions made during callback.
<DT><A HREF="./org/apache/openjpa/event/CallbackModes.html#CALLBACK_ROLLBACK"><B>CALLBACK_ROLLBACK</B></A> - 
Static variable in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/CallbackModes.html" title="interface in org.apache.openjpa.event">CallbackModes</A>
<DD>Flag to always rollback on a callback exception.
<DT><A HREF="./org/apache/openjpa/util/CallbackException.html" title="class in org.apache.openjpa.util"><B>CallbackException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type thrown when an error occurs in a callback.<DT><A HREF="./org/apache/openjpa/util/CallbackException.html#CallbackException(org.apache.openjpa.lib.util.Localizer.Message)"><B>CallbackException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CallbackException.html" title="class in org.apache.openjpa.util">CallbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CallbackException.html#CallbackException(java.lang.Throwable)"><B>CallbackException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CallbackException.html" title="class in org.apache.openjpa.util">CallbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><B>CallbackMode</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible settings for the callback behavior of an
 <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/event/CallbackModes.html" title="interface in org.apache.openjpa.event"><B>CallbackModes</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Callback handling constants.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#cancel()"><B>cancel()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#cancel()"><B>cancel()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#cancel()"><B>cancel()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns <code>false</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Cancel all pending data store statements.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Cancel all pending data store statements.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#cancelAll()"><B>cancelAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Cancel all pending data store statements.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#cancelRowUpdates()"><B>cancelRowUpdates()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#canConvert(java.lang.Class, java.lang.Class, boolean)"><B>canConvert(Class, Class, boolean)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Return whether an instance of the first class can be converted to
 an instance of the second.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#canForeignKey()"><B>canForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>The user can mark columns as explicitly not having a foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#canIndex()"><B>canIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>The user can mark columns as explicitly non-indexable.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#canIndicateNull()"><B>canIndicateNull()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Whether user has explicitly turned null indicator column off.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#canOrderColumn()"><B>canOrderColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Whether we can have an ordering column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#canOuterJoin(int, org.apache.openjpa.jdbc.schema.ForeignKey)"><B>canOuterJoin(int, ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns if the given foreign key can be eagerly loaded using other joins.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#canOuterJoin(int, org.apache.openjpa.jdbc.schema.ForeignKey)"><B>canOuterJoin(int, ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html#canRedefineClasses()"><B>canRedefineClasses()</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html" title="class in org.apache.openjpa.enhance">ClassRedefiner</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#canSet(org.apache.openjpa.jdbc.schema.ColumnIO, int, boolean)"><B>canSet(ColumnIO, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Return true if the given column index is settable.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#canSetAny(org.apache.openjpa.jdbc.schema.ColumnIO, int, boolean)"><B>canSetAny(ColumnIO, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Return true if any of the given column indexes are settable.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#canUnique()"><B>canUnique()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>The user can mark columns as explicitly not having a unique constraint.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#capacity()"><B>capacity()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns the current capacity of backing table in this map.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#CASCADE_AUTO"><B>CASCADE_AUTO</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Use automatic cascade behavior.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#CASCADE_IMMEDIATE"><B>CASCADE_IMMEDIATE</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The operation is immediately cascaded to this field.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#CASCADE_NONE"><B>CASCADE_NONE</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The operation is not cascaded to this field.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#cast(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>cast(Value, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#cast(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>cast(Value, Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Cast the value to the given class.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#cast(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>cast(Value, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#cast(javax.persistence.EntityManagerFactory)"><B>cast(EntityManagerFactory)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Return the OpenJPA facade to the given entity manager factory.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#cast(javax.persistence.EntityManager)"><B>cast(EntityManager)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Return the OpenJPA facade to the given entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#cast(javax.persistence.Query)"><B>cast(Query)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Return the OpenJPA facade to the given query.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#castFunction"><B>castFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#catalogSeparator"><B>catalogSeparator</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#CENTI"><B>CENTI</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta"><B>CFMetaDataParser</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Custom SAX parser used by the system to quickly parse metadata files
 for classes.<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#CFMetaDataParser()"><B>CFMetaDataParser()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta"><B>CFMetaDataSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Helps serialize metadata objects to package and class elements.<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html#CFMetaDataSerializer()"><B>CFMetaDataSerializer()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#change"><B>change</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Collection of changed items.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#change(java.lang.Object)"><B>change(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Mark the given value as changed.
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#change(java.lang.Object)"><B>change(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#change(java.lang.Object)"><B>change(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#changed(java.lang.Object)"><B>changed(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Notify the tracker that the given object was changed.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#changed(java.lang.Object, java.lang.Object, java.lang.Object)"><B>changed(Object, Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTracker.html#changed(java.lang.Object, java.lang.Object, java.lang.Object)"><B>changed(Object, Object, Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util">MapChangeTracker</A>
<DD>Record that the given entry was altered.
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#changed(java.lang.Object, java.lang.Object, java.lang.Object)"><B>changed(Object, Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#changeInvalidatesQuery(java.util.Collection)"><B>changeInvalidatesQuery(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Returns <code>true</code> if modifications to any of the
 classes in <code>changed</code> results in a possible
 invalidation of this query; otherwise returns
 <code>false</code>.
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util"><B>ChangeTracker</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface for components that track changes to containers at a
 fine-grained level.<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#CHAR"><B>CHAR</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#CHAR_OBJ"><B>CHAR_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#CHAR_STREAM"><B>CHAR_STREAM</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#characterColumnSize"><B>characterColumnSize</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>CharArrayStreamValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for char array values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html#CharArrayStreamValueHandler()"><B>CharArrayStreamValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayStreamValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>CharArrayValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for char array values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html#CharArrayValueHandler()"><B>CharArrayValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util"><B>CharId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for char fields.<DT><A HREF="./org/apache/openjpa/util/CharId.html#CharId(java.lang.Class, java.lang.Character)"><B>CharId(Class, Character)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#CharId(java.lang.Class, java.lang.String)"><B>CharId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#CharId(java.lang.Class, char)"><B>CharId(Class, char)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#CharId(java.lang.Class, char, boolean)"><B>CharId(Class, char, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#charTypeName"><B>charTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#CHECK_READ"><B>CHECK_READ</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#CHECK_WRITE"><B>CHECK_WRITE</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#checkNull(java.lang.Object)"><B>checkNull(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#checkVersion(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, boolean)"><B>checkVersion(OpenJPAStateManager, JDBCStore, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#checkVersion(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, boolean)"><B>checkVersion(OpenJPAStateManager, JDBCStore, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#checkVersion(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, boolean)"><B>checkVersion(OpenJPAStateManager, JDBCStore, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html#checkVersion(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, boolean)"><B>checkVersion(OpenJPAStateManager, JDBCStore, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#checkVersion(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, boolean)"><B>checkVersion(OpenJPAStateManager, JDBCStore, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#checkVersion(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, boolean)"><B>checkVersion(OpenJPAStateManager, JDBCStore, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>Checks the version of the given state manager with the version
 stored in memory.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta"><B>ClassAnnotationMetaDataFilter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Filter that looks for classes with one of a set of annotations.<DT><A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html#ClassAnnotationMetaDataFilter(java.lang.Class)"><B>ClassAnnotationMetaDataFilter(Class)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">ClassAnnotationMetaDataFilter</A>
<DD>Constructor; supply annotation to match against.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html#ClassAnnotationMetaDataFilter(java.lang.Class[])"><B>ClassAnnotationMetaDataFilter(Class[])</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">ClassAnnotationMetaDataFilter</A>
<DD>Constructor; supply annotations to match against.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta"><B>ClassArgParser</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Parser used to resolve arguments into java classes.<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#ClassArgParser()"><B>ClassArgParser()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ClassCriteria.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ClassCriteria</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Marker interface specifying to use the expected class of the relation
 as criteria in the join.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#classForName(java.lang.String, java.lang.String[])"><B>classForName(String, String[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Resolver.html#classForName(java.lang.String, java.lang.String[])"><B>classForName(String, String[])</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Resolver.html" title="interface in org.apache.openjpa.kernel.exps">Resolver</A>
<DD>Resolve the type represented by the given class name.
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#classForName(java.lang.String, java.lang.String[])"><B>classForName(String, String[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Helper method to instantiate the class with the given name, taking
 into account the query's candidate package, automatic imports, and
 the given imports (if any).
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#classForName(java.lang.String, java.lang.String[])"><B>classForName(String, String[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#classForName(java.lang.String, boolean)"><B>classForName(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Helper method to create the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang"><CODE>Class</CODE></A> for the given name,
 taking into account the package currently being parsed for relative
 class names.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#classForName(java.lang.String, java.lang.String, boolean, java.lang.ClassLoader)"><B>classForName(String, String, boolean, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Load the given class name against the given package and the set
 of accepted standard packages.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#classForName(java.lang.String, org.apache.openjpa.meta.ClassMetaData)"><B>classForName(String, ClassMetaData)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Check the given name against the same set of standard packages used
 when parsing metadata.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#classForName(java.lang.String, org.apache.openjpa.meta.ClassMetaData, java.lang.ClassLoader)"><B>classForName(String, ClassMetaData, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Check the given name against the same set of standard packages used
 when parsing metadata.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#classForName(java.lang.String, org.apache.openjpa.meta.ValueMetaData)"><B>classForName(String, ValueMetaData)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Check the given name against the same set of standard packages used
 when parsing metadata.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#classForName(java.lang.String, org.apache.openjpa.meta.ValueMetaData, java.lang.ClassLoader)"><B>classForName(String, ValueMetaData, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Check the given name against the same set of standard packages used
 when parsing metadata.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#classForName(java.lang.String)"><B>classForName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Instantiate the given class, taking into account the default package.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta"><B>ClassMapping</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Specialization of metadata for relational databases.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#ClassMapping(java.lang.Class, org.apache.openjpa.jdbc.meta.MappingRepository)"><B>ClassMapping(Class, MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#ClassMapping(org.apache.openjpa.meta.ValueMetaData)"><B>ClassMapping(ValueMetaData)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Embedded constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><B>ClassMappingInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Information about the mapping from a class to the schema, in raw form.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#ClassMappingInfo()"><B>ClassMappingInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta"><B>ClassMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Contains metadata about a persistent type.<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ClassMetaData(java.lang.Class, org.apache.openjpa.meta.MetaDataRepository)"><B>ClassMetaData(Class, MetaDataRepository)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ClassMetaData(org.apache.openjpa.meta.ValueMetaData)"><B>ClassMetaData(ValueMetaData)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Embedded constructor.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>ClassMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over all metadata resources that might contain the
 metadata for a given class, starting with the most general.<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#ClassMetaDataIterator(java.lang.Class, java.lang.String, boolean)"><B>ClassMetaDataIterator(Class, String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>Constructor; supply the class whose metadata to find, the suffix
 of metadata files, and whether to parse top-down or bottom-up.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#ClassMetaDataIterator(java.lang.Class, java.lang.String, java.lang.ClassLoader, boolean)"><B>ClassMetaDataIterator(Class, String, ClassLoader, boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>Constructor; supply the class whose metadata to find, the suffix
 of metadata files, and whether to parse top-down or bottom-up.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ClassNameDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Stores the class name along with each database object record.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#ClassNameDiscriminatorStrategy()"><B>ClassNameDiscriminatorStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#classpath"><B>classpath</B></A> - 
Variable in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>ClasspathMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over directories in the classpath.<DT><A HREF="./org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.html#ClasspathMetaDataIterator()"><B>ClasspathMetaDataIterator()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClasspathMetaDataIterator</A>
<DD>Default constructor; iterates over all classpath elements.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.html#ClasspathMetaDataIterator(java.lang.String[], org.apache.openjpa.lib.meta.MetaDataFilter)"><B>ClasspathMetaDataIterator(String[], MetaDataFilter)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClasspathMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClasspathMetaDataIterator</A>
<DD>Constructor; supply the classpath directories to scan and an optional
 resource filter.
<DT><A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html" title="class in org.apache.openjpa.enhance"><B>ClassRedefiner</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Redefines the method bodies of existing classes.<DT><A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html#ClassRedefiner()"><B>ClassRedefiner()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html" title="class in org.apache.openjpa.enhance">ClassRedefiner</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util"><B>ClassResolver</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface to customize the loading of classes under OpenJPA.<DT><A HREF="./org/apache/openjpa/util/ClassResolverImpl.html" title="class in org.apache.openjpa.util"><B>ClassResolverImpl</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Default class resolver implementation.<DT><A HREF="./org/apache/openjpa/util/ClassResolverImpl.html#ClassResolverImpl()"><B>ClassResolverImpl()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ClassResolverImpl.html" title="class in org.apache.openjpa.util">ClassResolverImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#classResolverPlugin"><B>classResolverPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta"><B>ClassStrategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Mapping from a class to a relational schema.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><B>ClassTableJDBCSeq</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Specialization of the <A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><CODE>TableJDBCSeq</CODE></A> that maintains a
 separate sequence count per-class.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#ClassTableJDBCSeq()"><B>ClassTableJDBCSeq()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#clear()"><B>clear()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Remove all data from this cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#clear()"><B>clear()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Remove all data from this cache.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#clear(boolean)"><B>clear(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#clear(boolean)"><B>clear(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#clear(boolean)"><B>clear(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Clear all mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#clear(boolean)"><B>clear(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Clear mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Reset the internal repository.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#clear(boolean)"><B>clear(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#clear()"><B>clear()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Clear the set of objects to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Clear the graph.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#clear()"><B>clear()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Clears the cache of parsed resource names.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Clear the internal code buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Removes all mappings from this map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Removes all mappings from this HashMap.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Removes all of the elements from this set.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Clear the list of class loaders.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#clear()"><B>clear()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Clear any internal caches.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Clear the cache of parsed metadata.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Reset state.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Clear caches.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Clear the set of metadatas to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Clear caches.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Clear the set of metadatas to be serialized.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Removes pinned objects as well as unpinned ones.
<DT><A HREF="./org/apache/openjpa/kernel/AutoClear.html#CLEAR_ALL"><B>CLEAR_ALL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AutoClear.html" title="interface in org.apache.openjpa.kernel">AutoClear</A>
<DD>Clear state when entering any transaction.
<DT><A HREF="./org/apache/openjpa/kernel/AutoClear.html#CLEAR_DATASTORE"><B>CLEAR_DATASTORE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AutoClear.html" title="interface in org.apache.openjpa.kernel">AutoClear</A>
<DD>Clear state when entering a datastore transaction.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#clearAllFieldCache()"><B>clearAllFieldCache()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Clear cached field data.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#clearBatch()"><B>clearBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#clearBatch()"><B>clearBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#clearBatch()"><B>clearBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#clearData(int)"><B>clearData(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#clearData(int)"><B>clearData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#clearDecorators()"><B>clearDecorators()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>Clear all decorators.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#clearDefinedFieldCache()"><B>clearDefinedFieldCache()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#clearDefinedFieldCache()"><B>clearDefinedFieldCache()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Clear defined field data.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Clears the set of fetch group names to use when loading
 data.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Clears the set of fetch group names to use wen loading
 data.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#clearFetchGroups()"><B>clearFetchGroups()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#clearFieldCache()"><B>clearFieldCache()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Clear cached field data.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#clearFields()"><B>clearFields()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#clearFields()"><B>clearFields()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Clears the set of field names to use when loading
 data.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#clearFields()"><B>clearFields()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#clearFields()"><B>clearFields()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Clears the set of field names to use wen loading
 data.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#clearFields()"><B>clearFields()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#clearFields()"><B>clearFields()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#clearFields()"><B>clearFields()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#clearForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>clearForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#clearForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>clearForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Clear a circular foreign key.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#clearInternal()"><B>clearInternal()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Clear the cache.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#clearInternal()"><B>clearInternal()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Clear the cache.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#clearInternal()"><B>clearInternal()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#clearInternal()"><B>clearInternal()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#clearInverseRelations(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData[], java.lang.Object)"><B>clearInverseRelations(OpenJPAStateManager, FieldMetaData, FieldMetaData[], Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Remove all relations between the initial value of <code>fmd</code> for
 the instance managed by <code>sm</code> and its inverses.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#clearInverseRelations(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData[])"><B>clearInverseRelations(OpenJPAStateManager, Object, FieldMetaData, FieldMetaData[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Clear all inverse the relations from <code>val</code> to the instance
 managed by <code>sm</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#clearJoins()"><B>clearJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#clearJoins()"><B>clearJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Clears the set of field names to join when loading data.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#clearJoins()"><B>clearJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/ClearListener.html" title="interface in org.apache.openjpa.event"><B>ClearListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when persistent state is cleared from an instance.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#clearMapping()"><B>clearMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Clear mapping information, including strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#clearMapping()"><B>clearMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Clear mapping information, including strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#clearMapping()"><B>clearMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Clear mapping information, including strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#clearMapping()"><B>clearMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Clear mapping information, including strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#clearMapping()"><B>clearMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#clearMapping()"><B>clearMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Clear mapping information, including strategy.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#clearMapping(org.apache.openjpa.meta.ClassMetaData)"><B>clearMapping(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Clear mapping information from the given metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#clearOrdering()"><B>clearOrdering()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#clearOrdering()"><B>clearOrdering()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Clear odering conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#clearOrdering()"><B>clearOrdering()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#clearParameters()"><B>clearParameters()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#clearParameters()"><B>clearParameters()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#clearParameters()"><B>clearParameters()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Clear the recorded parameter values.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#clearPlaceholders()"><B>clearPlaceholders()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Clear all placeholders and select AS clauses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#clearPlaceholderSelects()"><B>clearPlaceholderSelects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Clear selected placeholders, and return removed select indexes.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#clearRelationId(org.apache.openjpa.jdbc.schema.Column)"><B>clearRelationId(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#clearRelationId(org.apache.openjpa.jdbc.schema.Column)"><B>clearRelationId(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Clear a circular relation id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#clearSelects()"><B>clearSelects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#clearSelects()"><B>clearSelects()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Clear the existing column selects.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#clearSelects()"><B>clearSelects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#clearSubclassCache()"><B>clearSubclassCache()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#clearSubclassCache()"><B>clearSubclassCache()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Clear cached subclass data.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#clearTraversal()"><B>clearTraversal()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Clear traversal info.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#clearTraversal()"><B>clearTraversal()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Clear all nodes and edges of the bookkeeping information from their
        last traversal.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#clearWarnings()"><B>clearWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#clearWarnings()"><B>clearWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#clearWarnings()"><B>clearWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#clearWarnings()"><B>clearWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#clearWarnings()"><B>clearWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#CLOB"><B>CLOB</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#clobTypeName"><B>clobTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ClobValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for clob values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html#ClobValueHandler()"><B>ClobValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClobValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return a new tool with the same settings as this one.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Performs a proper deep clone.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Perform a shallow clone of this SQL Buffer.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#clone()"><B>clone()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Clone this instance.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>Clone this instance.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#clone()"><B>clone()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return a copy of this configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Uses <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#toProperties(boolean)"><CODE>ConfigurationImpl.toProperties(boolean)</CODE></A> and <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#fromProperties(java.util.Map)"><CODE>ConfigurationImpl.fromProperties(java.util.Map)</CODE></A> to clone
 configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Make a copy of this code format object with all the same formatting
 settings.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns a shallow copy of this <tt>ConcurrentHashMap</tt> instance: the
 keys and values themselves are not cloned.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns a shallow copy of this HashMap.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#clone(java.lang.Object[])"><B>clone(Object[])</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>Clone a state array.
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Clone this data.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#close(boolean)"><B>close(boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#close(boolean)"><B>close(boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Free the resources used by this cache.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Close all caches.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Free the resources used by this cache.
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Close this manager and all registered listeners.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitListener.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event">RemoteCommitListener</A>
<DD>Free the resources used by this listener.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event">RemoteCommitProvider</A>
<DD>Free the resources used by this provider.
<DT><A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html" title="class in org.apache.openjpa.event">SingleJVMRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>No-op.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Invoked when the customizer is no longer needed.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Closes all eager results.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Free the resources used by this result; do <strong>not</strong>
 close the SQL connection.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>Does nothing by default.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Override if desired.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Close the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Close the factory.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Free any resources.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#close(boolean)"><B>close(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>Free resources used by this sequence.
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Free any resources this store manager is using.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel">UUIDHexSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel">UUIDStringSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Free the resources used by this object.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Closes all closeable values and plugins.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html" title="interface in org.apache.openjpa.lib.meta">MetaDataIterator</A>
<DD>Close the resources used by this iterator.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">URLMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultList.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultList.html" title="interface in org.apache.openjpa.lib.rop">ResultList</A>
<DD>Close the list.
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Free the resources associated with this provider.
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop">ResultObjectProviderIterator</A>
<DD>Close the underlying result object provider.
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Closeable.html#close()"><B>close()</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util">Closeable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Free the resources used by this repository.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Close user sequence instance.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#close()"><B>close()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#close(java.lang.Object)"><B>close(Object)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Close the given resource.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#close(java.lang.Object)"><B>close(Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Close the given resource.
<DT><A HREF="./org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util"><B>Closeable</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Generic interface for components that can be closed so that helpers
 can treate them in a generic way.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#closeAll()"><B>closeAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#closeAll()"><B>closeAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#closeAll()"><B>closeAll()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Close all open iterators.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#closeAll()"><B>closeAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#closeAll()"><B>closeAll()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Close all open query results.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#closeAll()"><B>closeAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#closeAll()"><B>closeAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>Close all open iterators that are consuming database resources.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#closeAll()"><B>closeAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#closeAll()"><B>closeAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Close all open query results.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#closeAll()"><B>closeAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#closeBrace(int)"><B>closeBrace(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#closeClassBrace(org.apache.openjpa.lib.util.CodeFormat)"><B>closeClassBrace(CodeFormat)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Append the closing code-level brace to the code; this can be
 overridden to add code to the bottom of the class.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#closeConnection(java.sql.Connection)"><B>closeConnection(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Close the current connection.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html#closeDataSource(javax.sql.DataSource)"><B>closeDataSource(DataSource)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema">DataSourceFactory</A>
<DD>Close the given data source.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#closeDataSource(javax.sql.DataSource)"><B>closeDataSource(DataSource)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Closes the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html" title="class or interface in javax.sql"><CODE>DataSource</CODE></A> and releases any
 resources associated with it.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html#closeDataSource(javax.sql.DataSource)"><B>closeDataSource(DataSource)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DerbyDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#closeEagerMap(java.util.Map)"><B>closeEagerMap(Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Close all results in eager map.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#closeParen()"><B>closeParen()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#closePoolSQL"><B>closePoolSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#closeResources()"><B>closeResources()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#closeResources()"><B>closeResources()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Close query results that are consuming resources.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#closeResources()"><B>closeResources()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#cls"><B>cls</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>The owning class mapping.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util"><B>CodeFormat</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Encapsulates some common Java source code formatting options.<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#CodeFormat()"><B>CodeFormat()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance"><B>CodeGenerator</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Generates Java class code from metadata.<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#CodeGenerator(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class)"><B>CodeGenerator(OpenJPAConfiguration, Class)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#CodeGenerator(org.apache.openjpa.meta.ClassMetaData)"><B>CodeGenerator(ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#COLLECTION"><B>COLLECTION</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTracker.html" title="interface in org.apache.openjpa.util"><B>CollectionChangeTracker</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Change tracker that can be used for collections.<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util"><B>CollectionChangeTrackerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Default <A HREF="./org/apache/openjpa/util/CollectionChangeTracker.html" title="interface in org.apache.openjpa.util"><CODE>CollectionChangeTracker</CODE></A>.<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#CollectionChangeTrackerImpl(java.util.Collection, boolean, boolean)"><B>CollectionChangeTrackerImpl(Collection, boolean, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html#collectionToArray(java.util.Collection)"><B>collectionToArray(Collection)</B></A> - 
Static method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html" title="class in org.apache.openjpa.lib.util.concurrent">Utils</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html#collectionToArray(java.util.Collection, java.lang.Object[])"><B>collectionToArray(Collection, Object[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html" title="class in org.apache.openjpa.lib.util.concurrent">Utils</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html#cols"><B>cols</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser.UniqueInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema"><B>Column</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a database column.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#Column()"><B>Column()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#Column(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>Column(String, Table)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema"><B>ColumnIO</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Metadata about column I/O in a specific context.<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#ColumnIO()"><B>ColumnIO()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/Columns.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>Columns</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows the specification of multiple columns for complex mappings.<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#columnsMatch(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Column[])"><B>columnsMatch(Column[], Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return true if the given local and foreign columns match those
 on this key.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#columnsMatch(org.apache.openjpa.jdbc.schema.Column[])"><B>columnsMatch(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Return true if the given columns match the columns of this constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ColumnVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Uses a single column and corresponding version object.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#ColumnVersionStrategy()"><B>ColumnVersionStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#combinePlugins(java.lang.String, java.lang.String)"><B>combinePlugins(String, String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Return a plugin string that combines the properties of the given plugin
 strings, where properties of <code>override</code> will override the
 same properties of <code>orig</code>.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#comment(char[], int, int)"><B>comment(char[], int, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml"><B>Commentable</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/xml/package-summary.html">org.apache.openjpa.lib.xml</A><DD>Implementations of this interface can be adorned with comments.<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>This is a no-op implementation.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>commit(Collection, Collection, Collection, Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>commit(Collection, Collection, Collection, Collection)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Perform a batch update of the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>commit(Collection, Collection, Collection, Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#commit()"><B>commit()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Commit the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#commit()"><B>commit()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Commit the current data store transaction.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#commit()"><B>commit()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#commitAndResume()"><B>commitAndResume()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Issue a commit and then start a new transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#commitAndResume()"><B>commitAndResume()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#commitAndResume()"><B>commitAndResume()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#commitAndResume()"><B>commitAndResume()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html#commitAndResume()"><B>commitAndResume()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityTransaction</A>
<DD>Issue a commit and then start a new transaction.
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.html" title="class in org.apache.openjpa.lib.log"><B>CommonsLogFactory</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD><A HREF="./org/apache/openjpa/lib/log/LogFactory.html" title="interface in org.apache.openjpa.lib.log"><CODE>LogFactory</CODE></A> implementation that delegates to the commons logging
 framework.<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.html#CommonsLogFactory()"><B>CommonsLogFactory()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log"><B>CommonsLogFactory.LogAdapter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Adapts a commons logging log to the <A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log"><CODE>Log</CODE></A>
 interface.<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#COMPACT"><B>COMPACT</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>Compare the two versions.
<DT><A HREF="./org/apache/openjpa/meta/InheritanceComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/InheritanceComparator.html" title="class in org.apache.openjpa.meta">InheritanceComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html" title="class in org.apache.openjpa.meta">MetaDataInheritanceComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer.SerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer.SerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#compareTo(byte[], byte[])"><B>compareTo(byte[], byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Compares two byte arrays as specified by <code>Comparable</code>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html#compareUnknown(java.lang.Object, java.lang.Object)"><B>compareUnknown(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer.SerializationComparator</A>
<DD>Compare two unrecognized elements of the same type.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.MappingSerializationComparator.html#compareUnknown(java.lang.Object, java.lang.Object)"><B>compareUnknown(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer.MappingSerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.MappingSerializationComparator.html#compareUnknown(java.lang.Object, java.lang.Object)"><B>compareUnknown(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer.MappingSerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html#compareUnknown(java.lang.Object, java.lang.Object)"><B>compareUnknown(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer.SerializationComparator</A>
<DD>Compare two unrecognized elements of the same type.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)"><B>compareVersion(OpenJPAStateManager, Object, Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Casts <code>v1</code> and <code>v2</code> to <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html" title="class or interface in java.lang"><CODE>Comparable</CODE></A>, and
 invokes <code>v1.compareTo (v2)</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)"><B>compareVersion(OpenJPAStateManager, Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#compareVersion(java.lang.Object, java.lang.Object)"><B>compareVersion(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#compareVersion(java.lang.Object, java.lang.Object)"><B>compareVersion(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#compareVersion(java.lang.Object, java.lang.Object)"><B>compareVersion(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html#compareVersion(java.lang.Object, java.lang.Object)"><B>compareVersion(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#compareVersion(java.lang.Object, java.lang.Object)"><B>compareVersion(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#compareVersion(java.lang.Object, java.lang.Object)"><B>compareVersion(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)"><B>compareVersion(OpenJPAStateManager, Object, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)"><B>compareVersion(OpenJPAStateManager, Object, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Compare the two version objects.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#comparison(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.String, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>comparison(SQLBuffer, String, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Append a comparison.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf"><B>Compatibility</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Struct encompassing backwards-compatibility options.<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#Compatibility()"><B>Compatibility()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#compatibilityPlugin"><B>compatibilityPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#compilationFromCache()"><B>compilationFromCache()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>Find the cached compilation for the current query, creating one if it
 does not exist.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#compile()"><B>compile()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#compile()"><B>compile()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Compile the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#compile()"><B>compile()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#compile()"><B>compile()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Compile the query.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#compile()"><B>compile()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#concat(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>concat(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#concat(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>concat(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the concatenation of
 the given target with the given args.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#concat(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>concat(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#concatenateDelimiter"><B>concatenateDelimiter</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#concatenateFunction"><B>concatenateFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache"><B>ConcurrentDataCache</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>A <A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCache</CODE></A> implementation that is optimized for concurrent
 access.<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#ConcurrentDataCache()"><B>ConcurrentDataCache()</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentHashMap</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>This class implements a HashMap which has limited synchronization.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#ConcurrentHashMap(int, float)"><B>ConcurrentHashMap(int, float)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Constructs an empty <tt>ConcurrentHashMap</tt> with the specified initial
 capacity and load factor.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#ConcurrentHashMap(int)"><B>ConcurrentHashMap(int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Constructs an empty <tt>ConcurrentHashMap</tt> with the specified initial
 capacity and the default load factor(0.75).
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#ConcurrentHashMap()"><B>ConcurrentHashMap()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Constructs an empty <tt>ConcurrentHashMap</tt> with the default initial
 capacity(16) and the default load factor(0.75).
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#ConcurrentHashMap(java.util.Map)"><B>ConcurrentHashMap(Map)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Constructs a new <tt>ConcurrentHashMap</tt> with the same mappings as the
 specified <tt>Map</tt>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentHashMap.Entry</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#ConcurrentHashMap.Entry(int, java.lang.Object, java.lang.Object, org.apache.openjpa.lib.util.concurrent.ConcurrentHashMap.Entry)"><B>ConcurrentHashMap.Entry(int, Object, Object, ConcurrentHashMap.Entry)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>Create new entry.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentHashSet</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A concurrent set.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#ConcurrentHashSet()"><B>ConcurrentHashSet()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>Construct a set with the given reference type.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentLinkedQueue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>An unbounded thread-safe <A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">queue</A> based on linked nodes.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#ConcurrentLinkedQueue()"><B>ConcurrentLinkedQueue()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#ConcurrentLinkedQueue(java.util.Collection)"><B>ConcurrentLinkedQueue(Collection)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Creates a <tt>ConcurrentLinkedQueue</tt>
 initially containing the elements of the given collection,
 added in traversal order of the collection's iterator.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentMap.html" title="interface in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentMap</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A highly concurrent map.<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache"><B>ConcurrentQueryCache</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>A <A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache"><CODE>QueryCache</CODE></A> implementation that is optimized for concurrent
 access.<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#ConcurrentQueryCache()"><B>ConcurrentQueryCache()</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentReferenceHashMap</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>This class implements a HashMap which has limited synchronization
 and reference keys or values(but not both).<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#ConcurrentReferenceHashMap(int, int, int, float)"><B>ConcurrentReferenceHashMap(int, int, int, float)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Constructs a new, empty HashMap with the specified initial
 capacity and the specified load factor.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#ConcurrentReferenceHashMap(int, int, int)"><B>ConcurrentReferenceHashMap(int, int, int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Constructs a new, empty HashMap with the specified initial capacity
 and default load factor.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#ConcurrentReferenceHashMap(int, int)"><B>ConcurrentReferenceHashMap(int, int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Constructs a new, empty HashMap with a default capacity and load factor.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#ConcurrentReferenceHashMap(int, int, java.util.Map)"><B>ConcurrentReferenceHashMap(int, int, Map)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Constructs a new HashMap with the same mappings as the given
 Map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ConcurrentReferenceHashSet</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A concurrent set whose values may be stored as weak or soft references.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#ConcurrentReferenceHashSet(int)"><B>ConcurrentReferenceHashSet(int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>Construct a set with the given reference type.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent"><B>Condition</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD><tt>Condition</tt> factors out the <tt>Object</tt> monitor
 methods(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang"><CODE>wait</CODE></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"><CODE>notify</CODE></A>
 and <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang"><CODE>notifyAll</CODE></A>) into distinct objects to
 give the effect of having multiple wait-sets per object, by
 combining them with the use of arbitrary <A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent"><CODE>Lock</CODE></A> implementations.<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#conf"><B>conf</B></A> - 
Variable in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>The configuration set by the system.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#conf"><B>conf</B></A> - 
Variable in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>The configuration set by the system.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#conf"><B>conf</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#conf"><B>conf</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurable.html" title="interface in org.apache.openjpa.lib.conf"><B>Configurable</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>This interface provides a mechanism for notifying interested
 objects when configuration events occur.<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><B>Configuration</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Interface for generic configuration objects.<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf"><B>ConfigurationImpl</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Default implementation of the <A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><CODE>Configuration</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#ConfigurationImpl()"><B>ConfigurationImpl()</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#ConfigurationImpl(boolean)"><B>ConfigurationImpl(boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf"><B>ConfigurationProvider</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Implementations of this interface can populate <A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><CODE>Configuration</CODE></A>s in
 some environment-specific way.<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf"><B>Configurations</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Utility methods dealing with configuration.<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#Configurations()"><B>Configurations()</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#configureBroker(org.apache.openjpa.kernel.BrokerImpl)"><B>configureBroker(BrokerImpl)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Configures the given broker with the current factory option settings.
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#configureEventManager(org.apache.openjpa.event.RemoteCommitEventManager)"><B>configureEventManager(RemoteCommitEventManager)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>Configure the remote event manager.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#configureInstance(java.lang.Object, org.apache.openjpa.lib.conf.Configuration, java.lang.String)"><B>configureInstance(Object, Configuration, String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Configures the given object with the given properties by
 matching the properties string to the object's setter
 methods.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#configureInstance(java.lang.Object, org.apache.openjpa.lib.conf.Configuration, java.lang.String, java.lang.String)"><B>configureInstance(Object, Configuration, String, String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Configures the given object with the given properties by
 matching the properties string to the object's setter
 methods.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#configureInstance(java.lang.Object, org.apache.openjpa.lib.conf.Configuration, java.util.Properties)"><B>configureInstance(Object, Configuration, Properties)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Configures the given object with the given properties by
 matching the properties string to the object's setter
 methods.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#configureInstance(java.lang.Object, org.apache.openjpa.lib.conf.Configuration, java.util.Properties, java.lang.String)"><B>configureInstance(Object, Configuration, Properties, String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Configures the given object with the given properties by
 matching the properties string to the object's setter
 methods.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc"><B>ConfiguringConnectionDecorator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Connection decorator that can configure some properties of the
 underlying connection.<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#ConfiguringConnectionDecorator()"><B>ConfiguringConnectionDecorator()</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_ALWAYS"><B>CONN_RETAIN_ALWAYS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html" title="interface in org.apache.openjpa.kernel">ConnectionRetainModes</A>
<DD>Constant indicating that each broker will retain a single connection
 that it will use for its lifespan.
<DT><A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_DEMAND"><B>CONN_RETAIN_DEMAND</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html" title="interface in org.apache.openjpa.kernel">ConnectionRetainModes</A>
<DD>Constant indicating that connections will be obtained as needed.
<DT><A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_TRANS"><B>CONN_RETAIN_TRANS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html" title="interface in org.apache.openjpa.kernel">ConnectionRetainModes</A>
<DD>Constant indicating that connections will be retained for the life
 of each transaction.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#connected"><B>connected</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#connectedConfiguration(java.sql.Connection)"><B>connectedConfiguration(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#connectedConfiguration(java.sql.Connection)"><B>connectedConfiguration(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>This method is called when the dictionary first sees any connection.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#connectedConfiguration(java.sql.Connection)"><B>connectedConfiguration(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#connectedConfiguration(java.sql.Connection)"><B>connectedConfiguration(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#connectedConfiguration(java.sql.Connection)"><B>connectedConfiguration(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#connectInternal()"><B>connectInternal()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>Connect to the database.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connection2DriverName"><B>connection2DriverName</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connection2Password"><B>connection2Password</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connection2Properties"><B>connection2Properties</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connection2URL"><B>connection2URL</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connection2UserName"><B>connection2UserName</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><B>ConnectionDecorator</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>A connection decorator can wrap <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A>s before they are
 returned to the user to add functionality.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#connectionDecoratorPlugins"><B>connectionDecoratorPlugins</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionDriverName"><B>connectionDriverName</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactory"><B>connectionFactory</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactory2"><B>connectionFactory2</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactory2Name"><B>connectionFactory2Name</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactory2Properties"><B>connectionFactory2Properties</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactoryMode"><B>connectionFactoryMode</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactoryName"><B>connectionFactoryName</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionFactoryProperties"><B>connectionFactoryProperties</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html" title="class in org.apache.openjpa.jdbc.kernel"><B>ConnectionInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Struct to hold data about the current connection state.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html#ConnectionInfo()"><B>ConnectionInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html" title="class in org.apache.openjpa.jdbc.kernel">ConnectionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionPassword"><B>connectionPassword</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionProperties"><B>connectionProperties</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionRetainMode"><B>connectionRetainMode</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ConnectionRetainMode.html" title="enum in org.apache.openjpa.persistence"><B>ConnectionRetainMode</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible values for use when configuring the connection retain
 behavior for an <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html" title="interface in org.apache.openjpa.kernel"><B>ConnectionRetainModes</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Connection retain mode constants.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionURL"><B>connectionURL</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#connectionUserName"><B>connectionUserName</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#CONS_NAME_AFTER"><B>CONS_NAME_AFTER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#CONS_NAME_BEFORE"><B>CONS_NAME_BEFORE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#CONS_NAME_MID"><B>CONS_NAME_MID</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps"><B>Constant</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Interface for any query constant value.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema"><B>Constraint</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>A table constraint.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#constraintNameMode"><B>constraintNameMode</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>ConstraintUpdateManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Standard update manager, capable of foreign key constraint evaluation.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#ConstraintUpdateManager()"><B>ConstraintUpdateManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ContainerFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>An abstract container mapping that handles traversing the
 join to examine the size of the relation.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#ContainerFieldStrategy()"><B>ContainerFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ContainerTable.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ContainerTable</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Table for array, collection, or map elements.<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Returns <code>true</code> if this cache contains data
 corresponding to <code>oid</code>; otherwise returns
 <code>false</code>.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#contains(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>contains(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#contains(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>contains(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#contains(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>contains(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return true if the given id or column is available in the result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#contains(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>contains(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return true if the given column is available in the result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#contains(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>contains(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#contains(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>contains(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Returns <tt>true</tt> if this queue contains the specified element.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns <tt>true</tt> if this set contains the specified element.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#contains(java.lang.Class, java.lang.Object)"><B>contains(Class, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Whether the cache contains data for the given oid.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#contains(java.lang.Class, java.lang.Object)"><B>contains(Class, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#CONTAINS_TYPE_ELEMENT"><B>CONTAINS_TYPE_ELEMENT</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#CONTAINS_TYPE_KEY"><B>CONTAINS_TYPE_KEY</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#CONTAINS_TYPE_VALUE"><B>CONTAINS_TYPE_VALUE</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Returns the indexes of the oids in this cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#containsAll(java.lang.Object[])"><B>containsAll(Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#containsAll(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>containsAll(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#containsAll(java.lang.Object[])"><B>containsAll(Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#containsAll(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>containsAll(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#containsAll(java.lang.Object[])"><B>containsAll(Object[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return true if all the given ids or columns are available in the result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#containsAll(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>containsAll(Column[], Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return true if all the given columns are available in the result.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns <tt>true</tt> if this set contains all of the elements of the
 specified collection.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#containsAll(java.lang.Object...)"><B>containsAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#containsAll(java.lang.Object...)"><B>containsAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether the given objects are managed.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether the given objects are managed.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#containsAll(java.lang.Class, java.lang.Object...)"><B>containsAll(Class, Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Whether the cache contains data for the given oids.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#containsAll(java.lang.Class, java.util.Collection)"><B>containsAll(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Whether the cache contains data for the given oids.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#containsAll(java.lang.Class, java.lang.Object...)"><B>containsAll(Class, Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#containsAll(java.lang.Class, java.util.Collection)"><B>containsAll(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#containsAll(java.util.Collection)"><B>containsAll(Collection)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#containsAllInternal(java.lang.Object[], org.apache.openjpa.jdbc.sql.Joins)"><B>containsAllInternal(Object[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Return whether this result contains data for all the given ids or
 columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#containsAllInternal(java.lang.Object[], org.apache.openjpa.jdbc.sql.Joins)"><B>containsAllInternal(Object[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#containsClassLoader(java.lang.ClassLoader)"><B>containsClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Returns true if the list contains the given class loader or marker.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#containsColumn(org.apache.openjpa.jdbc.schema.Column)"><B>containsColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return true if the fk includes the given local column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#containsColumn(org.apache.openjpa.jdbc.schema.Column)"><B>containsColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Return true if the pk includes the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#containsConstantColumn(org.apache.openjpa.jdbc.schema.Column)"><B>containsConstantColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return true if the fk includes the given local column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#containsConstantPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Column)"><B>containsConstantPrimaryKeyColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return true if the fk includes the given primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#containsInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>containsInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Return whether this result contains data for the given id or column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#containsInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>containsInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#containsInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>containsInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#containsKey(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>containsKey(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#containsKey(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>containsKey(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#containsKey(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>containsKey(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#containsKey(java.lang.Object)"><B>containsKey(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns <tt>true</tt> if this map contains a mapping for the
 specified key.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#containsKey(java.lang.Object)"><B>containsKey(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns true if this HashMap contains a mapping for the specified key.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#containsKey(java.lang.Object)"><B>containsKey(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#containsKey(java.lang.Object)"><B>containsKey(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#containsNode(java.lang.Object)"><B>containsNode(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Return true if the graph contains the given node.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#containsPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Column)"><B>containsPrimaryKeyColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return true if the fk includes the given primary key column.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#containsProperty(java.lang.String, java.util.Map)"><B>containsProperty(String, Map)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Test whether the map contains the given partial key, prefixed with any
 possible configuration prefix.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#containsValue(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>containsValue(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#containsValue(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>containsValue(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#containsValue(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>containsValue(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#containsValue(java.lang.Object)"><B>containsValue(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns <tt>true</tt> if this map maps one or more keys to the
 specified value.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#containsValue(java.lang.Object)"><B>containsValue(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns true if this HashMap maps one or more keys to the specified
 value.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#containsValue(java.lang.Object)"><B>containsValue(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#containsValue(java.lang.Object)"><B>containsValue(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#convert(java.lang.Object, java.lang.Class)"><B>convert(Object, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Convert the given value to the given type.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#convert(long, org.apache.openjpa.lib.util.concurrent.TimeUnit)"><B>convert(long, TimeUnit)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Convert the given time duration in the given unit to this
 unit.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#convert(java.lang.Object, int)"><B>convert(Object, int)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Convert the given object to the given type if possible.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#convertSchemaCase(java.lang.String)"><B>convertSchemaCase(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified schema name to a name that the database will
 be able to understand.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#copy(org.apache.openjpa.kernel.FetchConfiguration)"><B>copy(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#copy(org.apache.openjpa.meta.ClassMetaData)"><B>copy(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#copy(org.apache.openjpa.jdbc.meta.MappingInfo)"><B>copy(MappingInfo)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#copy(org.apache.openjpa.jdbc.meta.MappingInfo)"><B>copy(MappingInfo)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#copy(org.apache.openjpa.meta.FieldMetaData)"><B>copy(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#copy(org.apache.openjpa.jdbc.meta.MappingInfo)"><B>copy(MappingInfo)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#copy(org.apache.openjpa.jdbc.meta.MappingInfo)"><B>copy(MappingInfo)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Copy missing info from the instance to this one.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#copy(org.apache.openjpa.jdbc.meta.MappingInfo)"><B>copy(MappingInfo)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#copy(org.apache.openjpa.jdbc.schema.Column)"><B>copy(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Copy information from the given column to this one.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#copy(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>copy(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Copy cloneable state from the given instance.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#copy(org.apache.openjpa.kernel.FetchConfiguration)"><B>copy(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#copy(org.apache.openjpa.kernel.FetchConfiguration)"><B>copy(FetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Copy the state from the given fetch configuration to this one.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#copy(org.apache.openjpa.kernel.FetchConfiguration)"><B>copy(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#copy(java.io.File, java.io.File)"><B>copy(File, File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Copy a file.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#copy(org.apache.openjpa.meta.ClassMetaData)"><B>copy(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Copy the metadata from the given instance to this one.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#copy(org.apache.openjpa.meta.Extensions)"><B>copy(Extensions)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Copy the extensions not present in this instance but present in the
 given instance.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#copy(org.apache.openjpa.meta.FieldMetaData)"><B>copy(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Copy state from the given field to this one.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#copy(org.apache.openjpa.meta.ValueMetaData)"><B>copy(ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#copy(org.apache.openjpa.meta.ValueMetaData)"><B>copy(ValueMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Copy state from the given value to this one.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#copy(org.apache.openjpa.meta.ValueMetaData)"><B>copy(ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#copy(java.lang.Object)"><B>copy(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#copy(java.lang.Object)"><B>copy(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#copy(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>copy(Object, ClassMetaData)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>Copy the given oid value.
<DT><A HREF="./org/apache/openjpa/util/Proxy.html#copy(java.lang.Object)"><B>copy(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxy.html" title="interface in org.apache.openjpa.util">Proxy</A>
<DD>Return an unproxied copy of the given instance.
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#copyArray(java.lang.Object)"><B>copyArray(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a new array of the same component type as the given array
 and containing the same elements.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#copyArray(java.lang.Object)"><B>copyArray(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#copyCalendar(java.util.Calendar)"><B>copyCalendar(Calendar)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a copy of the given calendar with the same information.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#copyCalendar(java.util.Calendar)"><B>copyCalendar(Calendar)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#copyCollection(java.util.Collection)"><B>copyCollection(Collection)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a new collection of the same type as the given one
 with a copy of all contained elements.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#copyCollection(java.util.Collection)"><B>copyCollection(Collection)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#copyCustom(java.lang.Object)"><B>copyCustom(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a copy of the given object with the same information, or null if
 this manager cannot copy the object.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#copyCustom(java.lang.Object)"><B>copyCustom(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#copyDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>copyDataStoreId(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#copyDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>copyDataStoreId(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#copyDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>copyDataStoreId(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#copyDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>copyDataStoreId(Object, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Copy the given object id value.
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#copyDate(java.util.Date)"><B>copyDate(Date)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a copy of the given date with the same information.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#copyDate(java.util.Date)"><B>copyDate(Date)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#copyInto(org.apache.openjpa.jdbc.sql.RowImpl, boolean)"><B>copyInto(RowImpl, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#copyInto(org.apache.openjpa.jdbc.sql.RowImpl, boolean)"><B>copyInto(RowImpl, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Copy all values from this row into the given one.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#copyInto(org.apache.openjpa.jdbc.sql.RowImpl, boolean)"><B>copyInto(RowImpl, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#copyKeyFieldsFromObjectId(java.lang.Class, org.apache.openjpa.enhance.FieldConsumer, java.lang.Object)"><B>copyKeyFieldsFromObjectId(Class, FieldConsumer, Object)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Copy fields to an outside source from the key fields in the identity
 object.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#copyKeyFieldsToObjectId(java.lang.Class, org.apache.openjpa.enhance.FieldSupplier, java.lang.Object)"><B>copyKeyFieldsToObjectId(Class, FieldSupplier, Object)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Copy fields from an outside source to the key fields in the identity
 object.
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#copyMap(java.util.Map)"><B>copyMap(Map)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a new map of the same type as the given one
 with a copy of all contained key/value pairs.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#copyMap(java.util.Map)"><B>copyMap(Map)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#copyMappingInfo(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>copyMappingInfo(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Copy mapping info from the given instance to this one.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#copyMappingInfo(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>copyMappingInfo(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#copyMappingInfo(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>copyMappingInfo(ValueMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Copy mapping info from the given instance to this one.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#copyMappingInfo(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>copyMappingInfo(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>CopyOnWriteArrayList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#CopyOnWriteArrayList()"><B>CopyOnWriteArrayList()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#CopyOnWriteArrayList(java.util.Collection)"><B>CopyOnWriteArrayList(Collection)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#CopyOnWriteArrayList(java.lang.Object[])"><B>CopyOnWriteArrayList(Object[])</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>CopyOnWriteArraySet</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Set.html" title="class or interface in java.util"><CODE>Set</CODE></A> that uses an internal <A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent"><CODE>CopyOnWriteArrayList</CODE></A>
 for all of its operations.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#CopyOnWriteArraySet()"><B>CopyOnWriteArraySet()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Creates an empty set.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#CopyOnWriteArraySet(java.util.Collection)"><B>CopyOnWriteArraySet(Collection)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Creates a set containing all of the elements of the specified collection.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#correctName(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column)"><B>correctName(Table, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Correct the given column's name.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#correctRelations(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, java.lang.Object)"><B>correctRelations(OpenJPAStateManager, FieldMetaData, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Correct relations from the given dirty field to inverse instances.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#count(org.apache.openjpa.kernel.exps.Value)"><B>count(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html#count()"><B>count()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html" title="class in org.apache.openjpa.jdbc.meta.strats">LRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#count(org.apache.openjpa.kernel.exps.Value)"><B>count(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the count of the given value for all matches.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#count(org.apache.openjpa.kernel.exps.Value)"><B>count(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#count()"><B>count()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>Return the number of elements in the collection, or
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#MAX_VALUE" title="class or interface in java.lang"><CODE>Integer.MAX_VALUE</CODE></A>.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#count()"><B>count()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>Return the number of entries in the map, or <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#MAX_VALUE" title="class or interface in java.lang"><CODE>Integer.MAX_VALUE</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#cpath"><B>cpath</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#create(org.apache.openjpa.enhance.PersistenceCapable, org.apache.openjpa.meta.ClassMetaData)"><B>create(PersistenceCapable, ClassMetaData)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>Generate an application id based on the current primary key field state
 of the given instance.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#createClasspath()"><B>createClasspath()</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#createCodeFormat()"><B>createCodeFormat()</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Create the embedded code format element.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#createCodeFormat()"><B>createCodeFormat()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)"><B>createColumns(MetaDataContext, String, Column[], Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Retrieve/create columns on the given table by merging the given
 template information with any user-provided information.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#createConfig()"><B>createConfig()</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#createConnectionDecorators()"><B>createConnectionDecorators()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Provide any built-in decorators; may be null.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#createConnectionDecorators()"><B>createConnectionDecorators()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html#createContainerEntityManagerFactory(javax.persistence.spi.PersistenceUnitInfo, java.util.Map)"><B>createContainerEntityManagerFactory(PersistenceUnitInfo, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProviderImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#createEntityManager()"><B>createEntityManager()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#createEntityManager(java.util.Map)"><B>createEntityManager(Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#createEntityManager()"><B>createEntityManager()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#createEntityManager(java.util.Map)"><B>createEntityManager(Map)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Return an entity manager with the provided additional configuration
 settings.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#createEntityManager()"><B>createEntityManager()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#createEntityManager(java.util.Map)"><B>createEntityManager(Map)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#createEntityManagerFactory(java.lang.String, java.lang.String)"><B>createEntityManagerFactory(String, String)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Returns a new <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManagerFactory</CODE></A> specified by
 <code>name</code> in an XML configuration file at the resource location
 <code>resource</code>.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#createEntityManagerFactory(java.lang.String, java.lang.String, java.util.Map)"><B>createEntityManagerFactory(String, String, Map)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Returns a new <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManagerFactory</CODE></A> specified by
 <code>name</code> in an XML configuration file at the resource location
 <code>resource</code>, applying the properties specified in
 <code>map</code> as overrides.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#createEntityManagerFactory(java.lang.String, javax.naming.Context)"><B>createEntityManagerFactory(String, Context)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Returns the <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManagerFactory.html" title="class or interface in javax.persistence"><CODE>EntityManagerFactory</CODE></A> at the JNDI location specified
 by <code>jndiLocation</code> in the context <code>context</code>.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html#createEntityManagerFactory(java.lang.String, java.lang.String, java.util.Map)"><B>createEntityManagerFactory(String, String, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProviderImpl</A>
<DD>Loads the entity manager specified by <code>name</code>, applying
 the properties in <code>m</code> as overrides to the properties defined
 in the XML configuration file for <code>name</code>.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html#createEntityManagerFactory(java.lang.String, java.util.Map)"><B>createEntityManagerFactory(String, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProviderImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#createEntry(int, java.lang.Object, java.lang.Object, org.apache.openjpa.lib.util.concurrent.ConcurrentHashMap.Entry)"><B>createEntry(int, Object, Object, ConcurrentHashMap.Entry)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#createEntry(org.apache.commons.collections.map.AbstractHashedMap.HashEntry, int, java.lang.Object, java.lang.Object)"><B>createEntry(AbstractHashedMap.HashEntry, int, Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createExtent(java.lang.Class, boolean)"><B>createExtent(Class&lt;T&gt;, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createExtent(java.lang.Class, boolean)"><B>createExtent(Class&lt;T&gt;, boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return an extent of the given class, optionally including subclasses.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#createFactory(serp.bytecode.BCClass)"><B>createFactory(BCClass)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Create a stub factory instance for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)"><B>createForeignKey(MetaDataContext, String, List, MappingInfo.ForeignKeyDefaults, Table, ClassMapping, ClassMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Retrieve/create a foreign key (possibly logical) on the given columns
 by merging the given template information with any user-provided
 information.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#createIdentityColumn"><B>createIdentityColumn</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>If true, then whenever the <code>schematool</code> creates a
 table, it will append an additional IDENTITY column to the
 table's creation SQL.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createIndex(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Index, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>createIndex(MetaDataContext, String, Index, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Retrieve/create an index on the given columns by merging the given
 template information with any user-provided information.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#createIndex(org.apache.openjpa.jdbc.schema.Index, org.apache.openjpa.jdbc.schema.Table)"><B>createIndex(Index, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Add the given index to the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#createIndexIfNecessary(org.apache.openjpa.jdbc.schema.Schema, java.lang.String, org.apache.openjpa.jdbc.schema.Column)"><B>createIndexIfNecessary(Schema, String, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>Create an index if necessary for some database tables
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#createIndexIfNecessary(org.apache.openjpa.jdbc.schema.Schema, java.lang.String, org.apache.openjpa.jdbc.schema.Column)"><B>createIndexIfNecessary(Schema, String, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create an index if necessary for some database tables
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createInstance(java.lang.Class)"><B>createInstance(Class&lt;T&gt;)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createInstance(java.lang.Class)"><B>createInstance(Class&lt;T&gt;)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Create a new instance of type <code>cls</code>.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#createInverseRelations(org.apache.openjpa.kernel.StoreContext, java.lang.Object, java.lang.Object, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData[])"><B>createInverseRelations(StoreContext, Object, Object, FieldMetaData, FieldMetaData[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Create the inverse relations for all the given inverse fields.
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#createMessage(org.apache.openjpa.event.RemoteCommitEvent)"><B>createMessage(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>Returns a new <A HREF="http://java.sun.com/javaee/5/docs/api/javax/jms/Message.html" title="class or interface in javax.jms"><CODE>Message</CODE></A> to send to the topic.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createNamedQuery(java.lang.String)"><B>createNamedQuery(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createNamedQuery(java.lang.String)"><B>createNamedQuery(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createNativeQuery(java.lang.String)"><B>createNativeQuery(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createNativeQuery(java.lang.String, java.lang.Class)"><B>createNativeQuery(String, Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createNativeQuery(java.lang.String, java.lang.String)"><B>createNativeQuery(String, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createNativeQuery(java.lang.String)"><B>createNativeQuery(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createNativeQuery(java.lang.String, java.lang.Class)"><B>createNativeQuery(String, Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createNativeQuery(java.lang.String, java.lang.String)"><B>createNativeQuery(String, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#createPrimaryKeys"><B>createPrimaryKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createQuery(java.lang.String)"><B>createQuery(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createQuery(java.lang.String, java.lang.String)"><B>createQuery(String, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#createQuery(javax.persistence.Query)"><B>createQuery(Query)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createQuery(java.lang.String)"><B>createQuery(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createQuery(javax.persistence.Query)"><B>createQuery(Query)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Create a new query from the given one.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#createQuery(java.lang.String, java.lang.String)"><B>createQuery(String, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Create a new query in the given language.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#createSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>createSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Add the given sequence to the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#createStatement(boolean)"><B>createStatement(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#createStatement(int, int, boolean)"><B>createStatement(int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#createStatement()"><B>createStatement()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#createStatement(boolean)"><B>createStatement(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Create a statement, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingStatement</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#createStatement(int, int)"><B>createStatement(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#createStatement(int, int, boolean)"><B>createStatement(int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Create a statement, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingStatement</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#createStatement(int, int, int)"><B>createStatement(int, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#createStatement(int, int, int, boolean)"><B>createStatement(int, int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createTable(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.meta.MappingInfo.TableDefaults, java.lang.String, java.lang.String, boolean)"><B>createTable(MetaDataContext, MappingInfo.TableDefaults, String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Find or generate a table for a mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#createTable(org.apache.openjpa.jdbc.schema.Table)"><B>createTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Add the given table to the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createUnique(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Unique, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>createUnique(MetaDataContext, String, Unique, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Retrieve/create a unique constraint on the given columns by merging the
 given template information with any user-provided information.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#crossJoin(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>crossJoin(Table, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Perform a cross join on the given tables.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#crossJoin(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>crossJoin(Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#crossJoin(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>crossJoin(Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#crossJoinClause"><B>crossJoinClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#ctx"><B>ctx</B></A> - 
Variable in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#ctx"><B>ctx</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>The context against which this LockManager is operating.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#ctx"><B>ctx</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>The <A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel"><CODE>StoreContext</CODE></A> that this result object
 provider will load objects into.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#ctx"><B>ctx</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#ctx"><B>ctx</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#current"><B>current</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>current(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>current(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>current(StoreContext, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>Return the current value of the sequence, or null if not available.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>current(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>current(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel">UUIDHexSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>current(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel">UUIDStringSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html#current()"><B>current()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence">Generator</A>
<DD>The current sequence value, or null if the sequence does not
 support current values.
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#current()"><B>current()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#currentBackupFile()"><B>currentBackupFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>The backup file made for the current file being parsed.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#currentClassLoader()"><B>currentClassLoader()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return the class loader to use when resolving resources and loading
 classes.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#currentClassName()"><B>currentClassName()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Return the current class being parsed; the returned name will
 be fully qualified.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#currentComments()"><B>currentComments()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Array of comments for the current node, or empty array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#currentDateFunction"><B>currentDateFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#currentDepth()"><B>currentDepth()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return the parse depth.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#currentElement()"><B>currentElement()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Return the current element being parsed.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#currentInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>currentInternal(JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Return the current sequence object.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#currentInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>currentInternal(JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#currentLocation()"><B>currentLocation()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return the current location within the source file.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#currentPackage()"><B>currentPackage()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Return the current package being parsed.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#currentParent()"><B>currentParent()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Return the tag of the current parent element.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#currentQuery()"><B>currentQuery()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Returns the current string being parsed; used for error messages.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#currentQuery()"><B>currentQuery()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#currentStrategy()"><B>currentStrategy()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Return the current <A HREF="./org/apache/openjpa/persistence/PersistenceStrategy.html" title="enum in org.apache.openjpa.persistence"><CODE>PersistenceStrategy</CODE></A> if any.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#currentText()"><B>currentText()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return the text value within the current node.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#currentTimeFunction"><B>currentTimeFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#currentTimestampFunction"><B>currentTimestampFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Override this method to customize flushing this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#customDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Override this method to customize flushing this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>This method is for class mappings that take over the insert
 process, but still want to use this indicator for optimistic locking.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#customInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#customize(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>customize(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#customize(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>customize(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#customize(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>customize(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Customize the given class information produced by the reverse mapping
 tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#customize(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>customize(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Customize the given field information produced by the reverse mapping
 tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#customizer"><B>customizer</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#customizerClass"><B>customizerClass</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#customizerProperties"><B>customizerProperties</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#customLoad(org.apache.openjpa.jdbc.kernel.JDBCStore, boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, long, long)"><B>customLoad(JDBCStore, boolean, JDBCFetchConfiguration, long, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#customLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.kernel.PCState, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>customLoad(OpenJPAStateManager, JDBCStore, PCState, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#customLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>customLoad(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#customLoad(org.apache.openjpa.jdbc.kernel.JDBCStore, boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, long, long)"><B>customLoad(JDBCStore, boolean, JDBCFetchConfiguration, long, long)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Implement this method to customize obtaining a result containing all
 instances of this class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#customLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.kernel.PCState, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>customLoad(OpenJPAStateManager, JDBCStore, PCState, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Implement this method to load the state of a given object, without
 a previous <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#customLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>customLoad(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Implement this method to customize loading from a <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>
 into an instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#customLoad(org.apache.openjpa.jdbc.kernel.JDBCStore, boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, long, long)"><B>customLoad(JDBCStore, boolean, JDBCFetchConfiguration, long, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#customLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.kernel.PCState, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>customLoad(OpenJPAStateManager, JDBCStore, PCState, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#customLoad(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>customLoad(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Override this method to customize flushing this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>customUpdate(OpenJPAStateManager, JDBCStore, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>This method is for class mappings that take over the update
 process, but still want to use this indicator for optimistic locking.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#customUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>customUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#databaseProductName"><B>databaseProductName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#databaseProductVersion"><B>databaseProductVersion</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><B>DataCache</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Interface that must be implemented by any level 2 cache used by
 OpenJPA.<DT><A HREF="./org/apache/openjpa/persistence/DataCache.html" title="annotation in org.apache.openjpa.persistence"><B>DataCache</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Caching characteristics for this class.<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache"><B>DataCacheManager</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Manages the system's data and query caches.<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache"><B>DataCacheManagerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Default data cache manager.<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#DataCacheManagerImpl()"><B>DataCacheManagerImpl()</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#dataCacheManagerPlugin"><B>dataCacheManagerPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCData.html" title="interface in org.apache.openjpa.datacache"><B>DataCachePCData</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Specialized <A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><CODE>PCData</CODE></A> implementation for data caching.<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html" title="class in org.apache.openjpa.datacache"><B>DataCachePCDataGenerator</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>A <A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance"><CODE>PCDataGenerator</CODE></A> instance which generates properly
 synchronized instances suitable for use in the cache.<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html#DataCachePCDataGenerator(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>DataCachePCDataGenerator(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html" title="class in org.apache.openjpa.datacache">DataCachePCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.Timed.html" title="interface in org.apache.openjpa.datacache"><B>DataCachePCDataGenerator.Timed</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Simple interface to give access to expiration time.<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache"><B>DataCachePCDataImpl</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Specialized <A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><CODE>PCData</CODE></A> implementation for data caching.<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#DataCachePCDataImpl(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>DataCachePCDataImpl(Object, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#dataCachePlugin"><B>dataCachePlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache"><B>DataCacheScheduler</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Cron-style cache eviction.<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#DataCacheScheduler(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>DataCacheScheduler(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache"><B>DataCacheStoreManager</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>StoreManager proxy that delegates to a data cache when possible.<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#DataCacheStoreManager(org.apache.openjpa.kernel.StoreManager)"><B>DataCacheStoreManager(StoreManager)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#dataCacheTimeout"><B>dataCacheTimeout</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#dataDefinitionCausesTransactionCommit()"><B>dataDefinitionCausesTransactionCommit()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#dataDefinitionIgnoredInTransactions()"><B>dataDefinitionIgnoredInTransactions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema"><B>DataSourceFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Factory for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html" title="class or interface in javax.sql"><CODE>DataSource</CODE></A> objects.<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html#DataSourceFactory()"><B>DataSourceFactory()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema">DataSourceFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc"><B>DataSourceLogs</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Provies basic logging facilities to a DataSource.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#DataSourceLogs()"><B>DataSourceLogs()</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#DataSourceLogs(org.apache.openjpa.lib.log.Log, org.apache.openjpa.lib.log.Log)"><B>DataSourceLogs(Log, Log)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html#datastore"><B>datastore</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html" title="class in org.apache.openjpa.kernel">QueryImpl.Compilation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/DataStoreId.html" title="annotation in org.apache.openjpa.persistence"><B>DataStoreId</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Describes how to generate a value for a field.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/DataStoreIdColumn.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>DataStoreIdColumn</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Surrogate datastore identity column.<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#DATE"><B>DATE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util"><B>DateId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for Date fields.<DT><A HREF="./org/apache/openjpa/util/DateId.html#DateId(java.lang.Class, java.lang.String)"><B>DateId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#DateId(java.lang.Class, java.util.Date)"><B>DateId(Class, Date)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#DateId(java.lang.Class, java.sql.Date)"><B>DateId(Class, Date)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#DateId(java.lang.Class, java.sql.Timestamp)"><B>DateId(Class, Timestamp)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#DateId(java.lang.Class, java.util.Date, boolean)"><B>DateId(Class, Date, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#datePrecision"><B>datePrecision</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#dateTypeName"><B>dateTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#DAYS"><B>DAYS</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>DB2Dictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for IBM DB2 database.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#DB2Dictionary()"><B>DB2Dictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#db2ISeriesV5R3OrEarlier"><B>db2ISeriesV5R3OrEarlier</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#db2ISeriesV5R4OrLater"><B>db2ISeriesV5R4OrLater</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#db2ServerType"><B>db2ServerType</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#db2UDBV81OrEarlier"><B>db2UDBV81OrEarlier</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#db2UDBV82OrLater"><B>db2UDBV82OrLater</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#db2ZOSV8xOrLater"><B>db2ZOSV8xOrLater</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>DBDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Class which allows the creation of SQL dynamically, in a
 database agnostic fashion.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#DBDictionary()"><B>DBDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.SerializedData.html" title="class in org.apache.openjpa.jdbc.sql"><B>DBDictionary.SerializedData</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Used by some mappings to represent data that has already been
 serialized so that we don't have to serialize multiple times.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.SerializedData.html#DBDictionary.SerializedData(byte[])"><B>DBDictionary.SerializedData(byte[])</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.SerializedData.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary.SerializedData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html" title="class in org.apache.openjpa.jdbc.sql"><B>DBDictionaryFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Factory class to instantiate a dictionary.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html#DBDictionaryFactory()"><B>DBDictionaryFactory()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionaryFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#dbdictionaryPlugin"><B>dbdictionaryPlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#DECI"><B>DECI</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#decimalTypeName"><B>decimalTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#declareClasses(serp.bytecode.BCClass)"><B>declareClasses(BCClass)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Add interface or superclass declarations to the generated class.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#declareClasses(serp.bytecode.BCClass)"><B>declareClasses(BCClass)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#declareParameters(java.lang.String)"><B>declareParameters(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#declareParameters(java.lang.String)"><B>declareParameters(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Declared parameters, for query languages that use them.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#declareParameters(java.lang.String)"><B>declareParameters(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html#decode(java.lang.String)"><B>decode(String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html" title="class in org.apache.openjpa.lib.util">Base16Encoder</A>
<DD>Convert a base16 string into a byte array.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html#decorate(serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)"><B>decorate(BCClass, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html" title="class in org.apache.openjpa.datacache">DataCachePCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#decorate(java.lang.Object, serp.bytecode.BCClass, int[])"><B>decorate(Object, BCClass, int[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Decorate the generated class.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#decorate(java.lang.Object, serp.bytecode.BCClass, int[])"><B>decorate(Object, BCClass, int[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#decorate(serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)"><B>decorate(BCClass, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Apply additional decoration to generated class.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Decorate the given connection if needed.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc">ConnectionDecorator</A>
<DD>Decorate the given connection if desired.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEventConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#decorate(java.sql.Connection)"><B>decorate(Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html#decorateDataSource(javax.sql.DataSource, org.apache.openjpa.jdbc.conf.JDBCConfiguration, boolean)"><B>decorateDataSource(DataSource, JDBCConfiguration, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema">DataSourceFactory</A>
<DD>Install listeners and base decorators.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#decorateResultList(org.apache.openjpa.lib.rop.ResultList)"><B>decorateResultList(ResultList)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>Optionally decorate the native result.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc"><B>DecoratingDataSource</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Delegating data source that maintains a list of <A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>ConnectionDecorator</CODE></A>s.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#DecoratingDataSource(javax.sql.DataSource)"><B>DecoratingDataSource(DataSource)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#DEFAULT"><B>DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Constant to revert any setting back to its default value.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#DEFAULT"><B>DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Constant to revert any setting to its default value.
<DT><A HREF="./org/apache/openjpa/conf/BrokerValue.html#DEFAULT_ALIAS"><B>DEFAULT_ALIAS</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerValue.html" title="class in org.apache.openjpa.conf">BrokerValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#DEFAULT_STRING"><B>DEFAULT_STRING</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultHandler(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>defaultHandler(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default handler to use for the given value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultHandler(org.apache.openjpa.jdbc.meta.ValueMapping, boolean)"><B>defaultHandler(ValueMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default handler to use for the given value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#defaultMissingInfo()"><B>defaultMissingInfo()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Whether to fill in missing mapping information at runtime with the
 default values supplied by this plugin.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#defaultMissingInfo()"><B>defaultMissingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#defaultMissingInfo()"><B>defaultMissingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#defaultName"><B>defaultName</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>JAXB XML binding default name
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html#defaultsDataSource(javax.sql.DataSource, java.lang.String, java.lang.String)"><B>defaultsDataSource(DataSource, String, String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema">DataSourceFactory</A>
<DD>Return a data source with the given user name and password
 pre-configured as the defaults when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html#getConnection()" title="class or interface in javax.sql"><CODE>DataSource.getConnection()</CODE></A>
 is called.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#defaultSourceFile(org.apache.openjpa.meta.ClassMetaData)"><B>defaultSourceFile(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return the default file for the given metadata.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#defaultSourceFile(org.apache.openjpa.meta.QueryMetaData, java.util.Map)"><B>defaultSourceFile(QueryMetaData, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return a default file for the given query.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#defaultSourceFile(org.apache.openjpa.meta.SequenceMetaData, java.util.Map)"><B>defaultSourceFile(SequenceMetaData, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return a default file for the given sequence.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#defaultSourceFile(org.apache.openjpa.meta.ClassMetaData)"><B>defaultSourceFile(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#defaultSourceFile(org.apache.openjpa.meta.QueryMetaData, java.util.Map)"><B>defaultSourceFile(QueryMetaData, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#defaultSourceFile(org.apache.openjpa.meta.SequenceMetaData, java.util.Map)"><B>defaultSourceFile(SequenceMetaData, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>defaultStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>defaultStrategy(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.FieldMapping, boolean)"><B>defaultStrategy(FieldMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.FieldMapping, boolean, boolean)"><B>defaultStrategy(FieldMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>defaultStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>defaultStrategy(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>defaultStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given version.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.Version, boolean)"><B>defaultStrategy(Version, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Determine the default strategy to use for the given version.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultStrategy(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.meta.FieldMapping)"><B>defaultStrategy(Version, FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the default version strategy, given a version field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#defaultTypeStrategy(org.apache.openjpa.jdbc.meta.FieldMapping, boolean, boolean)"><B>defaultTypeStrategy(FieldMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the built-in strategy for the field's type, or null if none.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#defineSuperclassFields(boolean)"><B>defineSuperclassFields(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Incorporate superclass fields redefined in this subclass into this
 metadata.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel"><B>DelegatingBroker</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating broker that can also perform exception translation
 for use in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#DelegatingBroker(org.apache.openjpa.kernel.Broker)"><B>DelegatingBroker(Broker)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#DelegatingBroker(org.apache.openjpa.kernel.Broker, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingBroker(Broker, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel"><B>DelegatingBrokerFactory</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating broker factory that can also perform exception translation
 for use in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#DelegatingBrokerFactory(org.apache.openjpa.kernel.BrokerFactory)"><B>DelegatingBrokerFactory(BrokerFactory)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#DelegatingBrokerFactory(org.apache.openjpa.kernel.BrokerFactory, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingBrokerFactory(BrokerFactory, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingCallableStatement</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/CallableStatement.html" title="class or interface in java.sql"><CODE>CallableStatement</CODE></A> that delegates to an internal statement.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#DelegatingCallableStatement(java.sql.CallableStatement, java.sql.Connection)"><B>DelegatingCallableStatement(CallableStatement, Connection)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingConnection</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Wrapper around an existing connection.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#DelegatingConnection(java.sql.Connection)"><B>DelegatingConnection(Connection)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingDatabaseMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Wrapper around a DatabaseMetadata instance.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#DelegatingDatabaseMetaData(java.sql.DatabaseMetaData, java.sql.Connection)"><B>DelegatingDatabaseMetaData(DatabaseMetaData, Connection)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache"><B>DelegatingDataCache</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Delegating data cache that can also perform exception translation for
 use in facades.<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#DelegatingDataCache(org.apache.openjpa.datacache.DataCache)"><B>DelegatingDataCache(DataCache)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#DelegatingDataCache(org.apache.openjpa.datacache.DataCache, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingDataCache(DataCache, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingDataSource</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Wrapper around an existing data source.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#DelegatingDataSource(javax.sql.DataSource)"><B>DelegatingDataSource(DataSource)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel"><B>DelegatingExtent</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating extent that also can perform exception translation for use
 in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#DelegatingExtent(org.apache.openjpa.kernel.Extent)"><B>DelegatingExtent(Extent)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#DelegatingExtent(org.apache.openjpa.kernel.Extent, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingExtent(Extent, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel"><B>DelegatingFetchConfiguration</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating fetch configuration that can also perform exception
 translation for use in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#DelegatingFetchConfiguration(org.apache.openjpa.kernel.FetchConfiguration)"><B>DelegatingFetchConfiguration(FetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#DelegatingFetchConfiguration(org.apache.openjpa.kernel.FetchConfiguration, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingFetchConfiguration(FetchConfiguration, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel"><B>DelegatingJDBCFetchConfiguration</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Delegating fetch configuration that can also perform exception
 transation for use in facades.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#DelegatingJDBCFetchConfiguration(org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>DelegatingJDBCFetchConfiguration(JDBCFetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#DelegatingJDBCFetchConfiguration(org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingJDBCFetchConfiguration(JDBCFetchConfiguration, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta"><B>DelegatingJoinable</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Delegates to another <A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>Joinable</CODE></A> after doing column
 translation.<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#DelegatingJoinable(org.apache.openjpa.jdbc.meta.Joinable, org.apache.openjpa.jdbc.schema.ForeignKey)"><B>DelegatingJoinable(Joinable, ForeignKey)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#DelegatingJoinable(org.apache.openjpa.jdbc.meta.Joinable, org.apache.openjpa.jdbc.schema.Column[])"><B>DelegatingJoinable(Joinable, Column[])</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta"><B>DelegatingMetaDataFactory</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Base class for factory instances that use a delegate.<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#DelegatingMetaDataFactory(org.apache.openjpa.meta.MetaDataFactory)"><B>DelegatingMetaDataFactory(MetaDataFactory)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingPreparedStatement</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Wrapper around an existing statement.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#DelegatingPreparedStatement(java.sql.PreparedStatement, java.sql.Connection)"><B>DelegatingPreparedStatement(PreparedStatement, Connection)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel"><B>DelegatingQuery</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating query that can also perform exception translation
 for use in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#DelegatingQuery(org.apache.openjpa.kernel.Query)"><B>DelegatingQuery(Query)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#DelegatingQuery(org.apache.openjpa.kernel.Query, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingQuery(Query, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache"><B>DelegatingQueryCache</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Delegating query cache that can also perform exception translation for
 use in facades.<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#DelegatingQueryCache(org.apache.openjpa.datacache.QueryCache)"><B>DelegatingQueryCache(QueryCache)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#DelegatingQueryCache(org.apache.openjpa.datacache.QueryCache, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingQueryCache(QueryCache, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel"><B>DelegatingResultList</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating result list that can also perform exception translation
 for use in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#DelegatingResultList(org.apache.openjpa.lib.rop.ResultList)"><B>DelegatingResultList(ResultList)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#DelegatingResultList(org.apache.openjpa.lib.rop.ResultList, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingResultList(ResultList, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel"><B>DelegatingResultList.DelegatingListIterator</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating iterator that also performs exception translation.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#DelegatingResultList.DelegatingListIterator(java.util.ListIterator)"><B>DelegatingResultList.DelegatingListIterator(ListIterator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingResultSet</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Wrapper around an existing result set.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#DelegatingResultSet(java.sql.ResultSet, java.sql.Statement)"><B>DelegatingResultSet(ResultSet, Statement)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel"><B>DelegatingSeq</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Delegating sequence that can also perform exception translation for use
 in facades.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#DelegatingSeq(org.apache.openjpa.kernel.Seq)"><B>DelegatingSeq(Seq)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#DelegatingSeq(org.apache.openjpa.kernel.Seq, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>DelegatingSeq(Seq, RuntimeExceptionTranslator)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>Constructor; supply delegate and exception translator.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc"><B>DelegatingStatement</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Wrapper around an existing statement.<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#DelegatingStatement(java.sql.Statement, java.sql.Connection)"><B>DelegatingStatement(Statement, Connection)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel"><B>DelegatingStoreManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Base class for store manager decorators that delegate to another
 store manager for some operations.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#DelegatingStoreManager(org.apache.openjpa.kernel.StoreManager)"><B>DelegatingStoreManager(StoreManager)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html#DELETE"><B>DELETE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager.CustomMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Set the where values appropriately to delete the proper instance,
 and set all relations on non-secondary tables as updates.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.sql.Row)"><B>delete(OpenJPAStateManager, OpenJPAStateManager, JDBCStore, RowManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>Delete an embedded object record.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#delete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>delete(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#delete(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>delete(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Delete the given object.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#delete(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>delete(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#delete(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>delete(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#deleteAction(java.io.File)"><B>deleteAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.delete().
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#deleteAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>deleteAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Delete the given objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#deleteAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>deleteAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#deleteAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>deleteAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#deleteAll()"><B>deleteAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#deleteAll(java.lang.Object[])"><B>deleteAll(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#deleteAll(java.util.Map)"><B>deleteAll(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#deleteAll()"><B>deleteAll()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Deletes all of the instances that are satisfied by the query.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#deleteAll(java.lang.Object[])"><B>deleteAll(Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Deletes all of the instances that are satisfied by the query.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#deleteAll(java.util.Map)"><B>deleteAll(Map)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Deletes all of the instances that are satisfied by the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#deleteAll()"><B>deleteAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#deleteAll(java.lang.Object[])"><B>deleteAll(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#deleteAll(java.util.Map)"><B>deleteAll(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#deleteInMemory(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>deleteInMemory(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#deleteInMemory(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>deleteInMemory(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Helper method to delete the objects found by executing a query on
 the given executor.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#deleteInMemory(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>deleteInMemory(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DeleteListener.html" title="interface in org.apache.openjpa.event"><B>DeleteListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when a persistent instance is deleted.<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#deleteRow(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>deleteRow(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Delete the row for this object if the reference foreign key exists.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#deleteRow()"><B>deleteRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#deletesAreDetected(int)"><B>deletesAreDetected(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#delistResource(javax.transaction.xa.XAResource, int)"><B>delistResource(XAResource, int)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Dependent.html" title="annotation in org.apache.openjpa.persistence"><B>Dependent</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Dependent field marker.<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#DEPTH_INFINITE"><B>DEPTH_INFINITE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Infinite depth.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#DEPTH_INFINITE"><B>DEPTH_INFINITE</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Infinite fetch depth.
<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph"><B>DepthFirstAnalysis</B></A> - Class in <A HREF="./org/apache/openjpa/lib/graph/package-summary.html">org.apache.openjpa.lib.graph</A><DD>Performs a depth-first analysis of a given <A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph"><CODE>Graph</CODE></A>, caching
 information about the graph's nodes and edges.<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html#DepthFirstAnalysis(org.apache.openjpa.lib.graph.Graph)"><B>DepthFirstAnalysis(Graph)</B></A> - 
Constructor for class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph">DepthFirstAnalysis</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>DerbyDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Apache Derby (formerly Cloudscape).<DT><A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html#DerbyDictionary()"><B>DerbyDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DerbyDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#derefColumns()"><B>derefColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Deref all columns in this key.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#derefColumns()"><B>derefColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Deref all columns in this constraint.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#deRegister(java.lang.ClassLoader)"><B>deRegister(ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>De-Register all metadata associated with the given ClassLoader.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#deriveKey(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveKey(JDBCStore, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Some mapping derive keys from map values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#deriveKey(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveKey(JDBCStore, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#deriveKey(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveKey(JDBCStore, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#deriveKey(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveKey(JDBCStore, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#deriveValue(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveValue(JDBCStore, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Some mapping derive values from map keys.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#deriveValue(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveValue(JDBCStore, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#deriveValue(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveValue(JDBCStore, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#deriveValue(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object)"><B>deriveValue(JDBCStore, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#desc"><B>desc</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.html#deserialize(byte[], org.apache.openjpa.kernel.StoreContext)"><B>deserialize(byte[], StoreContext)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.html" title="class in org.apache.openjpa.util">Serialization</A>
<DD>Deserialize an object value from the given bytes.
<DT><A HREF="./org/apache/openjpa/util/Serialization.html#deserialize(java.io.InputStream, org.apache.openjpa.kernel.StoreContext)"><B>deserialize(InputStream, StoreContext)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.html" title="class in org.apache.openjpa.util">Serialization</A>
<DD>Deserialize an object value from the given stream.
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#DESERIALIZED"><B>DESERIALIZED</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#detach(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>detach(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Detach the specified object from the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#detach(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>detach(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#detach(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>detach(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachManager.html#detach(java.lang.Object)"><B>detach(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachManager.html" title="class in org.apache.openjpa.kernel">DetachManager</A>
<DD>Return a detached version of the given instance.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#detach(T)"><B>detach(T)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#detach(T)"><B>detach(T)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Detach the specified object from the entity manager.
<DT><A HREF="./org/apache/openjpa/kernel/DetachState.html#DETACH_ALL"><B>DETACH_ALL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachState.html" title="interface in org.apache.openjpa.kernel">DetachState</A>
<DD>Mode to detach all fields.
<DT><A HREF="./org/apache/openjpa/kernel/AutoDetach.html#DETACH_CLOSE"><B>DETACH_CLOSE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel">AutoDetach</A>
<DD>Detach context on close.
<DT><A HREF="./org/apache/openjpa/kernel/AutoDetach.html#DETACH_COMMIT"><B>DETACH_COMMIT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel">AutoDetach</A>
<DD>Detach context on transaction commit.
<DT><A HREF="./org/apache/openjpa/kernel/DetachState.html#DETACH_FETCH_GROUPS"><B>DETACH_FETCH_GROUPS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachState.html" title="interface in org.apache.openjpa.kernel">DetachState</A>
<DD>Mode to detach all fields in the current fetch groups.
<DT><A HREF="./org/apache/openjpa/kernel/DetachState.html#DETACH_FGS"><B>DETACH_FGS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachState.html" title="interface in org.apache.openjpa.kernel">DetachState</A>
<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachState.html#DETACH_LOADED"><B>DETACH_LOADED</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachState.html" title="interface in org.apache.openjpa.kernel">DetachState</A>
<DD>Mode to detach all currently-loaded fields.
<DT><A HREF="./org/apache/openjpa/kernel/AutoDetach.html#DETACH_NONTXREAD"><B>DETACH_NONTXREAD</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel">AutoDetach</A>
<DD>Detach context on any nontransctional read, such that each
 nontransactional operation uses a new persistence context in essence.
<DT><A HREF="./org/apache/openjpa/kernel/AutoDetach.html#DETACH_ROLLBACK"><B>DETACH_ROLLBACK</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel">AutoDetach</A>
<DD>Detach context on failed transaction commit / rollback.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#detachable"><B>detachable</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#detachAll(org.apache.openjpa.kernel.OpCallbacks)"><B>detachAll(OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Detach all objects in place.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#detachAll(org.apache.openjpa.kernel.OpCallbacks, boolean)"><B>detachAll(OpCallbacks, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Detach all objects in place, with the option of performing a
 flush before doing the detachment.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#detachAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>detachAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Detach the specified objects from the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#detachAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>detachAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#detachAll(org.apache.openjpa.kernel.OpCallbacks)"><B>detachAll(OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#detachAll(org.apache.openjpa.kernel.OpCallbacks, boolean)"><B>detachAll(OpCallbacks, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#detachAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>detachAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#detachAll(org.apache.openjpa.kernel.OpCallbacks)"><B>detachAll(OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#detachAll(org.apache.openjpa.kernel.OpCallbacks, boolean)"><B>detachAll(OpCallbacks, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachManager.html#detachAll(java.util.Collection)"><B>detachAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachManager.html" title="class in org.apache.openjpa.kernel">DetachManager</A>
<DD>Return detached versions of all the given instances.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#detachAll(java.lang.Object...)"><B>detachAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#detachAll(java.util.Collection)"><B>detachAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#detachAll(java.util.Collection)"><B>detachAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Detach the specified objects from the entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#detachAll(java.lang.Object...)"><B>detachAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Detach the specified objects from the entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/DetachedState.html" title="annotation in org.apache.openjpa.persistence"><B>DetachedState</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Detached state.<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel"><B>DetachedStateManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Internal state manager for detached instances.<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#DetachedStateManager(org.apache.openjpa.enhance.PersistenceCapable, org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, boolean, boolean)"><B>DetachedStateManager(PersistenceCapable, OpenJPAStateManager, BitSet, boolean, boolean)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel"><B>DetachedValueStateManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Implementation of <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A> designed to retrieve
 values from a detached instance, including when managed by a
 <A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel"><CODE>DetachedStateManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#DetachedValueStateManager(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>DetachedValueStateManager(Object, StoreContext)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#DetachedValueStateManager(org.apache.openjpa.enhance.PersistenceCapable, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.kernel.StoreContext)"><B>DetachedValueStateManager(PersistenceCapable, ClassMetaData, StoreContext)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/DetachListener.html" title="interface in org.apache.openjpa.event"><B>DetachListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when a persistent instance is detached.<DT><A HREF="./org/apache/openjpa/kernel/DetachManager.html" title="class in org.apache.openjpa.kernel"><B>DetachManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Handles detaching instances.<DT><A HREF="./org/apache/openjpa/kernel/DetachManager.html#DetachManager(org.apache.openjpa.kernel.BrokerImpl, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>DetachManager(BrokerImpl, boolean, OpCallbacks)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachManager.html" title="class in org.apache.openjpa.kernel">DetachManager</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf"><B>DetachOptions</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Detach options.<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#DetachOptions()"><B>DetachOptions()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.All.html" title="class in org.apache.openjpa.conf"><B>DetachOptions.All</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Public to allow reflection.<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.All.html#DetachOptions.All()"><B>DetachOptions.All()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.All.html" title="class in org.apache.openjpa.conf">DetachOptions.All</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.FetchGroups.html" title="class in org.apache.openjpa.conf"><B>DetachOptions.FetchGroups</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Public to allow reflection.<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.FetchGroups.html#DetachOptions.FetchGroups()"><B>DetachOptions.FetchGroups()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.FetchGroups.html" title="class in org.apache.openjpa.conf">DetachOptions.FetchGroups</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.Loaded.html" title="class in org.apache.openjpa.conf"><B>DetachOptions.Loaded</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Detach loaded state.<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.Loaded.html#DetachOptions.Loaded()"><B>DetachOptions.Loaded()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.Loaded.html" title="class in org.apache.openjpa.conf">DetachOptions.Loaded</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachState.html" title="interface in org.apache.openjpa.kernel"><B>DetachState</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Constants for which fields to include in the detach graph.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#detachStatePlugin"><B>detachStatePlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/DetachStateType.html" title="enum in org.apache.openjpa.persistence"><B>DetachStateType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible settings for the detachment behavior of an
 <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#dict"><B>dict</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#dict"><B>dict</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#dict"><B>dict</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#dir"><B>dir</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#directory"><B>directory</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html#directory"><B>directory</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#directory"><B>directory</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#dirName"><B>dirName</B></A> - 
Variable in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#dirName"><B>dirName</B></A> - 
Variable in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#dirName"><B>dirName</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#dirty(java.lang.String)"><B>dirty(String)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Make named field dirty.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#dirty(java.lang.String)"><B>dirty(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#dirty(int)"><B>dirty(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#dirty(int)"><B>dirty(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#dirty(java.lang.String)"><B>dirty(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#dirty(java.lang.String)"><B>dirty(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#dirty(int)"><B>dirty(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#dirty(int)"><B>dirty(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Mark the given field as dirty.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#dirty(java.lang.String)"><B>dirty(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#dirty(int)"><B>dirty(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#dirty(java.lang.Object, java.lang.String)"><B>dirty(Object, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#dirty(java.lang.Object, java.lang.String)"><B>dirty(Object, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the named field of the given object dirty.
<DT><A HREF="./org/apache/openjpa/util/Proxies.html#dirty(org.apache.openjpa.util.Proxy, boolean)"><B>dirty(Proxy, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util">Proxies</A>
<DD>Used by proxy types to dirty their owner.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#dirtyCheck(org.apache.openjpa.enhance.StateManager)"><B>dirtyCheck(StateManager)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Call <A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#dirtyCheck()"><CODE>StateManagerImpl.dirtyCheck()</CODE></A> if the argument is a
 <A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel"><CODE>StateManagerImpl</CODE></A>.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#dirtyCheck()"><B>dirtyCheck()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Checks whether or not <code>_pc</code> is dirty.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#dirtyClass(java.lang.Class)"><B>dirtyClass(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#dirtyClass(java.lang.Class)"><B>dirtyClass(Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Mark the given class as dirty within the current transaction.
<DT><A HREF="./org/apache/openjpa/event/DirtyListener.html" title="interface in org.apache.openjpa.event"><B>DirtyListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when a persistent instance becomes dirty.<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#dirtyType(java.lang.Class)"><B>dirtyType(Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Mark the given class as dirty within the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#dirtyType(java.lang.Class)"><B>dirtyType(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#dirtyType(java.lang.Class)"><B>dirtyType(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#disc"><B>disc</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>The owning discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta"><B>Discriminator</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Handles determining the object class of database records.<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#Discriminator(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>Discriminator(ClassMapping)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#DISCRIMINATOR"><B>DISCRIMINATOR</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Path token to represent a discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><B>DiscriminatorMappingInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Information about the mapping from a discriminator to the schema, in
 raw form.<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#DiscriminatorMappingInfo()"><B>DiscriminatorMappingInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta"><B>DiscriminatorStrategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Handles determining the object class of database records.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#discriminatorStrategy"><B>discriminatorStrategy</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/DiscriminatorStrategy.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>DiscriminatorStrategy</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Discriminator mapping strategy.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#distinct(org.apache.openjpa.kernel.exps.Value)"><B>distinct(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#distinct(org.apache.openjpa.kernel.exps.Value)"><B>distinct(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return distinct values of the given value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#distinct(org.apache.openjpa.kernel.exps.QueryExpressions, boolean, java.util.List)"><B>distinct(QueryExpressions, boolean, List)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>Filter the given list of matches, removing duplicate entries.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#distinct(org.apache.openjpa.kernel.exps.Value)"><B>distinct(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#distinct"><B>distinct</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#DISTINCT_AUTO"><B>DISTINCT_AUTO</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#DISTINCT_FALSE"><B>DISTINCT_FALSE</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#DISTINCT_TRUE"><B>DISTINCT_TRUE</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#distinctCountColumnSeparator"><B>distinctCountColumnSeparator</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#distinctTypeName"><B>distinctTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#divide(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>divide(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#divide(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>divide(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the first value divided by the first one.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#divide(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>divide(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#divide(java.lang.Object, java.lang.Class, java.lang.Object, java.lang.Class)"><B>divide(Object, Class, Object, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Divide the given values.
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml"><B>DocTypeReader</B></A> - Class in <A HREF="./org/apache/openjpa/lib/xml/package-summary.html">org.apache.openjpa.lib.xml</A><DD>The DocTypeReader can be used to dynamically include a
 <code>DOCTYPE</code> declaration in an XML stream.<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#DocTypeReader(java.io.Reader, java.io.Reader)"><B>DocTypeReader(Reader, Reader)</B></A> - 
Constructor for class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>Construct the reader with an XML stream, and set the
 <code>DOCTYPE</code> information to be included.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#doesMaxRowSizeIncludeBlobs()"><B>doesMaxRowSizeIncludeBlobs()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#doReadObject(java.io.ObjectInputStream)"><B>doReadObject(ObjectInputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#doReadObject(java.io.ObjectInputStream)"><B>doReadObject(ObjectInputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html#doTimedWait(org.apache.openjpa.lib.util.concurrent.WaitQueue.QueuedSync, long)"><B>doTimedWait(WaitQueue.QueuedSync, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue.WaitNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#DOUBLE"><B>DOUBLE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#DOUBLE_OBJ"><B>DOUBLE_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util"><B>DoubleId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for double fields.<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#DoubleId(java.lang.Class, java.lang.Double)"><B>DoubleId(Class, Double)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#DoubleId(java.lang.Class, java.lang.String)"><B>DoubleId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#DoubleId(java.lang.Class, double)"><B>DoubleId(Class, double)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#DoubleId(java.lang.Class, double, boolean)"><B>DoubleId(Class, double, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#doubleTypeName"><B>doubleTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf"><B>DoubleValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A double <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#DoubleValue(java.lang.String)"><B>DoubleValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html#doWait(org.apache.openjpa.lib.util.concurrent.WaitQueue.QueuedSync)"><B>doWait(WaitQueue.QueuedSync)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue.WaitNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html#doWaitUninterruptibly(org.apache.openjpa.lib.util.concurrent.WaitQueue.QueuedSync)"><B>doWaitUninterruptibly(WaitQueue.QueuedSync)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue.WaitNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#doWriteObject(java.io.ObjectOutputStream)"><B>doWriteObject(ObjectOutputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#doWriteObject(java.io.ObjectOutputStream)"><B>doWriteObject(ObjectOutputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema"><B>DriverDataSource</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>A DataSource that allows additional configuration options to be set
 into it, so that it can wrap a JDBC driver or other DataSource.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#driverDataSourcePlugin"><B>driverDataSourcePlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#driverDeserializesBlobs"><B>driverDeserializesBlobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>Whether the driver automatically deserializes blobs.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#driverVendor"><B>driverVendor</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#drop(java.lang.Class[], int, java.lang.ClassLoader)"><B>drop(Class[], int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#drop(java.lang.Class[], int, java.lang.ClassLoader)"><B>drop(Class[], int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#drop(java.lang.Class[], int, java.lang.ClassLoader)"><B>drop(Class[], int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#drop(java.lang.Class[], int, java.lang.ClassLoader)"><B>drop(Class[], int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#drop(java.lang.Class[], int, java.lang.ClassLoader)"><B>drop(Class[], int, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Drop the metadata for the given classes in the given mode(s).
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#drop(java.lang.Class[], int, java.lang.ClassLoader)"><B>drop(Class[], int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#dropColumn(org.apache.openjpa.jdbc.schema.Column)"><B>dropColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Drop the given column from the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#dropForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>dropForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Drop the given foreign key from the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#dropIndex(org.apache.openjpa.jdbc.schema.Index)"><B>dropIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Drop the given index from the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#dropPrimaryKey(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>dropPrimaryKey(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Drop the given primary key from the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#dropSequence()"><B>dropSequence()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>Drops the sequence in the DB.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#dropSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>dropSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Drop the given sequence from the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#dropSequences"><B>dropSequences</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#dropSequences"><B>dropSequences</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#dropTable()"><B>dropTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Drops the sequence table in the DB.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#dropTable(org.apache.openjpa.jdbc.schema.Table)"><B>dropTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Drop the given table from the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#dropTable()"><B>dropTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Drops the sequence table in the DB.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#dropTables"><B>dropTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#dropTables"><B>dropTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#dropTableSQL"><B>dropTableSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#dump(java.lang.String)"><B>dump(String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>Debugging method.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#dump()"><B>dump()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#dump(java.io.PrintStream, java.lang.String)"><B>dump(PrintStream, String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>Debugging method to output a parse tree.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#dump(java.io.PrintStream, java.lang.String, boolean)"><B>dump(PrintStream, String, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#dynamicDataStructs"><B>dynamicDataStructs</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicPCHelper.html" title="class in org.apache.openjpa.enhance"><B>DynamicPCHelper</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Helper methods for dynamically-redefined managed types.<DT><A HREF="./org/apache/openjpa/enhance/DynamicPCHelper.html#DynamicPCHelper()"><B>DynamicPCHelper()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicPCHelper.html" title="class in org.apache.openjpa.enhance">DynamicPCHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicPersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><B>DynamicPersistenceCapable</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Instances that implement this marker interface are dynamically-generated
 subtypes of managed types that were loaded before being enhanced.<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema"><B>DynamicSchemaFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Factory whose schema group dynamically fills itself with information
 as mappings validate themselves in their <code>map</code> method.<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#DynamicSchemaFactory()"><B>DynamicSchemaFactory()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance"><B>DynamicStorage</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Interface for dynamically generated classes.<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance"><B>DynamicStorageGenerator</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Factory for creating new <A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance"><CODE>DynamicStorage</CODE></A> classes.<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#DynamicStorageGenerator()"><B>DynamicStorageGenerator()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#EAGER_INNER"><B>EAGER_INNER</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to batch the select using an inner join.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html#EAGER_JOIN"><B>EAGER_JOIN</B></A> - 
Static variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html" title="class in org.apache.openjpa.jdbc.conf">FetchModeValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_JOIN"><B>EAGER_JOIN</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html" title="interface in org.apache.openjpa.jdbc.kernel">EagerFetchModes</A>
<DD>Constant indicating to load relations and subclass data if possible
 without separate queries.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html#EAGER_NONE"><B>EAGER_NONE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html" title="class in org.apache.openjpa.jdbc.conf">FetchModeValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_NONE"><B>EAGER_NONE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html" title="interface in org.apache.openjpa.jdbc.kernel">EagerFetchModes</A>
<DD>Constant indicating not to try to load subclass data and related
 objects when querying for an object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#EAGER_OUTER"><B>EAGER_OUTER</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to batch the select using an outer join.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html#EAGER_PARALLEL"><B>EAGER_PARALLEL</B></A> - 
Static variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html" title="class in org.apache.openjpa.jdbc.conf">FetchModeValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_PARALLEL"><B>EAGER_PARALLEL</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html" title="interface in org.apache.openjpa.jdbc.kernel">EagerFetchModes</A>
<DD>Constant indicating to load relations and subclass data if possible
 using either joins or parallel queries.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#EAGER_PARALLEL"><B>EAGER_PARALLEL</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to use a separate select executed in parallel.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#eagerClone(org.apache.openjpa.jdbc.meta.FieldMapping, int, boolean, int)"><B>eagerClone(FieldMapping, int, boolean, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#eagerClone(org.apache.openjpa.jdbc.meta.FieldMapping, int, boolean, int)"><B>eagerClone(FieldMapping, int, boolean, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return a select that will be eagerly executed with this one, or null if
 the    select cannot be created for the given key and join type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#eagerClone(org.apache.openjpa.jdbc.meta.FieldMapping, int, boolean, int)"><B>eagerClone(FieldMapping, int, boolean, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#eagerFetchMode"><B>eagerFetchMode</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/EagerFetchMode.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>EagerFetchMode</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Determines how to eager-fetch a field.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>EagerFetchModes</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Eager fetch mode constants.<DT><A HREF="./org/apache/openjpa/lib/rop/EagerResultList.html" title="class in org.apache.openjpa.lib.rop"><B>EagerResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Simple, non-lazy ResultList implementation<DT><A HREF="./org/apache/openjpa/lib/rop/EagerResultList.html#EagerResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>EagerResultList(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/EagerResultList.html" title="class in org.apache.openjpa.lib.rop">EagerResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#ECLEAN"><B>ECLEAN</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Embedded-Clean
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#ECOPY"><B>ECOPY</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Embedded-Copy
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#EDELETED"><B>EDELETED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Embedded-Deleted
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph"><B>Edge</B></A> - Class in <A HREF="./org/apache/openjpa/lib/graph/package-summary.html">org.apache.openjpa.lib.graph</A><DD>A graph edge.<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#Edge(java.lang.Object, java.lang.Object, boolean)"><B>Edge(Object, Object, boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#Edge(java.lang.Object, java.lang.Object, boolean, java.lang.Object)"><B>Edge(Object, Object, boolean, Object)</B></A> - 
Constructor for class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#edgeVisited(org.apache.openjpa.lib.graph.Edge)"><B>edgeVisited(Edge)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>An edge is seen.
<DT><A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html#edgeVisited(org.apache.openjpa.lib.graph.Edge)"><B>edgeVisited(Edge)</B></A> - 
Method in interface org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html" title="interface in org.apache.openjpa.lib.graph">GraphVisitor</A>
<DD>may visit the node twice (both sides)
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#EDIRTY"><B>EDIRTY</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Embedded-Dirty
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_ACCESS"><B>ELEM_ACCESS</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_ATTRS"><B>ELEM_ATTRS</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_CASCADE"><B>ELEM_CASCADE</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_CASCADE_ALL"><B>ELEM_CASCADE_ALL</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_CASCADE_MER"><B>ELEM_CASCADE_MER</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_CASCADE_PER"><B>ELEM_CASCADE_PER</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_CASCADE_REF"><B>ELEM_CASCADE_REF</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_CASCADE_REM"><B>ELEM_CASCADE_REM</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_LISTENER"><B>ELEM_LISTENER</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_PKG"><B>ELEM_PKG</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_PU_DEF"><B>ELEM_PU_DEF</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_PU_META"><B>ELEM_PU_META</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#ELEM_XML_MAP_META_COMPLETE"><B>ELEM_XML_MAP_META_COMPLETE</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html#element()"><B>element()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">Queue</A>
<DD>Retrieves, but does not remove, the head of this queue.
<DT><A HREF="./org/apache/openjpa/meta/Order.html#ELEMENT"><B>ELEMENT</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Order.html" title="interface in org.apache.openjpa.meta">Order</A>
<DD>Token denoting to order by the element value.
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#ELEMENT"><B>ELEMENT</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ElementClassCriteria.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ElementClassCriteria</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Marker interface specifying to use the expected class of the array,
 collection, or map element relation as criteria in the join.<DT><A HREF="./org/apache/openjpa/persistence/ElementDependent.html" title="annotation in org.apache.openjpa.persistence"><B>ElementDependent</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Dependent array, collection, or map element marker.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ElementForeignKey.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ElementForeignKey</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Foreign key on array, collection, or map element columns.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ElementIndex.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ElementIndex</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Index on array, collection, or map element columns.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ElementJoinColumn.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ElementJoinColumn</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Array, collection, or map element join column.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ElementJoinColumns.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ElementJoinColumns</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows the specification of multiple array, collection, or map element
 columns for compound joins.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ElementNonpolymorphic.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ElementNonpolymorphic</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Indicates that the annotated array, collection, or map's elements are
 not entirely polymorphic.<DT><A HREF="./org/apache/openjpa/persistence/ElementType.html" title="annotation in org.apache.openjpa.persistence"><B>ElementType</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Indicates the persistent element type of an array, collection, or map
 field, if different than the declared element type.<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#EM_KEY"><B>EM_KEY</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#embed(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>embed(Object, Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#embed(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>embed(Object, Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#embed(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>embed(Object, Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Make the given instance embedded.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta"><B>Embeddable</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Interface for field strategies that can managed fields of
 embedded-element, embedded-key, and embedded-value objects.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>EmbeddedClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Class mapping for embedded objects.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html#EmbeddedClassStrategy()"><B>EmbeddedClassStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbeddedClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/EmbeddedMapping.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>EmbeddedMapping</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Embedded mapping information.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>EmbedFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for an embedded persistent object.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#EmbedFieldStrategy()"><B>EmbedFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>EmbedValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Base class for embedded value handlers.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html#EmbedValueHandler()"><B>EmbedValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#EMF_KEY"><B>EMF_KEY</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>EmpressDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Empress using ODBC server combined with their
 type 2 driver.<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#EmpressDictionary()"><B>EmpressDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#EMPTY"><B>EMPTY</B></A> - 
Static variable in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#EMPTY"><B>EMPTY</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Immutable empty instance.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#EMPTY_BOOLEANS"><B>EMPTY_BOOLEANS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#EMPTY_CLASSES"><B>EMPTY_CLASSES</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#EMPTY_CLASSES"><B>EMPTY_CLASSES</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#EMPTY_COLUMNS"><B>EMPTY_COLUMNS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/Commentable.html#EMPTY_COMMENTS"><B>EMPTY_COMMENTS</B></A> - 
Static variable in interface org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#EMPTY_FIELDS"><B>EMPTY_FIELDS</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#EMPTY_FOREIGN_KEYS"><B>EMPTY_FOREIGN_KEYS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#EMPTY_INDEXES"><B>EMPTY_INDEXES</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#EMPTY_MAPPINGS"><B>EMPTY_MAPPINGS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#EMPTY_METAS"><B>EMPTY_METAS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#EMPTY_METAS"><B>EMPTY_METAS</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#EMPTY_NON_PERSISTENT"><B>EMPTY_NON_PERSISTENT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#EMPTY_OBJECTS"><B>EMPTY_OBJECTS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#EMPTY_ORDERS"><B>EMPTY_ORDERS</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#EMPTY_PARAMS"><B>EMPTY_PARAMS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#EMPTY_STATES"><B>EMPTY_STATES</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#EMPTY_STRINGS"><B>EMPTY_STRINGS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#EMPTY_THROWABLES"><B>EMPTY_THROWABLES</B></A> - 
Static variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#EMPTY_UNIQUES"><B>EMPTY_UNIQUES</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#EMPTY_VALUES"><B>EMPTY_VALUES</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#EMPTY_VALUES"><B>EMPTY_VALUES</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#EMPTY_XMLMETAS"><B>EMPTY_XMLMETAS</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#emptyExpression()"><B>emptyExpression()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#emptyExpression()"><B>emptyExpression()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a blank expression; this is used when the filter is empty.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#emptyExpression()"><B>emptyExpression()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html#encode(byte[])"><B>encode(byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Base16Encoder.html" title="class in org.apache.openjpa.lib.util">Base16Encoder</A>
<DD>Convert bytes to a base16 string.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html#end"><B>end</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#endCDATA()"><B>endCDATA()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#endClass(java.lang.String)"><B>endClass(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>End a class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endClass(java.lang.String)"><B>endClass(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#endClassElement(java.lang.String)"><B>endClassElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method marking the end of an element within a declared
 class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endClassElement(java.lang.String)"><B>endClassElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#endClassMapping(org.apache.openjpa.meta.ClassMetaData)"><B>endClassMapping(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endClassMapping(org.apache.openjpa.meta.ClassMetaData)"><B>endClassMapping(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to finalize class mapping.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#endClassMappingElement(java.lang.String)"><B>endClassMappingElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endClassMappingElement(java.lang.String)"><B>endClassMappingElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to parse a mapping element within a class.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>EndConfiguration stub.
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>Subclasses that need to perform actions in
 <A HREF="./org/apache/openjpa/lib/conf/Configurable.html#endConfiguration()"><CODE>Configurable.endConfiguration()</CODE></A> must invoke this method.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>Subclasses that need to perform actions in
 <A HREF="./org/apache/openjpa/lib/conf/Configurable.html#endConfiguration()"><CODE>Configurable.endConfiguration()</CODE></A> must invoke this method.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurable.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurable.html" title="interface in org.apache.openjpa.lib.conf">Configurable</A>
<DD>Invoked upon completion of bean property configuration for this object.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#endConfiguration()"><B>endConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#endDataRequest()"><B>endDataRequest()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#endDataRequest()"><B>endDataRequest()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#endDataRequest()"><B>endDataRequest()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Ends a data request.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#endDTD()"><B>endDTD()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#endElement(java.lang.String)"><B>endElement(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#endElement(java.lang.String)"><B>endElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#endElement(java.lang.String)"><B>endElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Override this method marking the end of some element.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#endElement(java.lang.String)"><B>endElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>End the current element.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#endElement(java.lang.String)"><B>endElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endEmbeddedId()"><B>endEmbeddedId()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#endEntity(java.lang.String)"><B>endEntity(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#endFieldMapping(org.apache.openjpa.meta.FieldMetaData)"><B>endFieldMapping(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>Extend to set the columns.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endFieldMapping(org.apache.openjpa.meta.FieldMetaData)"><B>endFieldMapping(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to finalize field mapping.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endGeneratedValue()"><B>endGeneratedValue()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endId()"><B>endId()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endIdClass()"><B>endIdClass()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#endl()"><B>endl()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#endl(int)"><B>endl(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#endl(int, int)"><B>endl(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endLob()"><B>endLob()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endNamedNativeQuery()"><B>endNamedNativeQuery()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endNamedQuery()"><B>endNamedQuery()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#endOperation()"><B>endOperation()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>End a logical operation.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#endOperation()"><B>endOperation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Mark the operation over.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#endOperation()"><B>endOperation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#endPackage(java.lang.String)"><B>endPackage(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>End a package.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#endPackageElement(java.lang.String)"><B>endPackageElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method marking the end of an element within a declared
 package.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endQueryHint()"><B>endQueryHint()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endQueryString()"><B>endQueryString()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endSequenceGenerator()"><B>endSequenceGenerator()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#endsWith(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>endsWith(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#endsWith(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>endsWith(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return whether the first string ends with the second.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#endsWith(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>endsWith(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#endSystemElement(java.lang.String)"><B>endSystemElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method marking the end of an element outside of any
 package or class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endSystemElement(java.lang.String)"><B>endSystemElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#endSystemMappingElement(java.lang.String)"><B>endSystemMappingElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endSystemMappingElement(java.lang.String)"><B>endSystemMappingElement(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to parse a mapping element outside of any class.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#endTransaction()"><B>endTransaction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>Does nothing by default.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#endTransaction(int)"><B>endTransaction(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>End the current transaction, making appropriate state transitions.
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#endTransaction()"><B>endTransaction()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Notification that the current transaction has ended.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStore.html#endTransaction(java.util.Collection, java.util.Collection)"><B>endTransaction(Collection, Collection)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore">XMLStore</A>
<DD>End the datastore transaction.
<DT><A HREF="./org/apache/openjpa/event/EndTransactionListener.html" title="interface in org.apache.openjpa.event"><B>EndTransactionListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Notified when transactions end.<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#endVersion()"><B>endVersion()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html#enforcePropertyRestrictions"><B>enforcePropertyRestrictions</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_AWARE"><B>ENHANCE_AWARE</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_INTERFACE"><B>ENHANCE_INTERFACE</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_NONE"><B>ENHANCE_NONE</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_PC"><B>ENHANCE_PC</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#ENHANCER_VERSION"><B>ENHANCER_VERSION</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#enlistResource(javax.transaction.xa.XAResource)"><B>enlistResource(XAResource)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#ENONTRANS"><B>ENONTRANS</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Embedded-Nontransactional
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#enqueue(java.lang.Object, org.apache.openjpa.lib.graph.NodeInfo)"><B>enqueue(Object, NodeInfo)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>Push the given node onto the queue to be processed.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#ensureDriverVendor()"><B>ensureDriverVendor()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Ensure that the driver vendor has been set, and if not, set it now.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html#enter(org.apache.openjpa.kernel.exps.Expression)"><B>enter(Expression)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionVisitor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html#enter(org.apache.openjpa.kernel.exps.Value)"><B>enter(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionVisitor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html#enter(org.apache.openjpa.kernel.exps.Expression)"><B>enter(Expression)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionVisitor</A>
<DD>Enter an expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html#enter(org.apache.openjpa.kernel.exps.Value)"><B>enter(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionVisitor</A>
<DD>Enter a value.
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence"><B>EntityExistsException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Conflict with existing entity.<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#EntityExistsException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>EntityExistsException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence"><B>EntityManagerFactoryImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implementation of <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManagerFactory.html" title="class or interface in javax.persistence"><CODE>EntityManagerFactory</CODE></A> that acts as a
 facade to a <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A>.<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#EntityManagerFactoryImpl()"><B>EntityManagerFactoryImpl()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>Default constructor provided for auto-instantiation.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#EntityManagerFactoryImpl(org.apache.openjpa.kernel.BrokerFactory)"><B>EntityManagerFactoryImpl(BrokerFactory)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>Supply delegate on construction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html" title="class in org.apache.openjpa.persistence"><B>EntityManagerFactoryValue</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Plugin type used to represent the <CODE>EntityManagerFactory</CODE>.<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html#EntityManagerFactoryValue()"><B>EntityManagerFactoryValue()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence"><B>EntityManagerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implementation of <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html" title="class or interface in javax.persistence"><CODE>EntityManager</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#EntityManagerImpl(org.apache.openjpa.persistence.EntityManagerFactoryImpl, org.apache.openjpa.kernel.Broker)"><B>EntityManagerImpl(EntityManagerFactoryImpl, Broker)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>Constructor; supply factory and delegate.
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence"><B>EntityNotFoundException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Missing entity.<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#EntityNotFoundException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>EntityNotFoundException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#entryAdded(java.lang.Object, java.lang.Object)"><B>entryAdded(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Invoked when an entry is added to the cache.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#entryRemoved(java.lang.Object, java.lang.Object, boolean)"><B>entryRemoved(Object, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Invoked when a key-value pair is evicted from this data
 structure.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#entrySet()"><B>entrySet()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns a collection view of the mappings contained in this map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#entrySet()"><B>entrySet()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns a Collection view of the mappings contained in this HashMap.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#entrySet()"><B>entrySet()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#entrySet()"><B>entrySet()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>EnumValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Value handler for JDK1.5 enum field types.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#EnumValueHandler()"><B>EnumValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#eq(java.lang.Object, java.lang.Object)"><B>eq(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Compare two objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#equal(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>equal(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#equal(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>equal(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#equal(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>equal(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Determine equality based on identifying information.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Performs an equality check based on the properties returned from
 <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#toProperties(boolean)"><CODE>ConfigurationImpl.toProperties(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Compares the specified object with this set for equality.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Affirms equality if the other has the same name and declaring type.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#equalsColumn(org.apache.openjpa.jdbc.schema.Column)"><B>equalsColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Tests compatibility.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#equalsForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>equalsForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Foreign keys are equal if the satisfy the equality constraints of
 <A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>Constraint</CODE></A> and they have the same local and primary key
 columns and action.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html#equalsIndex(org.apache.openjpa.jdbc.schema.Index)"><B>equalsIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema">Index</A>
<DD>Indexes are equal if they have the same name, the same columns, and
 are both unique/not unique.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#equalsLocalConstraint(org.apache.openjpa.jdbc.schema.LocalConstraint)"><B>equalsLocalConstraint(LocalConstraint)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Return true if the columns of this constraint matches that of
 the given one.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html#equalsPrimaryKey(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>equalsPrimaryKey(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema">PrimaryKey</A>
<DD>Return true if the structure of this primary key matches that of
 the given one (same table, same columns).
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Unique.html#equalsUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>equalsUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Unique.html" title="class in org.apache.openjpa.jdbc.schema">Unique</A>
<DD>Return true if the structure of this primary key matches that of
 the given one (same table, same columns).
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#ERROR"><B>ERROR</B></A> - 
Static variable in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#ERROR"><CODE>Log.ERROR</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#ERROR"><CODE>Log.ERROR</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#error(java.lang.Object)"><B>error(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#error(java.lang.Object, java.lang.Throwable)"><B>error(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#error(org.xml.sax.SAXParseException)"><B>error(SAXParseException)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html#error(org.xml.sax.SAXParseException)"><B>error(SAXParseException)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html" title="class in org.apache.openjpa.lib.xml">ValidatingErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#ERROR_STR"><B>ERROR_STR</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html#eval(java.lang.Object, org.apache.openjpa.kernel.ExpressionStoreQuery, org.apache.openjpa.kernel.exps.ExpressionFactory, org.apache.openjpa.meta.ClassMetaData)"><B>eval(Object, ExpressionStoreQuery, ExpressionFactory, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionParser</A>
<DD>Parse the given query string.
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html#eval(java.lang.String[], org.apache.openjpa.kernel.ExpressionStoreQuery, org.apache.openjpa.kernel.exps.ExpressionFactory, org.apache.openjpa.meta.ClassMetaData)"><B>eval(String[], ExpressionStoreQuery, ExpressionFactory, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionParser</A>
<DD>Parse the given value clauses.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#eval(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>eval(Object, Object, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>Return this value for the given candidate.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#eval(java.util.Collection, java.lang.Object, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>eval(Collection, Object, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>Return a list of values resulting from evaluating each given
 candidate.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#eval(java.lang.Object, org.apache.openjpa.kernel.ExpressionStoreQuery, org.apache.openjpa.kernel.exps.ExpressionFactory, org.apache.openjpa.meta.ClassMetaData)"><B>eval(Object, ExpressionStoreQuery, ExpressionFactory, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#eval(java.lang.String[], org.apache.openjpa.kernel.ExpressionStoreQuery, org.apache.openjpa.kernel.exps.ExpressionFactory, org.apache.openjpa.meta.ClassMetaData)"><B>eval(String[], ExpressionStoreQuery, ExpressionFactory, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#evalFetchJoins(org.apache.openjpa.kernel.exps.QueryExpressions)"><B>evalFetchJoins(QueryExpressions)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#evalSetClause(org.apache.openjpa.kernel.exps.QueryExpressions)"><B>evalSetClause(QueryExpressions)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#evaluate(java.lang.Object, java.lang.Class, java.lang.Object[], java.lang.Class[], java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>evaluate(Object, Class, Object[], Class[], Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html#evaluate(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.sql.Select, java.lang.String, org.apache.openjpa.kernel.exps.QueryExpressions, org.apache.openjpa.jdbc.kernel.exps.QueryExpressionsState)"><B>evaluate(ExpContext, Select, String, QueryExpressions, QueryExpressionsState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SelectConstructor</A>
<DD>Evaluate the expression, returning a new select and filling in any
 associated expression state.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#evaluate(java.lang.Object, java.lang.Class, java.lang.Object[], java.lang.Class[], java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>evaluate(Object, Class, Object[], Class[], Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html#evaluate(java.util.Collection, java.lang.Class[], java.util.Collection, org.apache.openjpa.kernel.StoreContext)"><B>evaluate(Collection, Class[], Collection, StoreContext)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps">AggregateListener</A>
<DD>Return the value of this aggregate.
<DT><A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html#evaluate(java.lang.Object, java.lang.Class, java.lang.Object[], java.lang.Class[], java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>evaluate(Object, Class, Object[], Class[], Object, StoreContext)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps">FilterListener</A>
<DD>Evaluate the given expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#evaluate(java.lang.Object, java.lang.Class, java.lang.Object[], java.lang.Class[], java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>evaluate(Object, Class, Object[], Class[], Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#evaluate(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>evaluate(Object, Object, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>Return this value as a projection on the given candidate.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#evaluate(java.util.Collection, java.lang.Object, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>evaluate(Collection, Object, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>Return this value as an aggregate projection on the given group
 of candidates.
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#evaluate(java.lang.Object, java.lang.Class, java.lang.Object[], java.lang.Class[], java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>evaluate(Object, Class, Object[], Class[], Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#evaluate(java.lang.Object)"><B>evaluate(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#evaluate(java.lang.Object)"><B>evaluate(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryListener.html#eventFired(org.apache.openjpa.event.BrokerFactoryEvent)"><B>eventFired(BrokerFactoryEvent)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryListener.html" title="interface in org.apache.openjpa.event">BrokerFactoryListener</A>
<DD>Invoked after a <CODE>BrokerFactory</CODE> has been fully created.
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#eventManager"><B>eventManager</B></A> - 
Variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util"><B>EventManager</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Basic event manager interface.<DT><A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html#eventOccurred(org.apache.openjpa.event.LifecycleEvent)"><B>eventOccurred(LifecycleEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractLifecycleListener.html" title="class in org.apache.openjpa.event">AbstractLifecycleListener</A>
<DD>Should be implemented to handle the specific lifecycle event.
<DT><A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html#eventOccurred(org.apache.openjpa.event.TransactionEvent)"><B>eventOccurred(TransactionEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractTransactionListener.html" title="class in org.apache.openjpa.event">AbstractTransactionListener</A>
<DD>Catch-all for unhandled events.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html#eventOccurred(org.apache.openjpa.lib.jdbc.JDBCEvent)"><B>eventOccurred(JDBCEvent)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/AbstractJDBCListener.html" title="class in org.apache.openjpa.lib.jdbc">AbstractJDBCListener</A>
<DD>Catch-all for unhandled events.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#evict(org.apache.openjpa.datacache.DataCache)"><B>evict(DataCache)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#evict(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>evict(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Evict the given object.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#evict(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>evict(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#evict(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>evict(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#evict(java.lang.Object)"><B>evict(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#evict(java.lang.Object)"><B>evict(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Evict the given object.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCache.html#evict(javax.persistence.Query)"><B>evict(Query)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCache.html" title="interface in org.apache.openjpa.persistence">QueryResultCache</A>
<DD>Evict a query result from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#evict(javax.persistence.Query)"><B>evict(Query)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#evict(java.lang.Class, java.lang.Object)"><B>evict(Class, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Remove data for the given oid from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#evict(java.lang.Class, java.lang.Object)"><B>evict(Class, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#evictAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Evict the given objects.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#evictAll(org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Evict all clean objects.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#evictAll(org.apache.openjpa.kernel.Extent, org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(Extent, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Evict all persistent-clean and persistent-nontransactional
 instances in the given <A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel"><CODE>Extent</CODE></A>.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#evictAll(org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#evictAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#evictAll(org.apache.openjpa.kernel.Extent, org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(Extent, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#evictAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#evictAll(org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#evictAll(org.apache.openjpa.kernel.Extent, org.apache.openjpa.kernel.OpCallbacks)"><B>evictAll(Extent, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#evictAll(java.util.Collection)"><B>evictAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#evictAll(java.lang.Object...)"><B>evictAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#evictAll()"><B>evictAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#evictAll(java.lang.Class)"><B>evictAll(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#evictAll(org.apache.openjpa.persistence.Extent)"><B>evictAll(Extent)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#evictAll(java.lang.Object...)"><B>evictAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Evict the given objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#evictAll(java.util.Collection)"><B>evictAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Evict the given objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#evictAll()"><B>evictAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Evict all clean objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#evictAll(java.lang.Class)"><B>evictAll(Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Evict all persistent-clean and persistent-nontransactional
 instances in the extent of the given class (including subclasses).
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#evictAll(org.apache.openjpa.persistence.Extent)"><B>evictAll(Extent)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Evict all persistent-clean and persistent-nontransactional
 instances in the given <A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence"><CODE>Extent</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCache.html#evictAll()"><B>evictAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCache.html" title="interface in org.apache.openjpa.persistence">QueryResultCache</A>
<DD>Clear the cache.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCache.html#evictAll(java.lang.Class)"><B>evictAll(Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCache.html" title="interface in org.apache.openjpa.persistence">QueryResultCache</A>
<DD>Evict all result for queries involving the given class.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#evictAll()"><B>evictAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#evictAll(java.lang.Class)"><B>evictAll(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#evictAll(java.lang.Class, java.lang.Object...)"><B>evictAll(Class, Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Remove data for the given oids from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#evictAll(java.lang.Class, java.util.Collection)"><B>evictAll(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Remove data for the given oids from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#evictAll()"><B>evictAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Clear the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#evictAll(java.lang.Class, java.lang.Object...)"><B>evictAll(Class, Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#evictAll(java.lang.Class, java.util.Collection)"><B>evictAll(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#evictAll()"><B>evictAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#EX_FATAL"><B>EX_FATAL</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#EX_UNSUPPORTED"><B>EX_UNSUPPORTED</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#EX_USER"><B>EX_USER</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util"><B>ExceptionInfo</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface supplying additional exception information.<DT><A HREF="./org/apache/openjpa/event/ExceptionOrphanedKeyAction.html" title="class in org.apache.openjpa.event"><B>ExceptionOrphanedKeyAction</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Throw a <A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html" title="class in org.apache.openjpa.util"><CODE>ObjectNotFoundException</CODE></A> when an orphaned key is discovered.<DT><A HREF="./org/apache/openjpa/event/ExceptionOrphanedKeyAction.html#ExceptionOrphanedKeyAction()"><B>ExceptionOrphanedKeyAction()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/ExceptionOrphanedKeyAction.html" title="class in org.apache.openjpa.event">ExceptionOrphanedKeyAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util"><B>Exceptions</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utility methods for externalizing and handling exceptions.<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#Exceptions()"><B>Exceptions()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#EXCLUDE_ALL"><B>EXCLUDE_ALL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Marker bitset to indicate that all field loads should be excluded in
 the <code>find</code> methods of this interface.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#excludeUnlistedClasses()"><B>excludeUnlistedClasses()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>execute(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager.CustomMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>execute(JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>execute(JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>execute(JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>execute(JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>execute(JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Execute this select in the context of the given store manager.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>execute(JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Execute this select in the context of the given store manager.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>execute(JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#execute(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>execute(JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#execute(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>execute(StoreContext, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Execute this select in the context of the given store manager.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#execute()"><B>execute()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#execute(java.util.Map)"><B>execute(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#execute(java.lang.Object[])"><B>execute(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#execute()"><B>execute()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Execute.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#execute(java.util.Map)"><B>execute(Map)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Execute with parameter map.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#execute(java.lang.Object[])"><B>execute(Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Execute with parameter array.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#execute()"><B>execute()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#execute(java.lang.Object[])"><B>execute(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#execute(java.util.Map)"><B>execute(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#execute()"><B>execute()</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#execute(java.lang.String)"><B>execute(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#execute()"><B>execute()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#execute(java.lang.String, int)"><B>execute(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#execute(java.lang.String, int[])"><B>execute(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#execute(java.lang.String, java.lang.String[])"><B>execute(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#execute(java.lang.String)"><B>execute(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#execute()"><B>execute()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#execute(java.lang.String, int)"><B>execute(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#execute(java.lang.String, int[])"><B>execute(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#execute(java.lang.String, java.lang.String[])"><B>execute(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#execute(java.lang.String)"><B>execute(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#execute(java.lang.String, int)"><B>execute(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#execute(java.lang.String, int[])"><B>execute(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#execute(java.lang.String, java.lang.String[])"><B>execute(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeBatch()"><B>executeBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeBatch()"><B>executeBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeBatch()"><B>executeBatch()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#executeDelete(org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[])"><B>executeDelete(StoreQuery.Executor, ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#executeDelete(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><B>executeDelete(StoreQuery, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#executeDelete(org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[])"><B>executeDelete(StoreQuery.Executor, ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Execute the given expression against the given candidate extent
 and delete the instances.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#executeDelete(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><B>executeDelete(StoreQuery, Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Deleted the objects that result from the execution of the
 query, retuning the number of objects that were deleted.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)"><B>executeExtent(ClassMetaData, boolean, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Create a <A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop"><CODE>ResultObjectProvider</CODE></A> that can return all instances
 of <code>type</code>, optionally including subclasses as defined
 by <code>subclasses</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)"><B>executeExtent(ClassMetaData, boolean, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)"><B>executeExtent(ClassMetaData, boolean, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)"><B>executeExtent(ClassMetaData, boolean, FetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return a provider for all instances of the given candidate class,
 optionally including subclasses.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)"><B>executeExtent(ClassMetaData, boolean, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#executeOn(java.lang.String[])"><B>executeOn(String[])</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Perform the task action on the given files.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#executeQuery(org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>executeQuery(StoreQuery.Executor, ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[], StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#executeQuery(org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>executeQuery(StoreQuery.Executor, ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[], StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Execute the given expression against the given candidate extent.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#executeQuery(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>executeQuery(StoreQuery, Object[], StoreQuery.Range)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return the result of executing this query with the given parameter
 values.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeQuery(java.lang.String)"><B>executeQuery(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeQuery(java.lang.String, boolean)"><B>executeQuery(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>Execute the query, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeQuery()"><B>executeQuery()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeQuery(boolean)"><B>executeQuery(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>Execute the query, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeQuery(java.lang.String)"><B>executeQuery(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeQuery(java.lang.String, boolean)"><B>executeQuery(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>Execute the query, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeQuery()"><B>executeQuery()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeQuery(boolean)"><B>executeQuery(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>Execute the query, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeQuery(java.lang.String)"><B>executeQuery(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeQuery(java.lang.String, boolean)"><B>executeQuery(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>Execute the query, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[])"><B>executeUpdate(StoreQuery.Executor, ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#executeUpdate(org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[])"><B>executeUpdate(ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><B>executeUpdate(StoreQuery, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[])"><B>executeUpdate(StoreQuery.Executor, ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Execute the given expression against the given candidate extent
 and updates the instances.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><B>executeUpdate(StoreQuery, Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Updates the objects that result from the execution of the
 query, retuning the number of objects that were updated.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeUpdate(java.lang.String)"><B>executeUpdate(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeUpdate()"><B>executeUpdate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeUpdate(java.lang.String, int)"><B>executeUpdate(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeUpdate(java.lang.String, int[])"><B>executeUpdate(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#executeUpdate(java.lang.String, java.lang.String[])"><B>executeUpdate(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeUpdate(java.lang.String)"><B>executeUpdate(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeUpdate()"><B>executeUpdate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeUpdate(java.lang.String, int)"><B>executeUpdate(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeUpdate(java.lang.String, int[])"><B>executeUpdate(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#executeUpdate(java.lang.String, java.lang.String[])"><B>executeUpdate(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeUpdate(java.lang.String)"><B>executeUpdate(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeUpdate(java.lang.String, int)"><B>executeUpdate(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeUpdate(java.lang.String, int[])"><B>executeUpdate(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#executeUpdate(java.lang.String, java.lang.String[])"><B>executeUpdate(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#executeUpdate()"><B>executeUpdate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>exists(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>exists(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>exists(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>exists(OpenJPAStateManager, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Verify that the given instance exists in the data store; return false
 if it does not.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>exists(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#existsAction(java.io.File)"><B>existsAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.exists().
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html#exit(org.apache.openjpa.kernel.exps.Expression)"><B>exit(Expression)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionVisitor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html#exit(org.apache.openjpa.kernel.exps.Value)"><B>exit(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionVisitor.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionVisitor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html#exit(org.apache.openjpa.kernel.exps.Expression)"><B>exit(Expression)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionVisitor</A>
<DD>Leave an expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html#exit(org.apache.openjpa.kernel.exps.Value)"><B>exit(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionVisitor</A>
<DD>Leave a value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>ExpContext</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Expression tree context.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html#ExpContext()"><B>ExpContext()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html#ExpContext(org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object[], org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>ExpContext(JDBCStore, Object[], JDBCFetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#expectsArguments()"><B>expectsArguments()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#expectsArguments()"><B>expectsArguments()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html#expectsArguments()"><B>expectsArguments()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps">AggregateListener</A>
<DD>Return whether this function expects to act on arguments.
<DT><A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html#expectsArguments()"><B>expectsArguments()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps">FilterListener</A>
<DD>Return true if this extension expects arguments to act on.
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#expectsArguments()"><B>expectsArguments()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#expectsArguments()"><B>expectsArguments()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#expectsTarget()"><B>expectsTarget()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#expectsTarget()"><B>expectsTarget()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html#expectsTarget()"><B>expectsTarget()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps">FilterListener</A>
<DD>Return true if this extension expects a target to act on.
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#expectsTarget()"><B>expectsTarget()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#expectsTarget()"><B>expectsTarget()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html" title="class in org.apache.openjpa.datacache"><B>ExpirationEvent</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>An event indicating the expiration of an object from the data cache,
 or an expiration of a result list from the query cache.<DT><A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html#ExpirationEvent(java.lang.Object, java.lang.Object, boolean)"><B>ExpirationEvent(Object, Object, boolean)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html" title="class in org.apache.openjpa.datacache">ExpirationEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/datacache/ExpirationListener.html" title="interface in org.apache.openjpa.datacache"><B>ExpirationListener</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>An entity that wishes to be notified when cache keys expire.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.ImportExport.html#exportMappings(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.Class[], boolean, org.apache.openjpa.lib.log.Log, java.io.Writer)"><B>exportMappings(JDBCConfiguration, Class[], boolean, Log, Writer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.ImportExport.html" title="interface in org.apache.openjpa.jdbc.meta">MappingTool.ImportExport</A>
<DD>Export mappings for the given classes based on the given arguments.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Expression.html" title="interface in org.apache.openjpa.kernel.exps"><B>Expression</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Interface for a set of conditions that must be met for the query
 to be true.<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps"><B>ExpressionFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>The ExpressionFactory must be implemented by a particular runtime
 to form <A HREF="./org/apache/openjpa/kernel/exps/Expression.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Expression</CODE></A>s in its native query language.<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps"><B>ExpressionParser</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Parser for query languages that will be used by a <CODE>ExpressionQuery</CODE>.<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel"><B>ExpressionStoreQuery</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Implementation of an expression-based query, which can handle
 String-based query expressions such as JPQL and JDOQL.<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#ExpressionStoreQuery(org.apache.openjpa.kernel.exps.ExpressionParser)"><B>ExpressionStoreQuery(ExpressionParser)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Construct a query with a parser for the language.
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps"><B>ExpressionVisitor</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Visits nodes of a query expression tree.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>ExpState</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Expression tree state.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html#ExpState()"><B>ExpState()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html#ExpState(org.apache.openjpa.jdbc.sql.Joins)"><B>ExpState(Joins)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#extendsDec(int)"><B>extendsDec(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta"><B>Extensions</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Vendor extensions.<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#Extensions()"><B>Extensions()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel"><B>Extent</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Representation of all members of a persistent class.<DT><A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence"><B>Extent</B></A>&lt;<A HREF="./org/apache/openjpa/persistence/Extent.html" title="type parameter in Extent">T</A>&gt; - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>An extent is a logical view of all instances of a class.<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel"><B>ExtentImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Representation of all members of a persistent class.<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence"><B>ExtentImpl</B></A>&lt;<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="type parameter in ExtentImpl">T</A>&gt; - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>An extent is a logical view of all instances of a class.<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#ExtentImpl(org.apache.openjpa.persistence.EntityManagerImpl, org.apache.openjpa.kernel.Extent)"><B>ExtentImpl(EntityManagerImpl, Extent)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#extentIterator(java.lang.Class, boolean, org.apache.openjpa.kernel.FetchConfiguration, boolean)"><B>extentIterator(Class, boolean, FetchConfiguration, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#extentIterator(java.lang.Class, boolean, org.apache.openjpa.kernel.FetchConfiguration, boolean)"><B>extentIterator(Class, boolean, FetchConfiguration, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#extentIterator(java.lang.Class, boolean, org.apache.openjpa.kernel.FetchConfiguration, boolean)"><B>extentIterator(Class, boolean, FetchConfiguration, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return an iterator over all instances of the given type.
<DT><A HREF="./org/apache/openjpa/persistence/Externalizer.html" title="annotation in org.apache.openjpa.persistence"><B>Externalizer</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Declares a method that transforms the field value to its datastore
 equivalent.<DT><A HREF="./org/apache/openjpa/persistence/ExternalValues.html" title="annotation in org.apache.openjpa.persistence"><B>ExternalValues</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Maps field values to their datastore equivalents.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#extract()"><B>extract()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_F_"><!-- --></A><H2>
<B>F</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#factory"><B>factory</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Factory.html" title="annotation in org.apache.openjpa.persistence"><B>Factory</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Declares a method that transforms the datastore value to its field
 equivalent.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#FALSE"><B>FALSE</B></A> - 
Static variable in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/EmbeddedMapping.html#FALSE"><B>FALSE</B></A> - 
Static variable in annotation type org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/EmbeddedMapping.html" title="annotation in org.apache.openjpa.persistence.jdbc">EmbeddedMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#FATAL"><B>FATAL</B></A> - 
Static variable in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#FATAL"><CODE>Log.FATAL</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#FATAL"><CODE>Log.FATAL</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#fatal(java.lang.Object)"><B>fatal(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#fatal(java.lang.Object, java.lang.Throwable)"><B>fatal(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#FATAL_STR"><B>FATAL_STR</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#fatalError(org.xml.sax.SAXParseException)"><B>fatalError(SAXParseException)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html#fatalError(org.xml.sax.SAXParseException)"><B>fatalError(SAXParseException)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html" title="class in org.apache.openjpa.lib.xml">ValidatingErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html#fetch"><B>fetch</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>
<DD>Fetch configuration.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetch(int)"><B>fetch(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetch(int)"><B>fetch(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetch(int)"><B>fetch(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetch(int)"><B>fetch(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the externalized value of the field with the given index as an
 object.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetch(int)"><B>fetch(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#FETCH_LOAD"><B>FETCH_LOAD</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Constant indicating that a field requires a fetch and load of fetched
 data.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#FETCH_NONE"><B>FETCH_NONE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Constant indicating that a field does not require fetching.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#FETCH_REF"><B>FETCH_REF</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Constant indicating that a reference to the field's value must be
 fetched, but loading data is not necessary.
<DT><A HREF="./org/apache/openjpa/persistence/FetchAttribute.html" title="annotation in org.apache.openjpa.persistence"><B>FetchAttribute</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Includes a persistent attribute in a <A HREF="./org/apache/openjpa/persistence/FetchGroup.html" title="annotation in org.apache.openjpa.persistence"><CODE>FetchGroup</CODE></A>.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#fetchBatchSize"><B>fetchBatchSize</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#fetchBatchSize"><B>fetchBatchSize</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchBoolean(int)"><B>fetchBoolean(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchBoolean(int)"><B>fetchBoolean(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchBoolean(int)"><B>fetchBoolean(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchBoolean(int)"><B>fetchBoolean(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchBoolean(int)"><B>fetchBoolean(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchBooleanField(int)"><B>fetchBooleanField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchBooleanField(int)"><B>fetchBooleanField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchBooleanField(int)"><B>fetchBooleanField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchByte(int)"><B>fetchByte(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchByte(int)"><B>fetchByte(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchByte(int)"><B>fetchByte(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchByte(int)"><B>fetchByte(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchByte(int)"><B>fetchByte(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchByteField(int)"><B>fetchByteField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchByteField(int)"><B>fetchByteField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchByteField(int)"><B>fetchByteField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchChar(int)"><B>fetchChar(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchChar(int)"><B>fetchChar(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchChar(int)"><B>fetchChar(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchChar(int)"><B>fetchChar(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchChar(int)"><B>fetchChar(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchCharField(int)"><B>fetchCharField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchCharField(int)"><B>fetchCharField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchCharField(int)"><B>fetchCharField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><B>FetchConfiguration</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Allows configuration and optimization of how objects are loaded from
 the data store.<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel"><B>FetchConfigurationImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Allows configuration and optimization of how objects are loaded from
 the data store.<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#FetchConfigurationImpl()"><B>FetchConfigurationImpl()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#FetchConfigurationImpl(org.apache.openjpa.kernel.FetchConfigurationImpl.ConfigurationState)"><B>FetchConfigurationImpl(FetchConfigurationImpl.ConfigurationState)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel"><B>FetchConfigurationImpl.ConfigurationState</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Configurable state shared throughout a traversal chain.<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#FetchConfigurationImpl.ConfigurationState()"><B>FetchConfigurationImpl.ConfigurationState()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#fetchDirection"><B>fetchDirection</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/FetchDirection.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>FetchDirection</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>The fetch direction to request when creating statements.<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchDouble(int)"><B>fetchDouble(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchDouble(int)"><B>fetchDouble(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchDouble(int)"><B>fetchDouble(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchDouble(int)"><B>fetchDouble(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchDouble(int)"><B>fetchDouble(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchDoubleField(int)"><B>fetchDoubleField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchDoubleField(int)"><B>fetchDoubleField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchDoubleField(int)"><B>fetchDoubleField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchField(int, boolean)"><B>fetchField(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchField(int, boolean)"><B>fetchField(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchField(int, boolean)"><B>fetchField(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchField(int, boolean)"><B>fetchField(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the value of the field with the given index as an object.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchField(int, boolean)"><B>fetchField(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchFloat(int)"><B>fetchFloat(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchFloat(int)"><B>fetchFloat(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchFloat(int)"><B>fetchFloat(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchFloat(int)"><B>fetchFloat(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchFloat(int)"><B>fetchFloat(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchFloatField(int)"><B>fetchFloatField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchFloatField(int)"><B>fetchFloatField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchFloatField(int)"><B>fetchFloatField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchFromDetachedSM(org.apache.openjpa.kernel.DetachedStateManager, int)"><B>fetchFromDetachedSM(DetachedStateManager, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta"><B>FetchGroup</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Captures fetch group metadata.<DT><A HREF="./org/apache/openjpa/persistence/FetchGroup.html" title="annotation in org.apache.openjpa.persistence"><B>FetchGroup</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Fetch group definition.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#fetchGroups"><B>fetchGroups</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#fetchGroups"><B>fetchGroups</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchGroups.html" title="annotation in org.apache.openjpa.persistence"><B>FetchGroups</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Fetch groups holder.<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchInitialField(int)"><B>fetchInitialField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchInitialField(int)"><B>fetchInitialField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchInitialField(int)"><B>fetchInitialField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchInitialField(int)"><B>fetchInitialField(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the value of the field at the specified index as of the
 beginning of the transaction.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchInitialField(int)"><B>fetchInitialField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#fetchInnerPaths"><B>fetchInnerPaths</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchInt(int)"><B>fetchInt(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchInt(int)"><B>fetchInt(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchInt(int)"><B>fetchInt(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchInt(int)"><B>fetchInt(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchInt(int)"><B>fetchInt(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchIntField(int)"><B>fetchIntField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchIntField(int)"><B>fetchIntField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchIntField(int)"><B>fetchIntField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchLong(int)"><B>fetchLong(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchLong(int)"><B>fetchLong(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchLong(int)"><B>fetchLong(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchLong(int)"><B>fetchLong(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchLong(int)"><B>fetchLong(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchLongField(int)"><B>fetchLongField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchLongField(int)"><B>fetchLongField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchLongField(int)"><B>fetchLongField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/FetchMode.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>FetchMode</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Type of fetching to employ.<DT><A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html" title="class in org.apache.openjpa.jdbc.conf"><B>FetchModeValue</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Value type used to represent fetch modes.<DT><A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html#FetchModeValue(java.lang.String)"><B>FetchModeValue(String)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/FetchModeValue.html" title="class in org.apache.openjpa.jdbc.conf">FetchModeValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchObject(int)"><B>fetchObject(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchObject(int)"><B>fetchObject(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchObject(int)"><B>fetchObject(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchObject(int)"><B>fetchObject(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchObject(int)"><B>fetchObject(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchObjectField(int)"><B>fetchObjectField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchObjectField(int)"><B>fetchObjectField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#fetchObjectField(int)"><B>fetchObjectField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchObjectField(int)"><B>fetchObjectField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#fetchObjectId()"><B>fetchObjectId()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Return the object id, assigning it if necessary.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchObjectId()"><B>fetchObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchObjectId()"><B>fetchObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchObjectId()"><B>fetchObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchObjectId()"><B>fetchObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#fetchPaths"><B>fetchPaths</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence"><B>FetchPlan</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The fetch plan allows you to dynamically alter eager fetching
 configuration and other aspects of data loading.<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence"><B>FetchPlanImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implements FetchPlan via delegation to FetchConfiguration.<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#FetchPlanImpl(org.apache.openjpa.kernel.FetchConfiguration)"><B>FetchPlanImpl(FetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchShort(int)"><B>fetchShort(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchShort(int)"><B>fetchShort(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchShort(int)"><B>fetchShort(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchShort(int)"><B>fetchShort(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchShort(int)"><B>fetchShort(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchShortField(int)"><B>fetchShortField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchShortField(int)"><B>fetchShortField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchShortField(int)"><B>fetchShortField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#fetchString(int)"><B>fetchString(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#fetchString(int)"><B>fetchString(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchString(int)"><B>fetchString(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#fetchString(int)"><B>fetchString(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the external value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchString(int)"><B>fetchString(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html#fetchStringField(int)"><B>fetchStringField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A>
<DD>Return the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#fetchStringField(int)"><B>fetchStringField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#fetchStringField(int)"><B>fetchStringField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#field"><B>field</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>The owning field mapping.
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance"><B>FieldConsumer</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Consumes persistent field values.<DT><A HREF="./org/apache/openjpa/enhance/FieldManager.html" title="interface in org.apache.openjpa.enhance"><B>FieldManager</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Manages persistent fields.<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta"><B>FieldMapping</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Specialization of metadata for relational databases.<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#FieldMapping(java.lang.String, java.lang.Class, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>FieldMapping(String, Class, ClassMapping)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><B>FieldMappingInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Information about the mapping from a field to the schema, in raw form.<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#FieldMappingInfo()"><B>FieldMappingInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta"><B>FieldMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Metadata for a managed class field.<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#FieldMetaData(java.lang.String, java.lang.Class, org.apache.openjpa.meta.ClassMetaData)"><B>FieldMetaData(String, Class, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#fieldName(java.lang.String)"><B>fieldName(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#fields"><B>fields</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta"><B>FieldStrategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Maps a persistent field to the relational schema.<DT><A HREF="./org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance"><B>FieldSupplier</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Supplies persistent field values.<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#file"><B>file</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#file"><B>file</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html#file"><B>file</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html" title="class in org.apache.openjpa.meta">MetaDataTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>FileMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over a file, or over all metadata resources below a given directory.<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#FileMetaDataIterator(java.io.File)"><B>FileMetaDataIterator(File)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>Constructor; supply metadata file.
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#FileMetaDataIterator(java.io.File, org.apache.openjpa.lib.meta.MetaDataFilter)"><B>FileMetaDataIterator(File, MetaDataFilter)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>Constructor; supply root of directory tree to search and optional
 file filter.
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#fileName"><B>fileName</B></A> - 
Variable in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util"><B>Files</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Utility operations on files.<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#Files()"><B>Files()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#files"><B>files</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema"><B>FileSchemaFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Factory that uses an XML schema file to construct the system schema.<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#FileSchemaFactory()"><B>FileSchemaFactory()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#fileSets"><B>fileSets</B></A> - 
Variable in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf"><B>FileValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io"><CODE>File</CODE></A> <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#FileValue(java.lang.String)"><B>FileValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#filter"><B>filter</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#filter"><B>filter</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps"><B>FilterListener</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>A filter listener extends expression filters with custom functionality.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#filterListenerPlugins"><B>filterListenerPlugins</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel"><B>Filters</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Helper methods for dealing with query filters.<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#Filters()"><B>Filters()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps"><B>FilterValue</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>The simplified public view of any non-operator in a query filter,
 including constants, variables, and object fields.<DT><A HREF="./org/apache/openjpa/kernel/FinalizingBrokerImpl.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FinalizingBrokerImpl.html" title="class in org.apache.openjpa.kernel">FinalizingBrokerImpl</A>
<DD>Close on finalize.
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop">ResultObjectProviderIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FinalizingBrokerImpl.html" title="class in org.apache.openjpa.kernel"><B>FinalizingBrokerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Subtype of <A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel"><CODE>BrokerImpl</CODE></A> that automatically closes itself during
 finalization.<DT><A HREF="./org/apache/openjpa/kernel/FinalizingBrokerImpl.html#FinalizingBrokerImpl()"><B>FinalizingBrokerImpl()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FinalizingBrokerImpl.html" title="class in org.apache.openjpa.kernel">FinalizingBrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#find(java.lang.Object, org.apache.openjpa.jdbc.meta.ValueMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>find(Object, ValueMapping, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Find the object with the given oid.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#find(java.lang.Object, org.apache.openjpa.jdbc.meta.ValueMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>find(Object, ValueMapping, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>Find the object with the given oid.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#find(java.lang.Object, boolean, org.apache.openjpa.kernel.FindCallbacks)"><B>find(Object, boolean, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#find(java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int)"><B>find(Object, FetchConfiguration, BitSet, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#find(java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int, org.apache.openjpa.kernel.FindCallbacks)"><B>find(Object, FetchConfiguration, BitSet, Object, int, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Internal finder.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#find(java.lang.Object, boolean, org.apache.openjpa.kernel.FindCallbacks)"><B>find(Object, boolean, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#find(java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int)"><B>find(Object, FetchConfiguration, BitSet, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#find(java.lang.Object, boolean, org.apache.openjpa.kernel.FindCallbacks)"><B>find(Object, boolean, FindCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Find the persistence object with the given oid.
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#find(java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int)"><B>find(Object, FetchConfiguration, BitSet, Object, int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the object with the given oid.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#find(java.lang.Class, java.lang.Object)"><B>find(Class&lt;T&gt;, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#findAll(java.util.Collection, boolean, org.apache.openjpa.kernel.FindCallbacks)"><B>findAll(Collection, boolean, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#findAll(java.util.Collection, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int)"><B>findAll(Collection, FetchConfiguration, BitSet, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#findAll(java.util.Collection, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int, org.apache.openjpa.kernel.FindCallbacks)"><B>findAll(Collection, FetchConfiguration, BitSet, Object, int, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Internal finder.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#findAll(java.util.Collection, boolean, org.apache.openjpa.kernel.FindCallbacks)"><B>findAll(Collection, boolean, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#findAll(java.util.Collection, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int)"><B>findAll(Collection, FetchConfiguration, BitSet, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#findAll(java.util.Collection, boolean, org.apache.openjpa.kernel.FindCallbacks)"><B>findAll(Collection, boolean, FindCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the objects with the given oids.
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#findAll(java.util.Collection, org.apache.openjpa.kernel.FetchConfiguration, java.util.BitSet, java.lang.Object, int)"><B>findAll(Collection, FetchConfiguration, BitSet, Object, int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the objects with the given oids.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#findAll(java.lang.Class, java.lang.Object...)"><B>findAll(Class&lt;T&gt;, Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#findAll(java.lang.Class, java.util.Collection)"><B>findAll(Class&lt;T&gt;, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#findAll(java.lang.Class, java.lang.Object...)"><B>findAll(Class&lt;T&gt;, Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the objects with the given oids.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#findAll(java.lang.Class, java.util.Collection)"><B>findAll(Class&lt;T&gt;, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the objects with the given oids.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#findBroker(java.lang.String, java.lang.String, boolean)"><B>findBroker(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Find a pooled broker, or return null if none.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#findCached(java.lang.Object, org.apache.openjpa.kernel.FindCallbacks)"><B>findCached(Object, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#findCached(java.lang.Object, org.apache.openjpa.kernel.FindCallbacks)"><B>findCached(Object, FindCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#findCached(java.lang.Object, org.apache.openjpa.kernel.FindCallbacks)"><B>findCached(Object, FindCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the cached instance for the given oid/object, or null if not
 cached.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#findCached(java.lang.Class, java.lang.Object)"><B>findCached(Class&lt;T&gt;, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#findCached(java.lang.Class, java.lang.Object)"><B>findCached(Class&lt;T&gt;, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the cached instance for the given oid/object, or null if not
 cached.
<DT><A HREF="./org/apache/openjpa/kernel/FindCallbacks.html" title="interface in org.apache.openjpa.kernel"><B>FindCallbacks</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Allows facades to control the particulars of the find operation
 through callbacks.<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#findClass(java.lang.String)"><B>findClass(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#findColumn(java.lang.String)"><B>findColumn(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#findCopyConstructor(java.lang.Class)"><B>findCopyConstructor(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Find an appropriate copy constructor for the given type, or return null
 if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findExportedForeignKeys(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>findExportedForeignKeys(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find all foreign keys exported by a given primary key (all foreign keys
 that link to the primary key).
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#findField(java.lang.Class, java.lang.String, boolean)"><B>findField(Class, String, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the field with the given name, optionally throwing an exception
 if none.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#findGetter(java.lang.Class, java.lang.String, boolean)"><B>findGetter(Class, String, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the getter method matching the given property name, optionally
 throwing an exception if none.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#findGetter(java.lang.Class, java.lang.reflect.Method)"><B>findGetter(Class, Method)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return the getter corresponding to the given setter, or null.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#findObject(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>findObject(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Return the 1-based result set index for the given column or id, or a
 non-positive number if the column is not contained in this result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#findObject(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>findObject(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#findOptionsFor(java.lang.Class)"><B>findOptionsFor(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Finds all the options that can be set on the provided class.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#findResource(java.lang.String)"><B>findResource(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#findResources(java.lang.String)"><B>findResources(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#findSequence(java.lang.String)"><B>findSequence(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>findSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find the equivalent of the given sequence in this schema group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findSequence(java.lang.String)"><B>findSequence(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find the sequence with the given name in the group, using '.' as the
 catalog separator.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findSequence(org.apache.openjpa.jdbc.schema.Schema, java.lang.String)"><B>findSequence(Schema, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find the sequence with the given name in the group, using '.' as the
 catalog separator.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#findSetter(java.lang.Class, java.lang.String, boolean)"><B>findSetter(Class, String, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the setter method matching the given property name, optionally
 throwing an exception if none.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#findSetter(java.lang.Class, java.lang.String, java.lang.Class, boolean)"><B>findSetter(Class, String, Class, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the setter method matching the given property name, optionally
 throwing an exception if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#findTable(java.lang.String)"><B>findTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#findTable(java.lang.String)"><B>findTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findTable(org.apache.openjpa.jdbc.schema.Table)"><B>findTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find the equivalent of the given table in this schema group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findTable(java.lang.String)"><B>findTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find the table with the given name in the group, using '.' as the
 catalog separator.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#findTable(org.apache.openjpa.jdbc.schema.Schema, java.lang.String)"><B>findTable(Schema, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Find the table with the given name in the group, using '.' as the catalog
 separator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#findTargetField(org.apache.openjpa.jdbc.schema.Column[], java.lang.String)"><B>findTargetField(Column[], String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return the position of the template column with the given target field.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#findTransactionalBroker(java.lang.String, java.lang.String)"><B>findTransactionalBroker(String, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Find a managed runtime broker associated with the
 current transaction, or returns null if none.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html#finish(org.apache.openjpa.enhance.PCDataGenerator.DynamicPCData, org.apache.openjpa.meta.ClassMetaData)"><B>finish(PCDataGenerator.DynamicPCData, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html" title="class in org.apache.openjpa.datacache">DataCachePCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#finish(org.apache.openjpa.enhance.PCDataGenerator.DynamicPCData, org.apache.openjpa.meta.ClassMetaData)"><B>finish(PCDataGenerator.DynamicPCData, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Perform any final actions before the pcdata is returned to client code.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#finish()"><B>finish()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>Parse the schema relating to the given class.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#finish()"><B>finish()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Override this method to finish up after a parse; this is only
 called if no errors are encountered during parsing.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>FirebirdDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Firebird.<DT><A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html#FirebirdDictionary()"><B>FirebirdDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FirebirdDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#fireEvent(org.apache.openjpa.event.RemoteCommitEvent)"><B>fireEvent(RemoteCommitEvent)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>Fire a remote commit event via the cached event manager.
<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEventManager.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryEventManager.html" title="class in org.apache.openjpa.event">BrokerFactoryEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#fireEvent(java.lang.Object, org.apache.openjpa.meta.ClassMetaData, int)"><B>fireEvent(Object, ClassMetaData, int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Fire lifecycle event to all registered listeners without an argument.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#fireEvent(java.lang.Object, java.lang.Object, org.apache.openjpa.meta.ClassMetaData, int)"><B>fireEvent(Object, Object, ClassMetaData, int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Fire lifecycle event to all registered listeners.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>Fire the given event to all registered listeners.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEventConnectionDecorator</A>
<DD>Fire the given event to all listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#fireEvent(java.lang.Object)"><B>fireEvent(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Fire the given event to all listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#fireEvent(java.lang.Object, java.lang.Object)"><B>fireEvent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Implement this method to fire the given event to the given listener.
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html#fireEvent(java.lang.Object)"><B>fireEvent(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A>
<DD>Fire the given event to all listeners, returning any exceptions.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#fireLocalStaleNotification(java.lang.Object)"><B>fireLocalStaleNotification(Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Fire an event to local listeners only notifying them of a detected
 stale record.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#first()"><B>first()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#fixedSizeTypeNames"><B>fixedSizeTypeNames</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#fixedSizeTypeNameSet"><B>fixedSizeTypeNameSet</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_DIRECT_INSERT"><B>FLAG_DIRECT_INSERT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_DIRECT_UPDATE"><B>FLAG_DIRECT_UPDATE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_FK_INSERT"><B>FLAG_FK_INSERT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_FK_UPDATE"><B>FLAG_FK_UPDATE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_PK_JOIN"><B>FLAG_PK_JOIN</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_UNINSERTABLE"><B>FLAG_UNINSERTABLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#FLAG_UNUPDATABLE"><B>FLAG_UNUPDATABLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#flags"><B>flags</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>FlatClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for classes mapped to their superclass table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html#FlatClassStrategy()"><B>FlatClassStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FlatClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#FLOAT"><B>FLOAT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#FLOAT_OBJ"><B>FLOAT_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util"><B>FloatId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for float fields.<DT><A HREF="./org/apache/openjpa/util/FloatId.html#FloatId(java.lang.Class, java.lang.Float)"><B>FloatId(Class, Float)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#FloatId(java.lang.Class, java.lang.String)"><B>FloatId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#FloatId(java.lang.Class, float)"><B>FloatId(Class, float)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#FloatId(java.lang.Class, float, boolean)"><B>FloatId(Class, float, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#floatTypeName"><B>floatTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#flush(java.util.Collection)"><B>flush(Collection)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Breaks down <code>states</code> based on the objects' current
 states, and delegates to
 <A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#flush(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><CODE>AbstractStoreManager.flush(Collection,Collection,Collection,Collection,Collection)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#flush(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>flush(Collection, Collection, Collection, Collection, Collection)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Responsible for writing modifications happened back to the data
 store.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#flush(java.util.Collection)"><B>flush(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#flush(java.util.Collection, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>flush(Collection, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#flush(org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.kernel.PreparedStatementManager, java.util.Collection)"><B>flush(RowManager, PreparedStatementManager, Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>Flush all rows of the given row manager.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#flush(org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.kernel.PreparedStatementManager, java.util.Collection)"><B>flush(RowManager, PreparedStatementManager, Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#flush(java.util.Collection, org.apache.openjpa.jdbc.kernel.PreparedStatementManager)"><B>flush(Collection, PreparedStatementManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>Flush the given collection of secondary rows.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#flush(java.util.Collection)"><B>flush(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html#flush(org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.kernel.PreparedStatementManager, java.util.Collection)"><B>flush(RowManager, PreparedStatementManager, Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">OperationOrderUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html#flush(java.util.Collection, org.apache.openjpa.jdbc.kernel.PreparedStatementManager)"><B>flush(Collection, PreparedStatementManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">OperationOrderUpdateManager</A>
<DD>Flush the given collection of secondary rows.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html#flush(org.apache.openjpa.jdbc.sql.RowImpl)"><B>flush(RowImpl)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html" title="interface in org.apache.openjpa.jdbc.kernel">PreparedStatementManager</A>
<DD>Flush the given row.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html#flush()"><B>flush()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html" title="interface in org.apache.openjpa.jdbc.kernel">PreparedStatementManager</A>
<DD>This method must be called after the last row has been
 flushed, to flush any remaining statements.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#flush(org.apache.openjpa.jdbc.sql.RowImpl)"><B>flush(RowImpl)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html#flush(java.util.Collection, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>flush(Collection, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel">UpdateManager</A>
<DD>Flush the given instances to the data store.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#flush(java.sql.PreparedStatement, org.apache.openjpa.jdbc.sql.DBDictionary, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>flush(PreparedStatement, DBDictionary, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Flush the row's values to the given prepared statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#flush(java.sql.PreparedStatement, int, org.apache.openjpa.jdbc.sql.DBDictionary, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>flush(PreparedStatement, int, DBDictionary, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Flush the row's values to the given prepared statement.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#flush()"><B>flush()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Flush all transactional instances to the data store.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#flush(int)"><B>flush(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Flush the transactional state to the data store.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#flush(java.util.Collection)"><B>flush(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#flush(java.util.Collection)"><B>flush(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Flush the given state manager collection to the datastore, returning
 a collection of exceptions encountered during flushing.
<DT><A HREF="./org/apache/openjpa/lib/log/LogOutputStream.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogOutputStream.html" title="class in org.apache.openjpa.lib.log">LogOutputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#flush(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>flush(Collection, Collection, Collection, Collection, Collection)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#FLUSH_COMMIT"><B>FLUSH_COMMIT</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Flush in preparation of commit.
<DT><A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_FALSE"><B>FLUSH_FALSE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html" title="interface in org.apache.openjpa.kernel">QueryFlushModes</A>
<DD>Constant denoting that queries should never flush data
 to the database automatically before executing a query, but
 should instead execute queries in-memory if necessary.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#FLUSH_INC"><B>FLUSH_INC</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Incremental flush.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#FLUSH_LOGICAL"><B>FLUSH_LOGICAL</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Run persistence-by-reachability and other flush-time operations without
 accessing the database.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#FLUSH_ROLLBACK"><B>FLUSH_ROLLBACK</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Flush to check consistency of cache, then immediately rollback changes.
<DT><A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_TRUE"><B>FLUSH_TRUE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html" title="interface in org.apache.openjpa.kernel">QueryFlushModes</A>
<DD>Constant denoting that queries should flush data to the
 database automatically whenever OpenJPA determines that relevant
 modifications have been made and IgnoreCache is
 <code>false</code>.
<DT><A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_WITH_CONNECTION"><B>FLUSH_WITH_CONNECTION</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html" title="interface in org.apache.openjpa.kernel">QueryFlushModes</A>
<DD>Constant denoting that queries should flush data to the
 database automatically when OpenJPA determines that relevant
 modifications have been made and the current
 context already has a dedicated connection.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#flushAllRows(org.apache.openjpa.jdbc.sql.Row)"><B>flushAllRows(Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html#flushAllRows(org.apache.openjpa.jdbc.sql.Row)"><B>flushAllRows(Row)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql">RowManager</A>
<DD>Flush the logical row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#flushAllRows(org.apache.openjpa.jdbc.sql.Row)"><B>flushAllRows(Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#flushBeforeQueries"><B>flushBeforeQueries</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#flushGraph(org.apache.openjpa.lib.graph.Graph, org.apache.openjpa.jdbc.kernel.PreparedStatementManager, boolean)"><B>flushGraph(Graph, PreparedStatementManager, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>Flush the given graph of rows in the proper order.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#flushInternal(org.apache.openjpa.jdbc.sql.RowImpl)"><B>flushInternal(RowImpl)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>Flush the given row.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#flushQuery"><B>flushQuery</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#flushSecondaryRow(org.apache.openjpa.jdbc.sql.Row)"><B>flushSecondaryRow(Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html#flushSecondaryRow(org.apache.openjpa.jdbc.sql.Row)"><B>flushSecondaryRow(Row)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql">RowManager</A>
<DD>Flush the secondary row; after flushing the row is available for reuse.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#flushSecondaryRow(org.apache.openjpa.jdbc.sql.Row)"><B>flushSecondaryRow(Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/FlushTransactionListener.html" title="interface in org.apache.openjpa.event"><B>FlushTransactionListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Notified on transaction flush.<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_ALL"><B>FORCE_LOAD_ALL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_DFG"><B>FORCE_LOAD_DFG</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_NONE"><B>FORCE_LOAD_NONE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_REFRESH"><B>FORCE_LOAD_REFRESH</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#FORCE_OUTER"><B>FORCE_OUTER</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Initialization flag indicating to force an outer join into any relation 
 path.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema"><B>ForeignKey</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a database foreign key; may be a logical key with no
 database representation.<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ForeignKey()"><B>ForeignKey()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#ForeignKey(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>ForeignKey(String, Table)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ForeignKey.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>ForeignKey</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Foreign key definition.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ForeignKeyAction.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>ForeignKeyAction</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Foreign key actions.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#foreignKeys"><B>foreignKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#foreignKeys"><B>foreignKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#format"><B>format</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#format"><B>format</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#formatMessage(short, java.lang.String, java.lang.Throwable)"><B>formatMessage(short, String, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>Convert <code>message</code> into a string ready to be written to
 the log.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util"><B>FormatPreservingProperties</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A specialization of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html" title="class or interface in java.util"><CODE>Properties</CODE></A> that stores its contents
 in the same order and with the same formatting as was used to read
 the contents from an input stream.<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#FormatPreservingProperties()"><B>FormatPreservingProperties()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#FormatPreservingProperties(java.util.Properties)"><B>FormatPreservingProperties(Properties)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.DuplicateKeyException.html" title="class in org.apache.openjpa.lib.util"><B>FormatPreservingProperties.DuplicateKeyException</B></A> - Exception in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.DuplicateKeyException.html#FormatPreservingProperties.DuplicateKeyException(java.lang.String, java.lang.Object, java.lang.String)"><B>FormatPreservingProperties.DuplicateKeyException(String, Object, String)</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.DuplicateKeyException.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties.DuplicateKeyException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#forPackage(java.lang.Class)"><B>forPackage(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return a Localizer instance that will access the properties file
 in the package of the given class using the system default locale.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#forPackage(java.lang.Class, java.util.Locale)"><B>forPackage(Class, Locale)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return a Localizer instance that will access the properties file
 in the package of the given class using the given locale.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#forType(int)"><B>forType(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Return the proper type for the given <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#forUpdateClause"><B>forUpdateClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>FoxProDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Visual FoxPro via DataDirect SequeLink
 and DataDirect ODBC FoxPro driver.<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#FoxProDictionary()"><B>FoxProDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#free()"><B>free()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#free()"><B>free()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Free the resources used by this persistence manager.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#FROM_SELECT_ALIAS"><B>FROM_SELECT_ALIAS</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>The alias to use for the from select, if any.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html#fromConnectionConstant(int)"><B>fromConnectionConstant(int)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html" title="enum in org.apache.openjpa.persistence.jdbc">IsolationLevel</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html#fromEnumSet(java.util.EnumSet)"><B>fromEnumSet(EnumSet&lt;AutoDetachType&gt;)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence">AutoDetachType</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#fromOpenJPAObjectId(java.lang.Object)"><B>fromOpenJPAObjectId(Object)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Translate from a OpenJPA identity object to a Persistence one.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#fromOpenJPAObjectIdClass(java.lang.Class)"><B>fromOpenJPAObjectIdClass(Class)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Translate from a OpenJPA identity class to a native one.
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#fromPKValues(java.lang.Object[], org.apache.openjpa.meta.ClassMetaData)"><B>fromPKValues(Object[], ClassMetaData)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>Return a new object id constructed from the given primary key values.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#fromProperties(java.util.Map)"><B>fromProperties(Map)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Set this Configuration via the given map.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#fromProperties(java.util.Map)"><B>fromProperties(Map)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#fromUserProperties(java.util.Map)"><B>fromUserProperties(Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>Load the given user-supplied map of properties into this persistence
 unit.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>FullClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for when the class maps all fields to its own table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#FullClassStrategy()"><B>FullClassStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#fullClone(int)"><B>fullClone(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#fullClone(int)"><B>fullClone(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return a SELECT that is a complete clone of this one.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#fullClone(int)"><B>fullClone(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#GENERAL"><B>GENERAL</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util"><B>GeneralException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>General exception type.<DT><A HREF="./org/apache/openjpa/util/GeneralException.html#GeneralException()"><B>GeneralException()</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util">GeneralException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/GeneralException.html#GeneralException(java.lang.String)"><B>GeneralException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util">GeneralException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/GeneralException.html#GeneralException(org.apache.openjpa.lib.util.Localizer.Message)"><B>GeneralException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util">GeneralException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/GeneralException.html#GeneralException(java.lang.Throwable)"><B>GeneralException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util">GeneralException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/GeneralException.html#GeneralException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>GeneralException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util">GeneralException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#generateAnnotations"><B>generateAnnotations</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#generateClass(java.lang.String, java.lang.Class)"><B>generateClass(String, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Generate a new class with the given name.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#generateCode()"><B>generateCode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Writes the generated code to the proper directory.
<DT><A HREF="./org/apache/openjpa/util/GeneratedClasses.html" title="class in org.apache.openjpa.util"><B>GeneratedClasses</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utility methods when generating classes, including at runtime.<DT><A HREF="./org/apache/openjpa/util/GeneratedClasses.html#GeneratedClasses()"><B>GeneratedClasses()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneratedClasses.html" title="class in org.apache.openjpa.util">GeneratedClasses</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData)"><B>generateFieldValue(StoreContext, FieldMetaData)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Generate a value for the given metadata, or return null.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateForeignKeys(java.lang.String, java.lang.String[])"><B>generateForeignKeys(String, String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generate foreign key information for the given schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateForeignKeys(java.lang.String, java.lang.String, java.sql.Connection, java.sql.DatabaseMetaData)"><B>generateForeignKeys(String, String, Connection, DatabaseMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generates table foreign keys.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#generateIdentityValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData, int)"><B>generateIdentityValue(StoreContext, ClassMetaData, int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Generate a value for the given metadata, or return null.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateIndexes(java.lang.String, java.lang.String[])"><B>generateIndexes(String, String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generate index information for the given schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateIndexes(java.lang.String, java.lang.String, java.sql.Connection, java.sql.DatabaseMetaData)"><B>generateIndexes(String, String, Connection, DatabaseMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generates table indexes.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#generatePCData(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>generatePCData(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Return a <A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><CODE>PCDataGenerator.DynamicPCData</CODE></A> instance for the given oid and metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generatePrimaryKeys(java.lang.String, java.lang.String[])"><B>generatePrimaryKeys(String, String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generate primary key information for the given schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generatePrimaryKeys(java.lang.String, java.lang.String, java.sql.Connection, java.sql.DatabaseMetaData)"><B>generatePrimaryKeys(String, String, Connection, DatabaseMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generates table primary keys.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#generateProxyBeanBytecode(java.lang.Class, boolean)"><B>generateProxyBeanBytecode(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Generate the bytecode for a bean proxy for the given type.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#generateProxyCalendarBytecode(java.lang.Class, boolean)"><B>generateProxyCalendarBytecode(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Generate the bytecode for a calendar proxy for the given type.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#generateProxyCollectionBytecode(java.lang.Class, boolean)"><B>generateProxyCollectionBytecode(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Generate the bytecode for a collection proxy for the given type.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#generateProxyDateBytecode(java.lang.Class, boolean)"><B>generateProxyDateBytecode(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Generate the bytecode for a date proxy for the given type.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#generateProxyMapBytecode(java.lang.Class, boolean)"><B>generateProxyMapBytecode(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Generate the bytecode for a map proxy for the given type.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateSchema(java.lang.String, java.lang.String[])"><B>generateSchema(String, String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Add a fully-constructed <A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>Schema</CODE></A> matching the given database
 schema to the current group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateSchemas()"><B>generateSchemas()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generate all schemas set in the configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateSchemas(java.lang.String[])"><B>generateSchemas(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Generate the schemas and/or tables named in the given strings.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateSequences(java.lang.String, java.lang.String, java.sql.Connection, java.sql.DatabaseMetaData)"><B>generateSequences(String, String, Connection, DatabaseMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Adds all sequences matching the given name pattern to the schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#generateSQL(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>generateSQL(DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#generateSQL(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>generateSQL(DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Generate the SQL for this row; the result of this method is cached.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#generateSQL(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>generateSQL(DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#generateStorage(int[], java.lang.Object)"><B>generateStorage(int[], Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Generate a generic <A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance"><CODE>DynamicStorage</CODE></A> instance with the given
 array of <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> constants and the given object as
 the user key for generation.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#generateTables(java.lang.String, java.lang.String, java.sql.Connection, java.sql.DatabaseMetaData)"><B>generateTables(String, String, Connection, DatabaseMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Adds all tables matching the given name pattern to the schema.
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence"><B>Generator</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Represents a store sequence.<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence"><B>GeneratorImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Represents a store sequence.<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#GeneratorImpl(org.apache.openjpa.kernel.Seq, java.lang.String, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>GeneratorImpl(Seq, String, StoreContext, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/lib/conf/GenericConfigurable.html" title="interface in org.apache.openjpa.lib.conf"><B>GenericConfigurable</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Implementations of this interface may perform additional
 generic configuration with any key-value pairs that cannot be set
 into the object via the normal 
 <A HREF="./org/apache/openjpa/lib/util/Options.html#setInto(java.lang.Object)"><CODE>Options.setInto(java.lang.Object)</CODE></A> means.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel"><B>GenericResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Object provider implementation wrapped around a generic <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#GenericResultObjectProvider(java.lang.Class, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>GenericResultObjectProvider(Class, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#GenericResultObjectProvider(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>GenericResultObjectProvider(ClassMapping, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html#get(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>get(ConfigurationProvider)</B></A> - 
Static method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html" title="class in org.apache.openjpa.conf">BrokerFactoryValue</A>
<DD>Extract the value of this property if set in the given provider.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#get(org.apache.openjpa.datacache.QueryKey)"><B>get(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Return the cached object for the given oid.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#get(org.apache.openjpa.datacache.QueryKey)"><B>get(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#get(org.apache.openjpa.datacache.QueryKey)"><B>get(QueryKey)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Return a list of oids for the given query key.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery.CachedList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#get(java.lang.Object, java.lang.reflect.Field)"><B>get(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#get(java.lang.Object, java.lang.reflect.Method)"><B>get(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.ForeignKeyDefaults.html#get(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>get(Table, Table, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.ForeignKeyDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingInfo.ForeignKeyDefaults</A>
<DD>Return a default foreign key for the given tables, or null to
 create a logical foreign key only.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.TableDefaults.html#get(org.apache.openjpa.jdbc.schema.Schema)"><B>get(Schema)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.TableDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingInfo.TableDefaults</A>
<DD>Return the default table name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Path.html#get(org.apache.openjpa.meta.FieldMetaData, boolean)"><B>get(FieldMetaData, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Path.html" title="interface in org.apache.openjpa.kernel.exps">Path</A>
<DD>Traverse into the given field of the current object, and update
 the current object to that field value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Path.html#get(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.XMLMetaData)"><B>get(FieldMetaData, XMLMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Path.html" title="interface in org.apache.openjpa.kernel.exps">Path</A>
<DD>Traverse into the given field that maps to xml column, and update
 the current object to that field value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Path.html#get(org.apache.openjpa.meta.XMLMetaData, java.lang.String)"><B>get(XMLMetaData, String)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Path.html" title="interface in org.apache.openjpa.kernel.exps">Path</A>
<DD>Traverse into the gevin xpath name of the current object, and update
 the current object to that xpath field.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#get()"><B>get()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns the value to which the specified key is mapped in this identity
 hash map, or <tt>null</tt> if the map contains no mapping for this key.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns the value to which this HashMap maps the specified key.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string matching the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#get(java.lang.String, java.lang.Object)"><B>get(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string matching the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#get(java.lang.String, java.lang.Object, java.lang.Object)"><B>get(String, Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string for the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#get(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>get(String, Object, Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string for the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#get(java.lang.String, java.lang.Object[])"><B>get(String, Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string matching the given key.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#get(java.lang.Object, org.apache.openjpa.meta.FieldMetaData)"><B>get(Object, FieldMetaData)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>Return the given primary key field value from the given oid.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getAbsoluteFileAction(java.io.File)"><B>getAbsoluteFileAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.getAbsoluteFile().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getAbsolutePathAction(java.io.File)"><B>getAbsolutePathAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.getAbsolutePath().
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getAccessPath()"><B>getAccessPath()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Return the recorded query access path.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getAccessPathMetaDatas(org.apache.openjpa.kernel.StoreQuery)"><B>getAccessPathMetaDatas(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getAccessPathMetaDatas()"><B>getAccessPathMetaDatas()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getAccessPathMetaDatas()"><B>getAccessPathMetaDatas()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the classes that affect this query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getAccessPathMetaDatas()"><B>getAccessPathMetaDatas()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getAccessPathMetaDatas(org.apache.openjpa.kernel.StoreQuery)"><B>getAccessPathMetaDatas(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return an array of all persistent classes used in this query, or
 empty array if unknown.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getAccessType()"><B>getAccessType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use field or property-based access on generated code.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getAccessType(org.apache.openjpa.meta.ClassMetaData)"><B>getAccessType(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Return the access type of the given metadata.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getAccessType()"><B>getAccessType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The access type used by this class.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#getAccessType(org.apache.openjpa.meta.ClassMetaData)"><B>getAccessType(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#getAccessUnloaded()"><B>getAccessUnloaded()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to allow access to unloaded detached fields.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getAction()"><B>getAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The action supplied on construction.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getAction(java.lang.String)"><B>getAction(String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the foreign key action constant for the given action name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getAction()"><B>getAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>The action supplied on construction.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#getAction()"><B>getAction()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Return the action for this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getAction()"><B>getAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#getAction()"><B>getAction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Return the action constant to use during relationship checking.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#getAction()"><B>getAction()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The action supplied on construction.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getActionName(int)"><B>getActionName(int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the foreign key action name for the given action constant.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getAddColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getAddColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to add the given column to
 its table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getAddColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getAddColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getAddColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getAddColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getAddDefaultConstructor()"><B>getAddDefaultConstructor()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>A boolean indicating whether the enhancer should add a no-args
 constructor if one is not already present in the class.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#getAdded()"><B>getAdded()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getAdded()"><B>getAdded()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getAdded()"><B>getAdded()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#getAdded()"><B>getAdded()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>Return the collection of values that need to be added to the managed
 container.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getAddForeignKeySQL(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getAddForeignKeySQL(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to add the given foreign key to
 its table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#getAddForeignKeySQL(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getAddForeignKeySQL(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#getAddForeignKeySQL(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getAddForeignKeySQL(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getAdditionalBeanInfo()"><B>getAdditionalBeanInfo()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getAddNullIndicator()"><B>getAddNullIndicator()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to add a synthetic null indicator column to embedded mappings
 by default.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getAddPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to add the given primary key to
 its table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getAddPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getAddPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getAddPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getAddPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#getAddWhitespaceAfterDelimiter()"><B>getAddWhitespaceAfterDelimiter()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>If set to <code>true</code>, this properties object will add a
 space after the delimiter character(if the delimiter is not
 the space character).
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getAfterSection()"><B>getAfterSection()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return {#getLinesBetweenSections} + 1 new line characters.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Resolver.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Resolver.html" title="interface in org.apache.openjpa.kernel.exps">Resolver</A>
<DD>Return the function listener for the given tag, or null if none.
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the filter listener for the given tag, or null.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#getAggregateListener(java.lang.String)"><B>getAggregateListener(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Return the standard filter listener for the given tag, or null.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getAggregateListenerInstances()"><B>getAggregateListenerInstances()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the query function listeners.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getAggregateListenerInstances()"><B>getAggregateListenerInstances()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getAggregateListeners()"><B>getAggregateListeners()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A comma-separted list of the plugin strings of the query
 <A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>AggregateListener</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getAggregateListeners()"><B>getAggregateListeners()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getAggregateListeners()"><B>getAggregateListeners()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getAggregateListeners()"><B>getAggregateListeners()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The set of aggregate listeners.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getAggregateListeners()"><B>getAggregateListeners()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Return the alias of this strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FlatClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">TimestampVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#getAlias(java.lang.Object)"><B>getAlias(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Returns the alias of a given id.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getAlias(org.apache.openjpa.kernel.StoreQuery)"><B>getAlias(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getAlias()"><B>getAlias()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>If this query is not a projection but places candidate results into a
 result class under an alias, return that alias.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getAlias()"><B>getAlias()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getAlias(org.apache.openjpa.kernel.StoreQuery)"><B>getAlias(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>If this is not a projection but the candidate results are placed
 into a result class with an alias, return that alias.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getAlias1()"><B>getAlias1()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getAlias2()"><B>getAlias2()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getAliases()"><B>getAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#getAliases(boolean, boolean)"><B>getAliases(boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>A list representation of the aliases, in select order, with
 AS aliases present.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getAliases()"><B>getAliases()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Aliases for the value in the form key1, value1, key2, value2, ...
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#getAliasList()"><B>getAliasList()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#getAll(java.util.List)"><B>getAll(List)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Returns the objects for the given key List.
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#getAll(java.util.List)"><B>getAll(List)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>returns objects from the caches for a given list of keys
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#getAll(java.util.List)"><B>getAll(List)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#getAllocate()"><B>getAllocate()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getAllocate()"><B>getAllocate()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Return the number of sequences to allocate for each update of the
 sequence table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getAllocate()"><B>getAllocate()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's cache size.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getAllocate()"><B>getAllocate()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Sequence values to allocate, or -1 for default.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#getAllowDuplicates()"><B>getAllowDuplicates()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>If set to <code>true</code>, duplicate properties are allowed, and
 the last property setting in the input will overwrite any previous
 settings.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#getAllowsMultipleMethodsForSameCallback()"><B>getAllowsMultipleMethodsForSameCallback()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>Flags if multiple methods of the same class can handle the same 
 callback event.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getAllRowDeletes()"><B>getAllRowDeletes()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getAllRowDeletes()"><B>getAllRowDeletes()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return any 'all row' deletes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getAllRows(org.apache.openjpa.jdbc.schema.Table, int)"><B>getAllRows(Table, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html#getAllRows(org.apache.openjpa.jdbc.schema.Table, int)"><B>getAllRows(Table, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql">RowManager</A>
<DD>Return a logical row representing an update that should be made to
 all rows of the given table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getAllRows(org.apache.openjpa.jdbc.schema.Table, int)"><B>getAllRows(Table, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getAllRowUpdates()"><B>getAllRowUpdates()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getAllRowUpdates()"><B>getAllRowUpdates()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return any 'all row' updates.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getAnnotationParser()"><B>getAnnotationParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Return metadata parser, creating it if it does not already exist.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getAnnotationParser()"><B>getAnnotationParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>The annotation parser.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html#getAnnotationsAction(java.lang.reflect.AnnotatedElement)"><B>getAnnotationsAction(AnnotatedElement)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html" title="class in org.apache.openjpa.lib.util">J2DoPriv5Helper</A>
<DD>Return a PrivilegeAction object for AnnotatedElement.getAnnotations().
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getAnnotationsForMeta(java.lang.Object)"><B>getAnnotationsForMeta(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Returns a list of stringified annotations for specified meta.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getArray(java.lang.Object)"><B>getArray(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getArray(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getArray(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getArray(java.sql.ResultSet, int)"><B>getArray(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getArray(java.lang.Object)"><B>getArray(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getArray(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getArray(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getArray(java.lang.Object)"><B>getArray(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getArray(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getArray(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getArray(int)"><B>getArray(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getArray(java.lang.String)"><B>getArray(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getArray(int)"><B>getArray(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getArray(java.lang.String)"><B>getArray(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getArrayInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getArrayInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getArrayInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getArrayInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getAscending(org.apache.openjpa.kernel.StoreQuery)"><B>getAscending(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getAscending(org.apache.openjpa.kernel.StoreQuery)"><B>getAscending(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return the ordering direction for all ordering clauses, or empty
 array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getAsciiStream(java.lang.Object)"><B>getAsciiStream(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getAsciiStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getAsciiStream(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getAsciiStream(java.sql.ResultSet, int)"><B>getAsciiStream(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getAsciiStream(java.lang.Object)"><B>getAsciiStream(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getAsciiStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getAsciiStream(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getAsciiStream(java.lang.Object)"><B>getAsciiStream(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getAsciiStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getAsciiStream(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getAsciiStream(int)"><B>getAsciiStream(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getAsciiStream(java.lang.String)"><B>getAsciiStream(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getAsciiStreamInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getAsciiStreamInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getAsciiStreamInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getAsciiStreamInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#getAssertAllowedType()"><B>getAssertAllowedType()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Whether to perform runtime checks to ensure that all elements
 added to collection and map proxies are the proper element/key/value
 type as defined by the metadata.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#getAssociatedEvent()"><B>getAssociatedEvent()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Return the associated <A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>JDBCEvent</CODE></A> for this event.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getAttributes(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getAttributes(String, String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>The current attributes.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getAutoAssignedColumns()"><B>getAutoAssignedColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return this table's auto-assigned columns.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether instances clear their state when entering a transaction.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether objects clear when entering transactions.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getAutoClear()"><B>getAutoClear()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to clear state when entering a transaction.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getAutoClearConstant()"><B>getAutoClearConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/kernel/AutoClear.html" title="interface in org.apache.openjpa.kernel"><CODE>AutoClear</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getAutoClearConstant()"><B>getAutoClearConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#getAutoCommit()"><B>getAutoCommit()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>Whether auto commit should be on.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getAutoCommit()"><B>getAutoCommit()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A comma-separated list of events which trigger auto-detachment
 in place of managed states.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Bit flags marked in <A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel"><CODE>AutoDetach</CODE></A> which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getAutoDetach()"><B>getAutoDetach()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence"><CODE>AutoDetachType</CODE></A> values which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getAutoDetachConstant()"><B>getAutoDetachConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel"><CODE>AutoDetach</CODE></A> flags.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getAutoDetachConstant()"><B>getAutoDetachConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getAutoDistinct()"><B>getAutoDistinct()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getAutoDistinct()"><B>getAutoDistinct()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#getAutoDistinct()"><B>getAutoDistinct()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether to automatically make results distinct when relational joins
 would otherwise introduce duplicates.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getAutoDistinct()"><B>getAutoDistinct()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#getAutoOff()"><B>getAutoOff()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Whether to automatically stop tracking when the number of changes
 exceeds the container size.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getAuxiliaryEnhancers()"><B>getAuxiliaryEnhancers()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Gets the auxiliary enhancers registered as <A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util"><CODE>services</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getBackingMember(org.apache.openjpa.meta.FieldMetaData)"><B>getBackingMember(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getBackingMember()"><B>getBackingMember()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return the backing member supplied in <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#backingMember(java.lang.reflect.Member)"><CODE>FieldMetaData.backingMember(java.lang.reflect.Member)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#getBackingMember(org.apache.openjpa.meta.FieldMetaData)"><B>getBackingMember(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Return the backing member for the given field metadata.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getBackingMember(org.apache.openjpa.meta.FieldMetaData)"><B>getBackingMember(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getBaseClassStrategy()"><B>getBaseClassStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base class strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBaseMapping()"><B>getBaseMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBaseMapping()"><B>getBaseMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBaseMapping()"><B>getBaseMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>If this is the result of a UNION used to select a hierarchy of
 mappings, the base mapping represented by the current row.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getBCClassFieldsAction(serp.bytecode.BCClass, java.lang.String)"><B>getBCClassFieldsAction(BCClass, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for BCClass.getFields().
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getBeanDescriptor()"><B>getBeanDescriptor()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getBestRowIdentifier(java.lang.String, java.lang.String, java.lang.String, int, boolean)"><B>getBestRowIdentifier(String, String, String, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBigDecimal(java.lang.Object)"><B>getBigDecimal(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBigDecimal(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigDecimal(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBigDecimal(java.sql.ResultSet, int)"><B>getBigDecimal(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBigDecimal(java.lang.Object)"><B>getBigDecimal(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBigDecimal(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigDecimal(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBigDecimal(java.lang.Object)"><B>getBigDecimal(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBigDecimal(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigDecimal(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBigDecimal(int, int)"><B>getBigDecimal(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBigDecimal(int)"><B>getBigDecimal(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBigDecimal(java.lang.String)"><B>getBigDecimal(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBigDecimal(int, int)"><B>getBigDecimal(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBigDecimal(java.lang.String, int)"><B>getBigDecimal(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBigDecimal(int)"><B>getBigDecimal(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBigDecimal(java.lang.String)"><B>getBigDecimal(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBigDecimalInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigDecimalInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getBigDecimalInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigDecimalInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBigInteger(java.lang.Object)"><B>getBigInteger(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBigInteger(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigInteger(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBigInteger(java.sql.ResultSet, int)"><B>getBigInteger(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBigInteger(java.lang.Object)"><B>getBigInteger(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBigInteger(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigInteger(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBigInteger(java.lang.Object)"><B>getBigInteger(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBigInteger(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigInteger(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBigIntegerInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigIntegerInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getBigIntegerInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBigIntegerInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBinaryStream(java.lang.Object)"><B>getBinaryStream(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBinaryStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBinaryStream(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBinaryStream(java.sql.ResultSet, int)"><B>getBinaryStream(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBinaryStream(java.lang.Object)"><B>getBinaryStream(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBinaryStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBinaryStream(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBinaryStream(java.lang.Object)"><B>getBinaryStream(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBinaryStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBinaryStream(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBinaryStream(int)"><B>getBinaryStream(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBinaryStream(java.lang.String)"><B>getBinaryStream(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBinaryStreamInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBinaryStreamInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getBinaryStreamInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBinaryStreamInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBlob(java.lang.Object)"><B>getBlob(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBlob(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBlob(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBlob(java.sql.ResultSet, int)"><B>getBlob(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBlob(java.lang.Object)"><B>getBlob(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBlob(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBlob(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBlob(java.lang.Object)"><B>getBlob(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBlob(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBlob(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBlob(int)"><B>getBlob(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBlob(java.lang.String)"><B>getBlob(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBlob(int)"><B>getBlob(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBlob(java.lang.String)"><B>getBlob(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getBlobAsObject()"><B>getBlobAsObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to reverse-map blob columns as containing serialized Java
 objects, rather than the default of using a byte[] field.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBlobInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBlobInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getBlobInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBlobInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBlobObject(java.sql.ResultSet, int, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getBlobObject(ResultSet, int, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getBlobObject(java.sql.ResultSet, int, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getBlobObject(ResultSet, int, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getBoolean(int)"><B>getBoolean(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the boolean at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getBoolean(java.lang.Object, java.lang.reflect.Field)"><B>getBoolean(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getBoolean(java.lang.Object, java.lang.reflect.Method)"><B>getBoolean(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBoolean(java.lang.Object)"><B>getBoolean(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBoolean(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBoolean(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBoolean(java.sql.ResultSet, int)"><B>getBoolean(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBoolean(java.lang.Object)"><B>getBoolean(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBoolean(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBoolean(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBoolean(java.lang.Object)"><B>getBoolean(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBoolean(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBoolean(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBoolean(int)"><B>getBoolean(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBoolean(java.lang.String)"><B>getBoolean(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBoolean(int)"><B>getBoolean(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBoolean(java.lang.String)"><B>getBoolean(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getBooleanExtension(java.lang.String)"><B>getBooleanExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as a boolean.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getBooleanExtension(java.lang.String, java.lang.String)"><B>getBooleanExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as a boolean.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBooleanInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBooleanInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getBooleanInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBooleanInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#getBooleanProperty(java.lang.String, java.lang.String, boolean)"><B>getBooleanProperty(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/Options.html#getBooleanProperty(java.lang.String, java.lang.String, boolean)"><CODE>Options.getBooleanProperty(java.lang.String, java.lang.String, boolean)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getBooleanProperty(java.lang.String)"><B>getBooleanProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a boolean, or false if
 it does not exist and has no set default.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getBooleanProperty(java.lang.String, boolean)"><B>getBooleanProperty(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a boolean, or the given
 default if it does not exist.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getBraceAtSameTabLevel()"><B>getBraceAtSameTabLevel()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place braces at the same tab level as the code within
 the block.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getBraceOnSameLine()"><B>getBraceOnSameLine()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place opening braces on the same line as the
 block declaration, or on the next line.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#getBroker()"><B>getBroker()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>The broker that generated the extent.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Return the Broker associated with this savepoint.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#getBroker()"><B>getBroker()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>The broker that generated this query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getBroker()"><B>getBroker()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the broker for this context, if possible.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getBroker()"><B>getBroker()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>Broker delegate.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A> class to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event">BrokerFactoryEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Bootstrap.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Bootstrap.html" title="class in org.apache.openjpa.kernel">Bootstrap</A>
<DD>Return a pooled factory for the default configuration.
<DT><A HREF="./org/apache/openjpa/kernel/Bootstrap.html#getBrokerFactory(org.apache.openjpa.lib.conf.ConfigurationProvider, java.lang.ClassLoader)"><B>getBrokerFactory(ConfigurationProvider, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Bootstrap.html" title="class in org.apache.openjpa.kernel">Bootstrap</A>
<DD>Return a pooled factory for the given configuration.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return the factory that produced this broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getBrokerFactory()"><B>getBrokerFactory()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getBrokerFactoryEventManager()"><B>getBrokerFactoryEventManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/event/BrokerFactoryEventManager.html" title="class in org.apache.openjpa.event"><CODE>BrokerFactoryEventManager</CODE></A>
 associated with this configuration.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getBrokerFactoryEventManager()"><B>getBrokerFactoryEventManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getBrokerImpl()"><B>getBrokerImpl()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string of the <A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel"><CODE>BrokerImpl</CODE></A> extension to create.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getBrokerImpl()"><B>getBrokerImpl()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getBuffer()"><B>getBuffer()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return the internal code buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#getBulkUpdateValues()"><B>getBulkUpdateValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#getBulkUpdateValues()"><B>getBulkUpdateValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html#getBulkUpdateValues()"><B>getBulkUpdateValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html#getBulkUpdateValues()"><B>getBulkUpdateValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">TimestampVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getBulkUpdateValues()"><B>getBulkUpdateValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#getBulkUpdateValues()"><B>getBulkUpdateValues()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getByNameAction(java.lang.String)"><B>getByNameAction(String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for InetAdress.getByName().
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getByte(int)"><B>getByte(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the byte at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getByte(java.lang.Object, java.lang.reflect.Field)"><B>getByte(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getByte(java.lang.Object, java.lang.reflect.Method)"><B>getByte(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getByte(java.lang.Object)"><B>getByte(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getByte(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getByte(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getByte(java.sql.ResultSet, int)"><B>getByte(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getByte(java.lang.Object)"><B>getByte(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getByte(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getByte(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getByte(java.sql.ResultSet, int)"><B>getByte(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getByte(java.lang.Object)"><B>getByte(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getByte(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getByte(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getByte(int)"><B>getByte(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getByte(java.lang.String)"><B>getByte(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getByte(int)"><B>getByte(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getByte(java.lang.String)"><B>getByte(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getBytecodeWriter()"><B>getBytecodeWriter()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Return the current <A HREF="./org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><CODE>BytecodeWriter</CODE></A> to write to or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getByteInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getByteInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getByteInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getByteInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBytes(java.lang.Object)"><B>getBytes(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBytes(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBytes(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getBytes(java.sql.ResultSet, int)"><B>getBytes(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBytes(java.lang.Object)"><B>getBytes(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getBytes(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBytes(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBytes(java.lang.Object)"><B>getBytes(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getBytes(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getBytes(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBytes(int)"><B>getBytes(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getBytes(java.lang.String)"><B>getBytes(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBytes(int)"><B>getBytes(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getBytes(java.lang.String)"><B>getBytes(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getBytesInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBytesInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getBytesInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getBytesInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#getCache()"><B>getCache()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>Return the <A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache"><CODE>QueryCache</CODE></A> that this object is associated with.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getCachedMetaData(java.lang.Class)"><B>getCachedMetaData(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the cached metadata for the given class, without any resolution.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getCachedQueryMetaData(java.lang.Class, java.lang.String)"><B>getCachedQueryMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the cached query metadata for the given name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getCachedQueryResultMapping(java.lang.Class, java.lang.String)"><B>getCachedQueryResultMapping(Class, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the cached query result mapping with the given name, or null if
 none.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getCachedSequenceMetaData(java.lang.String)"><B>getCachedSequenceMetaData(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the cached a sequence metadata for the given name.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getCachedXMLMetaData(java.lang.Class)"><B>getCachedXMLMetaData(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the cached XMLClassMetaData for the given class
 Return null if none.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#getCacheMap()"><B>getCacheMap()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>Returns the underlying <A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util"><CODE>CacheMap</CODE></A> that this cache is using.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#getCacheMap()"><B>getCacheMap()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>Returns the underlying <A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util"><CODE>CacheMap</CODE></A> that this cache is using.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#getCacheSize()"><B>getCacheSize()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>Returns the maximum number of unpinned objects to keep hard
 references to.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#getCacheSize()"><B>getCacheSize()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>Returns the maximum number of unpinned objects to keep hard
 references to.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#getCacheSize()"><B>getCacheSize()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The maximum number of hard references to maintain, or -1 for no limit.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCalendar(java.lang.Object)"><B>getCalendar(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCalendar(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getCalendar(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCalendar(java.sql.ResultSet, int)"><B>getCalendar(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getCalendar(java.lang.Object)"><B>getCalendar(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getCalendar(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getCalendar(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getCalendar(java.lang.Object)"><B>getCalendar(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getCalendar(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getCalendar(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCalendarInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getCalendarInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getCalendarInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getCalendarInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#getCallbackMethod()"><B>getCallbackMethod()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>The callback method.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getCallbackMode()"><B>getCallbackMode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#getCallbackMode()"><B>getCallbackMode()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>What to do on lifecycle callback exceptions.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getCallbackMode()"><B>getCallbackMode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#getCallbacks(int)"><B>getCallbacks(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Return all callbacks for the given event type, including superclass
 callbacks if appropriate.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getCallbacksBeforeListeners(int)"><B>getCallbacksBeforeListeners(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#getCallbacksBeforeListeners(int)"><B>getCallbacksBeforeListeners(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>If callbacks are fired before listeners for the given
 event type.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getCallbacksBeforeListeners(int)"><B>getCallbacksBeforeListeners(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Subquery.html#getCandidateAlias()"><B>getCandidateAlias()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Subquery.html" title="interface in org.apache.openjpa.kernel.exps">Subquery</A>
<DD>Return the candidate alias for this subquery.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getCandidateCollection()"><B>getCandidateCollection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getCandidateCollection()"><B>getCandidateCollection()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the candidate collection, or <code>null</code> if an
 extent was specified instead of a collection.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getCandidateCollection()"><B>getCandidateCollection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getCandidateCollection()"><B>getCandidateCollection()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Return the candidate collection, or <code>null</code> if an
 extent was specified instead of a collection.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getCandidateCollection()"><B>getCandidateCollection()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getCandidateExtent()"><B>getCandidateExtent()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#getCandidateExtent()"><B>getCandidateExtent()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Return the candidate extent, or <code>null</code> if a
 collection was specified instead of an extent.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getCandidateExtent()"><B>getCandidateExtent()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getCandidateMetaData(org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.JPQLNode)"><B>getCandidateMetaData(JPQLExpressionBuilder.JPQLNode)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#getCandidateType()"><B>getCandidateType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>The result candidate class.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getCandidateType()"><B>getCandidateType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html#getCandidateType()"><B>getCandidateType()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.ParsedJPQL</A>
<DD>Public for unit testing purposes.
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getCandidateType()"><B>getCandidateType()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the class of the objects that this query will return,
 or <code>null</code> if this information is not available / not relevant.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getCandidateType()"><B>getCandidateType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getCandidateType()"><B>getCandidateType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The query candidate class, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#getCandidateTypeMapping()"><B>getCandidateTypeMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Candidate mapping.
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#getCandidateTypeName()"><B>getCandidateTypeName()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Returns the candidate class name for this query.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getCanonicalPathAction(java.io.File)"><B>getCanonicalPathAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for f.getCanonicalPath().
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getCascadeAttach()"><B>getCascadeAttach()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getCascadeAttach()"><B>getCascadeAttach()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for attach operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getCascadeAttach()"><B>getCascadeAttach()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getCascadeDelete()"><B>getCascadeDelete()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getCascadeDelete()"><B>getCascadeDelete()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for delete operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getCascadeDelete()"><B>getCascadeDelete()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getCascadePersist()"><B>getCascadePersist()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getCascadePersist()"><B>getCascadePersist()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for persist operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getCascadePersist()"><B>getCascadePersist()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getCascadeRefresh()"><B>getCascadeRefresh()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getCascadeRefresh()"><B>getCascadeRefresh()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for refresh operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getCascadeRefresh()"><B>getCascadeRefresh()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#getCastFunction(org.apache.openjpa.jdbc.kernel.exps.Val, java.lang.String)"><B>getCastFunction(Val, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>Return the correct CAST function syntax
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCastFunction(org.apache.openjpa.jdbc.kernel.exps.Val, java.lang.String)"><B>getCastFunction(Val, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Attach CAST to the current function if necessary
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getCatalog()"><B>getCatalog()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCatalogNameForMetadata(java.lang.String)"><B>getCatalogNameForMetadata(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the catalog name that will be used for obtaining information
 from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html" title="class or interface in java.sql"><CODE>DatabaseMetaData</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getCatalogs()"><B>getCatalogs()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getCatalogSeparator()"><B>getCatalogSeparator()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getCatalogTerm()"><B>getCatalogTerm()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#getCause(java.lang.Throwable)"><B>getCause(Throwable)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Return the cause of the given throwable.
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getCause()"><B>getCause()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>Returns the first <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html" title="class or interface in java.lang"><CODE>Throwable</CODE></A> from <A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getNestedThrowables()"><CODE>ExceptionInfo.getNestedThrowables()</CODE></A>
 in order to conform to <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html#getCause()" title="class or interface in java.lang"><CODE>Throwable.getCause()</CODE></A> in Java 1.4+.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#getCause()"><B>getCause()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Returns the first <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html" title="class or interface in java.lang"><CODE>Throwable</CODE></A> from <A HREF="./org/apache/openjpa/util/OpenJPAException.html#getNestedThrowables()"><CODE>OpenJPAException.getNestedThrowables()</CODE></A>
 in order to conform to <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html#getCause()" title="class or interface in java.lang"><CODE>Throwable.getCause()</CODE></A> in Java 1.4+.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#getChanged()"><B>getChanged()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getChanged()"><B>getChanged()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getChanged()"><B>getChanged()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#getChanged()"><B>getChanged()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>Return the set of elements that have changed.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getChangeTracker()"><B>getChangeTracker()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getChangeTracker()"><B>getChangeTracker()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxy.html#getChangeTracker()"><B>getChangeTracker()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxy.html" title="interface in org.apache.openjpa.util">Proxy</A>
<DD>Return the change tracker for this proxy, or null if none.
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#getChannel()"><B>getChannel()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>The channel to log to.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#getChannel()"><B>getChannel()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getChar(int)"><B>getChar(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the char at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getChar(java.lang.Object, java.lang.reflect.Field)"><B>getChar(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getChar(java.lang.Object, java.lang.reflect.Method)"><B>getChar(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getChar(java.lang.Object)"><B>getChar(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getChar(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getChar(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getChar(java.sql.ResultSet, int)"><B>getChar(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getChar(java.lang.Object)"><B>getChar(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getChar(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getChar(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getChar(java.lang.Object)"><B>getChar(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getChar(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getChar(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCharacterStream(java.lang.Object)"><B>getCharacterStream(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCharacterStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharacterStream(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCharacterStream(java.sql.ResultSet, int)"><B>getCharacterStream(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getCharacterStream(java.lang.Object)"><B>getCharacterStream(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getCharacterStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharacterStream(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getCharacterStream(java.lang.Object)"><B>getCharacterStream(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getCharacterStream(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharacterStream(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getCharacterStream(int)"><B>getCharacterStream(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getCharacterStream(java.lang.String)"><B>getCharacterStream(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCharacterStreamInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharacterStreamInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getCharacterStreamInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharacterStreamInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getCharInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getCharInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getCharInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#getChild(int)"><B>getChild(int)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#getChildCount()"><B>getChildCount()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getClass(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Result)"><B>getClass(JDBCStore, ClassMapping, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html#getClass(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Result)"><B>getClass(JDBCStore, ClassMapping, Result)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">DiscriminatorStrategy</A>
<DD>Return the class for the current result row.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#getClass(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Result)"><B>getClass(JDBCStore, ClassMapping, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#getClass(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getClass(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#getClass(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getClass(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>Convert the given discriminator value to the corresponding class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#getClass(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Result)"><B>getClass(JDBCStore, ClassMapping, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#getClass(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Result)"><B>getClass(JDBCStore, ClassMapping, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html#getClass(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Result)"><B>getClass(JDBCStore, ClassMapping, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#getClass(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getClass(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getClassAnnotations()"><B>getClassAnnotations()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return class-level annotations.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#getClassAttributeName()"><B>getClassAttributeName()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>The attribute of the class element that holds the name, or null to
 use the element text.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getClassAttributeName()"><B>getClassAttributeName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getClassCode()"><B>getClassCode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return a code template for the given class, or null to use the standard
 system-generated Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getClassCode(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getClassCode(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getClassCode(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getClassCode(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return a code template for the given class, or null to use the standard
 system-generated Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getClassConditions(Select, Joins, ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html#getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getClassConditions(Select, Joins, ClassMapping, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">DiscriminatorStrategy</A>
<DD>Return SQL to limit the classes selected as much as possible to the
 given base class, and optionally its subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getClassConditions(Select, Joins, ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getClassConditions(Select, Joins, ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getClassConditions(Select, Joins, ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html#getClassConditions(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getClassConditions(Select, Joins, ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#getClassElementDepth()"><B>getClassElementDepth()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>The depth of the class element.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getClassElementDepth()"><B>getClassElementDepth()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#getClassFile(java.lang.Class)"><B>getClassFile(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Return the class file of the given class, or null if the
 class is in a jar.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Classloader for loading driver class, etc.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Returns the class loader that should be used for resolving
 class names (in addition to the resolver in the query).
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the current thread's class loader at the time this context
 was obtained.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Return the classloader to use.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>The class loader with which to load parsed classes.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Classloader to use for class name resolution.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#getClassLoader(int)"><B>getClassLoader(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Return the class loader at the given index.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the current thread's class loader at the time this entity
 manager was obtained from the factory.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ClassResolver.html#getClassLoader(java.lang.Class, java.lang.ClassLoader)"><B>getClassLoader(Class, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util">ClassResolver</A>
<DD>Return a class loader that can be used to load classes and resources.
<DT><A HREF="./org/apache/openjpa/util/ClassResolverImpl.html#getClassLoader(java.lang.Class, java.lang.ClassLoader)"><B>getClassLoader(Class, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ClassResolverImpl.html" title="class in org.apache.openjpa.util">ClassResolverImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html#getClassLoader(java.lang.Class, java.lang.ClassLoader)"><B>getClassLoader(Class, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html" title="class in org.apache.openjpa.util">MultiLoaderClassResolver</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getClassLoaderAction(java.lang.Class)"><B>getClassLoaderAction(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for clazz.getClassloader().
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#getClassLoaders()"><B>getClassLoaders()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Return an array of all contained class loaders.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getClassMapping()"><B>getClassMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>If this is a path to a persistent object, return its class mapping,
 else return null.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getClassMapping()"><B>getClassMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Return the owning mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getClassMapping(org.apache.openjpa.jdbc.schema.Table)"><B>getClassMapping(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the class mapping for the given table, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getClassMapping()"><B>getClassMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Return the owning mapping.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#getClassName(java.lang.Object)"><B>getClassName(Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Return a class name to use for the given user key.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#getClassName(java.lang.Object)"><B>getClassName(Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getClassName()"><B>getClassName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The described class name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getClassName(org.apache.openjpa.jdbc.schema.Table, java.lang.String)"><B>getClassName(Table, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getClassName(org.apache.openjpa.jdbc.schema.Table, java.lang.String)"><B>getClassName(Table, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return the fully-qualified class name to generate for the given table.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#getClassName(java.lang.String)"><B>getClassName(String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Return the class name from the given plugin string, or null if none.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#getClassName()"><B>getClassName()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>The plugin class name.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html#getClassName(java.lang.String)"><B>getClassName(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataSerializer</A>
<DD>Returns the given class name, stripping the package if it is not needed.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#getClassNames()"><B>getClassNames()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>The plugin class names.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getClassResolver()"><B>getClassResolver()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util"><CODE>ClassResolver</CODE></A> to use for custom
 class loading.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getClassResolver()"><B>getClassResolver()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getClassResolverInstance()"><B>getClassResolverInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util"><CODE>ClassResolver</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getClassResolverInstance()"><B>getClassResolverInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#getClauseIndent()"><B>getClauseIndent()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getClientConnection()"><B>getClientConnection()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns <code>null</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getClientConnection()"><B>getClientConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getClientConnection()"><B>getClientConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#getClientConnection()"><B>getClientConnection()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return a connection to the data store suitable for client use.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getClob(java.lang.Object)"><B>getClob(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getClob(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getClob(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getClob(java.sql.ResultSet, int)"><B>getClob(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getClob(java.lang.Object)"><B>getClob(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getClob(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getClob(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getClob(java.lang.Object)"><B>getClob(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getClob(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getClob(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getClob(int)"><B>getClob(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getClob(java.lang.String)"><B>getClob(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getClob(int)"><B>getClob(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getClob(java.lang.String)"><B>getClob(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getClobInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getClobInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getClobInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getClobInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getClobString(java.sql.ResultSet, int)"><B>getClobString(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getClobString(java.sql.ResultSet, int)"><B>getClobString(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getCloseBrace(int)"><B>getCloseBrace(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Close brace string.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getCloseConnection()"><B>getCloseConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Whether to close the backing connection when this result is closed.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getCloseOnManagedCommit()"><B>getCloseOnManagedCommit()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to close the broker when the managed transaction commits.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getCloseParen()"><B>getCloseParen()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Close parentheses string.
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getClosestLevenshteinDistance(java.lang.String, java.lang.String[])"><B>getClosestLevenshteinDistance(String, String[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the candidate string with the closest Levenshtein distance
 to the given string.
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getClosestLevenshteinDistance(java.lang.String, java.util.Collection)"><B>getClosestLevenshteinDistance(String, Collection)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the candidate string with the closest Levenshtein distance
 to the given string.
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getClosestLevenshteinDistance(java.lang.String, java.lang.String[], int)"><B>getClosestLevenshteinDistance(String, String[], int)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the candidate string with the closest Levenshtein distance
 to the given string.
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getClosestLevenshteinDistance(java.lang.String, java.lang.String[], float)"><B>getClosestLevenshteinDistance(String, String[], float)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the candidate string with the closest Levenshtein distance
 to the given string and using the threshold as the specified
 percentage of the length of the candidate string(0.0f-1.0f).
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getClosestLevenshteinDistance(java.lang.String, java.util.Collection, float)"><B>getClosestLevenshteinDistance(String, Collection, float)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the candidate string with the closest Levenshtein distance
 to the given string and using the threshold as the specified
 percentage of the length of the candidate string(0.0f-1.0f).
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getClosestLevenshteinDistance(java.lang.String, java.util.Collection, int)"><B>getClosestLevenshteinDistance(String, Collection, int)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the candidate string with the closest Levenshtein distance
 to the given string.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getCode()"><B>getCode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Return the code generated for the application id, or null
 if invalid class or the <A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#run()"><CODE>ApplicationIdTool.run()</CODE></A> method has not been called.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getCode()"><B>getCode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return the generated code, or null if <A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#generateCode()"><CODE>CodeGenerator.generateCode()</CODE></A> has not
 been called.
<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html#getCode(java.lang.String, java.lang.Object)"><B>getCode(String, Object)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta">UpdateStrategies</A>
<DD>Convert the given strategy name to its constant.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#getCode(java.lang.String, java.lang.Object)"><B>getCode(String, Object)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>Convert the given strategy name to its constant.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getCodeDirectory()"><B>getCodeDirectory()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>The directory to write source to.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getCodeFormat()"><B>getCodeFormat()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The code formatter for the generated Java code.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getCodeFormat()"><B>getCodeFormat()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>The code formatter for the generated Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getCodeFormat()"><B>getCodeFormat()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>The code formatter for the generated Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>GetColumn</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Returns the SQL alias of the named column for use in a query.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#GetColumn()"><B>GetColumn()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getColumn(org.apache.openjpa.jdbc.schema.Column)"><B>getColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the local column joined to the given primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getColumn(java.lang.String)"><B>getColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the column with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column)"><B>getColumnAlias(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Return the alias to use for the given column (this includes the table
 alias prefix, if any).
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getColumnAlias(String, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Return the alias to use for the given column (this includes the table
 alias prefix, if any).
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column)"><B>getColumnAlias(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getColumnAlias(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getColumnAlias(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.sql.Joins)"><B>getColumnAlias(String, Table, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column)"><B>getColumnAlias(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the alias for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getColumnAlias(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the alias for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getColumnAlias(String, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the alias for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.sql.Joins)"><B>getColumnAlias(String, Table, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the alias for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column)"><B>getColumnAlias(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getColumnAlias(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getColumnAlias(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getColumnAlias(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getColumnAlias(java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.sql.Joins)"><B>getColumnAlias(String, Table, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>I/O information on the key columns / join key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>I/O information on the discriminator columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>Return column I/O information for this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>I/O for the columns created by the last call to <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)"><CODE>MappingInfo.createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)</CODE></A>,
 or for the foreign key created by the last call to
 <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)"><CODE>MappingInfo.createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>I/O information on the foreign key, or columns if this value doesn't
 have a key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getColumnIO()"><B>getColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>I/O information on the version columns.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#getColumnName()"><B>getColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return the column's name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getColumnNameForMetadata(java.lang.String)"><B>getColumnNameForMetadata(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the column name that will be used for obtaining information
 from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html" title="class or interface in java.sql"><CODE>DatabaseMetaData</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#getColumnNameForMetadata(java.lang.String)"><B>getColumnNameForMetadata(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getColumnPrivileges(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getColumnPrivileges(String, String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getColumnResults()"><B>getColumnResults()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Ids of mapped scalar columns in the result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Columns used by this Discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#getColumns(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>getColumns(Discriminator, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>Return the columns set for this discriminator, based on the given
 templates.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#getColumns()"><B>getColumns()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>Return the columns used by this strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html#getColumns()"><B>getColumns()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta">Joinable</A>
<DD>The columns managed by this joinable.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw column data.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getColumns()"><B>getColumns()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The columns that hold the data for this value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getColumns(ValueMapping, String, Column[], Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return the columns for this value, based on the given templates.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Columns used for versioning.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html#getColumns(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>getColumns(Version, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">VersionMappingInfo</A>
<DD>Return the columns set for this version, based on the given templates.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the local columns in the foreign key local table order.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Return all the columns the constraint spans.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the table's columns, in alphabetical order.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find columns matching the given table and
 column patterns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PointbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getColumns()"><B>getColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#getColumns(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getColumns(DatabaseMetaData, String, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getColumns(String, String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/Commentable.html#getComments()"><B>getComments()</B></A> - 
Method in interface org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A>
<DD>Return comments, or empty array if none.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getComments()"><B>getComments()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Order.html#getComparator()"><B>getComparator()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Order.html" title="interface in org.apache.openjpa.meta">Order</A>
<DD>Return a comparator for ordering by this element, or null if
 the ordering is done in the datastore.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getCompatibility()"><B>getCompatibility()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Backwards compatibility options.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getCompatibility()"><B>getCompatibility()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getCompatibilityInstance()"><B>getCompatibilityInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Backwards compatibility options.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getCompatibilityInstance()"><B>getCompatibilityInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getCompilation()"><B>getCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getCompilation()"><B>getCompilation()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the query's compilation state.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getCompilation()"><B>getCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getConcurrency()"><B>getConcurrency()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Return the configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Return the <A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf"><CODE>JDBCConfiguration</CODE></A> for this sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Return the configuration for this runtime.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the configuration provided on construction.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Return the select configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>System configuration.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Return the configuration for this factory.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Return the configuration for this factory.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Resolver.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Resolver.html" title="interface in org.apache.openjpa.kernel.exps">Resolver</A>
<DD>Return the OpenJPA configuration.
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the configuration associated with this context.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>The task configuration.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the configuration for the repository.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Configuration supplied on construction.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Configuration.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Configuration supplied on construction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>Return the configuration for this factory.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>Return the configuration associated with this entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Configuration supplied on construction.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getConfiguration()"><B>getConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#getConfigurationKey(java.lang.String, java.util.Map)"><B>getConfigurationKey(String, Map)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Determine the full key name for <code>key</code>, given the registered
 prefixes and the entries in <code>map</code>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConfigurationLog()"><B>getConfigurationLog()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getConfigurationLog()"><B>getConfigurationLog()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return the log to use for configuration messages.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getConfigurationLog()"><B>getConfigurationLog()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Returns the logging channel <code>openjpa.Runtime</code> by default.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#getConfigurationPrefix()"><B>getConfigurationPrefix()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#getConfigurationPrefix()"><B>getConfigurationPrefix()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Return the configuration prefix for properties of this product.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#getConfigurationPrefixes()"><B>getConfigurationPrefixes()</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Return the recognized prefixes for configuration properties.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager.ConnectionSavepoint</A>
<DD>Return the current <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A> for this savepoint.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#getConnection(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getConnection(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Return the connection to use based on the type of sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getConnection()"><B>getConnection()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Return a SQL connection to the database.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnection(java.lang.String, java.lang.String)"><B>getConnection(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnection(java.util.Properties)"><B>getConnection(Properties)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getConnection()"><B>getConnection()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the connection in use by the context, or a new connection if none.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#getConnection(java.lang.String, java.lang.String)"><B>getConnection(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#getConnection(java.lang.String, java.lang.String)"><B>getConnection(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Return the Connection for this event.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getConnection()"><B>getConnection()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getConnection()"><B>getConnection()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the connection in use by the entity manager, or a new
 connection if none.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnection2DriverName()"><B>getConnection2DriverName()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Class name of the non-XA connection driver.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnection2DriverName()"><B>getConnection2DriverName()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnection2Password()"><B>getConnection2Password()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The password for the non-XA data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnection2Password()"><B>getConnection2Password()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnection2Properties()"><B>getConnection2Properties()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>These properties provide any additional information needed to
 establish non-XA connections.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnection2Properties()"><B>getConnection2Properties()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnection2URL()"><B>getConnection2URL()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The URL for the non-XA data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnection2URL()"><B>getConnection2URL()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnection2UserName()"><B>getConnection2UserName()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The user name for the non-XA data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnection2UserName()"><B>getConnection2UserName()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html#getConnectionConstant()"><B>getConnectionConstant()</B></A> - 
Method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html" title="enum in org.apache.openjpa.persistence.jdbc">IsolationLevel</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getConnectionDecoratorInstances()"><B>getConnectionDecoratorInstances()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>ConnectionDecorator</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getConnectionDecoratorInstances()"><B>getConnectionDecoratorInstances()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getConnectionDecorators()"><B>getConnectionDecorators()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A comma-separated list of the <A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>ConnectionDecorator</CODE></A> for adding
 functionality to JDBC connections.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getConnectionDecorators()"><B>getConnectionDecorators()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionDriverName()"><B>getConnectionDriverName()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Class name of the connection driver.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionDriverName()"><B>getConnectionDriverName()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#getConnectionDriverName()"><B>getConnectionDriverName()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Driver class name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnectionDriverName()"><B>getConnectionDriverName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactory()"><B>getConnectionFactory()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The connection factory, possibly from JNDI.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactory()"><B>getConnectionFactory()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getConnectionFactory()"><B>getConnectionFactory()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactory2()"><B>getConnectionFactory2()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The non-XA connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactory2()"><B>getConnectionFactory2()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getConnectionFactory2()"><B>getConnectionFactory2()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactory2Name()"><B>getConnectionFactory2Name()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The name for the second data store connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactory2Name()"><B>getConnectionFactory2Name()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactory2Properties()"><B>getConnectionFactory2Properties()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration properties for the non-XA connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactory2Properties()"><B>getConnectionFactory2Properties()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactoryMode()"><B>getConnectionFactoryMode()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The mode of the connection factory in use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactoryMode()"><B>getConnectionFactoryMode()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactoryName()"><B>getConnectionFactoryName()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The name for the data store connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactoryName()"><B>getConnectionFactoryName()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionFactoryProperties()"><B>getConnectionFactoryProperties()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration properties for the connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionFactoryProperties()"><B>getConnectionFactoryProperties()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#getConnectionFactoryProperties()"><B>getConnectionFactoryProperties()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Configuration of datasource properties.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnectionFactoryProperties()"><B>getConnectionFactoryProperties()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The password for the data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the connection password.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getConnectionPassword()"><B>getConnectionPassword()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the connection password.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionProperties()"><B>getConnectionProperties()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>These properties provide any additional information needed to
 establish connections.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionProperties()"><B>getConnectionProperties()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#getConnectionProperties()"><B>getConnectionProperties()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Configuration of connection.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnectionProperties()"><B>getConnectionProperties()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Specifies the behavior of the broker with respect to data store
 connections.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return the connection retain mode for this broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getConnectionRetainMode()"><B>getConnectionRetainMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the connection retain mode for this entity manager.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionRetainModeConstant()"><B>getConnectionRetainModeConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the connection retain mode as one of the following symbolic
 constants:
 
 <A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_ALWAYS"><CODE>ConnectionRetainModes.CONN_RETAIN_ALWAYS</CODE></A>
 <A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_TRANS"><CODE>ConnectionRetainModes.CONN_RETAIN_TRANS</CODE></A>
 <A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_DEMAND"><CODE>ConnectionRetainModes.CONN_RETAIN_DEMAND</CODE></A>
 
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionRetainModeConstant()"><B>getConnectionRetainModeConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionURL()"><B>getConnectionURL()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The URL for the data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionURL()"><B>getConnectionURL()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#getConnectionURL()"><B>getConnectionURL()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>JDBC URL.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnectionURL()"><B>getConnectionURL()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The user name for the data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>JDBC user name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the connection user name.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getConnectionUserName()"><B>getConnectionUserName()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the connection user name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getConstant(org.apache.openjpa.jdbc.schema.Column)"><B>getConstant(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the constant value assigned to the given local column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getConstantColumns()"><B>getConstantColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the local columns that we link to using constant values.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getConstantPrimaryKeyColumns()"><B>getConstantPrimaryKeyColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the primary key columns that we link to using constant values.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getConstants()"><B>getConstants()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the constant values assigned to the local columns
 returned by <A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getConstantColumns()"><CODE>ForeignKey.getConstantColumns()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#getContainedBy()"><B>getContainedBy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Gets the name of the fetch groups in which this receiver has been
 included.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.Resource.html#getContent()"><B>getContent()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.Resource.html" title="interface in org.apache.openjpa.lib.meta">MetaDataFilter.Resource</A>
<DD>Resource content.
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getContentAction(java.net.URLConnection)"><B>getContentAction(URLConnection)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object con.getContent().
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns the <A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel"><CODE>StoreContext</CODE></A> that this store manager is
 associated with.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getContext()"><B>getContext()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Current persistence context.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Return the context this provider was constructed with.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getContext()"><B>getContext()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return the context assiciated with this configuration;
 may be null if it has not been set or this object has been serialized.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getContext()"><B>getContext()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the managing context.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#getContext()"><B>getContext()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Return the query context that has been set.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getContextClassLoaderAction()"><B>getContextClassLoaderAction()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for Thread.currentThread
   .getContextClassLoader().
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#getCopyFieldState()"><B>getCopyFieldState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Whether this savepoint copies the field values of retained instances.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getCopyObjectIds()"><B>getCopyObjectIds()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to copy identity objects before returning them to client code.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getCount(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getCount(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getCount(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getCount(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#getCount(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getCount(JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Return the number of instances matching this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getCount(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getCount(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#getCreateFieldMethods(int)"><B>getCreateFieldMethods(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Return the policy constant for how to create type methods.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#getCreateFieldMethods(int)"><B>getCreateFieldMethods(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCreateIndexSQL(org.apache.openjpa.jdbc.schema.Index)"><B>getCreateIndexSQL(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to create the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#getCreateIndexSQL(org.apache.openjpa.jdbc.schema.Index)"><B>getCreateIndexSQL(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#getCreateSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)"><B>getCreateSequenceSQL(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCreateSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)"><B>getCreateSequenceSQL(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to create the given sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getCreateSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)"><B>getCreateSequenceSQL(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getCreateSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)"><B>getCreateSequenceSQL(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getCreateSubclass()"><B>getCreateSubclass()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether the enhancer should make its arguments persistence-capable,
 or generate a persistence-capable subclass.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to create the given table, complete
 with columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getCreateTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getCrossReference(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getCrossReference(String, String, String, String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getCurrentDate()"><B>getCurrentDate()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getCurrentDate()"><B>getCurrentDate()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the current date.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getCurrentDate()"><B>getCurrentDate()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getCurrentTime()"><B>getCurrentTime()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getCurrentTime()"><B>getCurrentTime()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the current time.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getCurrentTime()"><B>getCurrentTime()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getCurrentTimestamp()"><B>getCurrentTimestamp()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getCurrentTimestamp()"><B>getCurrentTimestamp()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the current timestamp.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getCurrentTimestamp()"><B>getCurrentTimestamp()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getCursorName()"><B>getCursorName()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getCustomFetchGroups()"><B>getCustomFetchGroups()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return all fetch groups for this type, including superclass groups.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getCustomFetchGroups()"><B>getCustomFetchGroups()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Gets the name of the custom fetch groups those are associated to this 
 receiver.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getCustomizer()"><B>getCustomizer()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the customizer in use, or null if none.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getCycle()"><B>getCycle()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>List of edges forming a cycle.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#getData(int)"><B>getData(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#getData(int)"><B>getData(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Return the data stored in the given field index.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getData(int)"><B>getData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStore.html#getData(org.apache.openjpa.meta.ClassMetaData, java.lang.Object)"><B>getData(ClassMetaData, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore">XMLStore</A>
<DD>Return the data for the given oid, or null if it does not exist.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStore.html#getData(org.apache.openjpa.meta.ClassMetaData)"><B>getData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore">XMLStore</A>
<DD>Return all datas for the base class of the given type.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDatabaseMajorVersion()"><B>getDatabaseMajorVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDatabaseMinorVersion()"><B>getDatabaseMinorVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDatabaseProductName()"><B>getDatabaseProductName()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDatabaseProductVersion()"><B>getDatabaseProductVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getDataCache()"><B>getDataCache()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCache</CODE></A> to use for level-2 data store caching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDataCache()"><B>getDataCache()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#getDataCache(java.lang.String)"><B>getDataCache(String)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Return the named data cache, or null if it does not exist.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#getDataCache(java.lang.String, boolean)"><B>getDataCache(String, boolean)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Return the named data cache.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#getDataCache(java.lang.String)"><B>getDataCache(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#getDataCache(java.lang.String, boolean)"><B>getDataCache(String, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDataCache()"><B>getDataCache()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the data cache for this class, or null if it is not cachable.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getDataCacheManager()"><B>getDataCacheManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The data cache manager manages this configuration's cache instances.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDataCacheManager()"><B>getDataCacheManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getDataCacheManagerInstance()"><B>getDataCacheManagerInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The data cache manager manages this configuration's cache instances.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDataCacheManagerInstance()"><B>getDataCacheManagerInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDataCacheName()"><B>getDataCacheName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The name of the datacache to use for this class, or null if none.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#getDataCacheScheduler()"><B>getDataCacheScheduler()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Return the runnable which schedules evictions.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#getDataCacheScheduler()"><B>getDataCacheScheduler()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getDataCacheTimeout()"><B>getDataCacheTimeout()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Default data cache timeout.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDataCacheTimeout()"><B>getDataCacheTimeout()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDataCacheTimeout()"><B>getDataCacheTimeout()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The cache timeout for this class.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getDataSource(org.apache.openjpa.kernel.StoreContext)"><B>getDataSource(StoreContext)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the primary data source to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getDataSource(org.apache.openjpa.kernel.StoreContext)"><B>getDataSource(StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getDataSource2(org.apache.openjpa.kernel.StoreContext)"><B>getDataSource2(StoreContext)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the non-enlisted data source to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getDataSource2(org.apache.openjpa.kernel.StoreContext)"><B>getDataSource2(StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#getDataStoreActions(org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>getDataStoreActions(ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[], StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getDataStoreActions(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>getDataStoreActions(StoreQuery, Object[], StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getDataStoreActions(java.util.Map)"><B>getDataStoreActions(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#getDataStoreActions(org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.meta.ClassMetaData[], boolean, org.apache.openjpa.kernel.exps.ExpressionFactory[], org.apache.openjpa.kernel.exps.QueryExpressions[], java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>getDataStoreActions(ClassMetaData, ClassMetaData[], boolean, ExpressionFactory[], QueryExpressions[], Object[], StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Return the commands that will be sent to the datastore in order
 to execute the query, typically in the database's native language.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#getDataStoreActions(java.util.Map)"><B>getDataStoreActions(Map)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Returns a description of the commands that will be sent to
 the datastore in order to execute this query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getDataStoreActions(java.util.Map)"><B>getDataStoreActions(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getDataStoreActions(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>getDataStoreActions(StoreQuery, Object[], StoreQuery.Range)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return a description of the commands that will be sent to
 the datastore in order to execute the query.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getDataStoreActions(java.util.Map)"><B>getDataStoreActions(Map)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Returns a description of the commands that will be sent to
 the datastore in order to execute this query.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getDataStoreActions(java.util.Map)"><B>getDataStoreActions(Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getDataStoreIdColumnName()"><B>getDataStoreIdColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for datastore identity columns, or null to the
 mapping's built-in name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getDataStoreIdColumns(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getDataStoreIdColumns(ClassMapping, Column[], Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Return the datastore identity columns for the given class, based on the
 given templates.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getDataStoreIdSequence(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdSequence(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns the system-configured sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getDataStoreIdSequence(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdSequence(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getDataStoreIdSequence(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdSequence(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#getDataStoreIdSequence(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdSequence(ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return a sequence that generates datastore identity values for the
 given class.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getDataStoreIdType(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdType(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getDataStoreIdType(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdType(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getDataStoreIdType(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdType(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#getDataStoreIdType(org.apache.openjpa.meta.ClassMetaData)"><B>getDataStoreIdType(ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return the class used by this StoreManager for datastore identity
 values.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html#getDataStoreSavepoint()"><B>getDataStoreSavepoint()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager.ConnectionSavepoint</A>
<DD>Return the stored savepoint object
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDate(java.lang.Object)"><B>getDate(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDate(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getDate(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDate(java.lang.Object, java.util.Calendar)"><B>getDate(Object, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDate(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getDate(Column, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDate(java.sql.ResultSet, int)"><B>getDate(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDate(java.sql.ResultSet, int, java.util.Calendar)"><B>getDate(ResultSet, int, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getDate(java.lang.Object)"><B>getDate(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getDate(java.lang.Object, java.util.Calendar)"><B>getDate(Object, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getDate(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getDate(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getDate(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getDate(Column, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getDate(java.sql.ResultSet, int)"><B>getDate(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getDate(java.lang.Object)"><B>getDate(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getDate(java.lang.Object, java.util.Calendar)"><B>getDate(Object, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getDate(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getDate(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getDate(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getDate(Column, Calendar, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDate(int)"><B>getDate(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDate(int, java.util.Calendar)"><B>getDate(int, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDate(java.lang.String)"><B>getDate(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDate(java.lang.String, java.util.Calendar)"><B>getDate(String, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDate(int)"><B>getDate(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDate(java.lang.String)"><B>getDate(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDate(int, java.util.Calendar)"><B>getDate(int, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDate(java.lang.String, java.util.Calendar)"><B>getDate(String, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDateInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getDateInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDateInternal(java.lang.Object, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getDateInternal(Object, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getDateInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getDateInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getDateInternal(java.lang.Object, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getDateInternal(Object, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#getDateTypeCode(java.lang.Class)"><B>getDateTypeCode(Class)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>Return the proper date typecode.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#getDb2ServerType()"><B>getDb2ServerType()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><CODE>DBDictionary</CODE></A> to use to define the RDBMS SQL information.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Return the dictionary in use.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Convenient access to dictionary for mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getDBDictionary()"><B>getDBDictionary()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Return the dictionary in use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getDBDictionaryInstance()"><B>getDBDictionaryInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><CODE>DBDictionary</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getDBDictionaryInstance()"><B>getDBDictionaryInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getDBSchemaGroup()"><B>getDBSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Return the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getDecimalDigits()"><B>getDecimalDigits()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the number of decimal digits for the column, if applicable.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getDeclaration(org.apache.openjpa.meta.FieldMetaData)"><B>getDeclaration(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return a code template for the declaration of the given field, or null
 to use the system-generated default Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getDeclaration(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getDeclaration(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getDeclaration(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getDeclaration(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return a code template for the declaration of the given field, or null
 to use the system-generated default Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDeclareColumnSQL(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>getDeclareColumnSQL(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the declaration SQL for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#getDeclareColumnSQL(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>getDeclareColumnSQL(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html#getDeclaredAnnotationsAction(java.lang.reflect.AnnotatedElement)"><B>getDeclaredAnnotationsAction(AnnotatedElement)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html" title="class in org.apache.openjpa.lib.util">J2DoPriv5Helper</A>
<DD>Return a PrivilegeAction object for
   AnnotatedElement.getDeclaredAnnotations().
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#getDeclaredCallbacks(int)"><B>getDeclaredCallbacks(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Return the declared callbacks for the given event type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredFetchGroups()"><B>getDeclaredFetchGroups()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the fetch groups declared explicitly in this type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredField(int)"><B>getDeclaredField(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the metadata for the persistent or transactional field with
 the given relative index.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredField(java.lang.String)"><B>getDeclaredField(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the metadata for the persistent or transactional field with
 the given name, without including superclass fields.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getDeclaredFieldAction(java.lang.Class, java.lang.String)"><B>getDeclaredFieldAction(Class, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for clazz.getDeclaredField().
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDeclaredFieldMapping(int)"><B>getDeclaredFieldMapping(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredField(int)"><CODE>ClassMetaData.getDeclaredField(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDeclaredFieldMapping(java.lang.String)"><B>getDeclaredFieldMapping(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredField(int)"><CODE>ClassMetaData.getDeclaredField(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDeclaredFieldMappings()"><B>getDeclaredFieldMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredFields()"><CODE>ClassMetaData.getDeclaredFields()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredFields()"><B>getDeclaredFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return only the fields for this class, without superclass fields.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getDeclaredFieldsAction(java.lang.Class)"><B>getDeclaredFieldsAction(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for class.getDeclaredFields().
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#getDeclaredIncludes()"><B>getDeclaredIncludes()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Return the fetch group names declared included by this group.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaredIndex()"><B>getDeclaredIndex()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The relative index of this persistent/transactional field.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredInterfaces()"><B>getDeclaredInterfaces()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return all explicitly declared interfaces this class implements.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getDeclaredMethodAction(java.lang.Class, java.lang.String, java.lang.Class[])"><B>getDeclaredMethodAction(Class, String, Class[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for clazz.getDeclaredMethod().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getDeclaredMethodsAction(java.lang.Class)"><B>getDeclaredMethodsAction(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for clazz.getDeclaredMethods().
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#getDeclaredRecursionDepth(org.apache.openjpa.meta.FieldMetaData)"><B>getDeclaredRecursionDepth(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Return the recursion depth declared for the given field, or 
 0 if none.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#getDeclaredRecursionDepthFields()"><B>getDeclaredRecursionDepthFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Return the fields with declared recursion depths in this group.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaredType()"><B>getDeclaredType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getDeclaredType()"><B>getDeclaredType()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Return the declared class of the value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getDeclaredType()"><B>getDeclaredType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaredTypeCode()"><B>getDeclaredTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getDeclaredTypeCode()"><B>getDeclaredTypeCode()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Return the declared type code of the value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getDeclaredTypeCode()"><B>getDeclaredTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getDeclaredTypeMapping()"><B>getDeclaredTypeMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getDeclaredTypeMapping()"><B>getDeclaredTypeMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getDeclaredTypeMetaData()"><CODE>ValueMetaData.getDeclaredTypeMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getDeclaredTypeMapping()"><B>getDeclaredTypeMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaredTypeMetaData()"><B>getDeclaredTypeMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getDeclaredTypeMetaData()"><B>getDeclaredTypeMetaData()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Return metadata for the value's class, if the type is persistent.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getDeclaredTypeMetaData()"><B>getDeclaredTypeMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDeclaredUnmanagedFieldMappings()"><B>getDeclaredUnmanagedFieldMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredUnmanagedFields()"><CODE>ClassMetaData.getDeclaredUnmanagedFields()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDeclaredUnmanagedFields()"><B>getDeclaredUnmanagedFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return any fields that were added as non-managed.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getDeclaredVariableType(java.lang.String)"><B>getDeclaredVariableType(String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Returns the type of the named variabe if it has been declared.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getDeclaredVariableType(java.lang.String)"><B>getDeclaredVariableType(String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getDeclaringMapping()"><B>getDeclaringMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaringMetaData()"><CODE>FieldMetaData.getDeclaringMetaData()</CODE></A>
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaringMetaData()"><B>getDeclaringMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The declaring class.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDeclaringType()"><B>getDeclaringType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The declaring class.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#getDecorators()"><B>getDecorators()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>Return a read-only list of connection decorators in the order they were
 added.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getDefault()"><B>getDefault()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the default value set for this column, if any.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getDefault()"><B>getDefault()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The default value for the property as a string.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getDefaultAccessType()"><B>getDefaultAccessType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>The default access type for base classes with ACCESS_UNKNOWN.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#getDefaultAccessType()"><B>getDefaultAccessType()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Return the default access type for a base persistent class with
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ACCESS_UNKNOWN"><CODE>ClassMetaData.ACCESS_UNKNOWN</CODE></A> access type.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getDefaultAccessType()"><B>getDefaultAccessType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#getDefaultEntryDelimiter()"><B>getDefaultEntryDelimiter()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>See <A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#setDefaultEntryDelimiter(char)"><CODE>FormatPreservingProperties.setDefaultEntryDelimiter(char)</CODE></A>
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getDefaultEventIndex()"><B>getDefaultEventIndex()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDefaultFetchGroupFieldMappings()"><B>getDefaultFetchGroupFieldMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefaultFetchGroupFields()"><CODE>ClassMetaData.getDefaultFetchGroupFields()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefaultFetchGroupFields()"><B>getDefaultFetchGroupFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the list of fields in the default fetch group,
 including superclass fields, or an empty array if none.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getDefaultIdentityType()"><B>getDefaultIdentityType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>The default identity type for unmapped classes without primary 
 key fields.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#getDefaultIdentityType()"><B>getDefaultIdentityType()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Return the default identity type for unmapped classes without primary
 key fields.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getDefaultIdentityType()"><B>getDefaultIdentityType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#getDefaultLevel()"><B>getDefaultLevel()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The default level for unconfigured log channels.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getDefaultPropertyIndex()"><B>getDefaultPropertyIndex()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#getDefaults()"><B>getDefaults()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#getDefaults()"><B>getDefaults()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Return the metadata defaults for this factory.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getDefaults()"><B>getDefaults()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getDefaults()"><B>getDefaults()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getDefaultString()"><B>getDefaultString()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the default value set for the column, if any.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDefaultTransactionIsolation()"><B>getDefaultTransactionIsolation()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getDeferConstraints()"><B>getDeferConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to defer constraints by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDefinedFieldMappings()"><B>getDefinedFieldMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefinedFields()"><CODE>ClassMetaData.getDefinedFields()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDefinedFieldMappingsInListingOrder()"><B>getDefinedFieldMappingsInListingOrder()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefinedFieldsInListingOrder()"><CODE>ClassMetaData.getDefinedFieldsInListingOrder()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefinedFields()"><B>getDefinedFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Returns an array of all the fields defined by this class.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefinedFieldsInListingOrder()"><B>getDefinedFieldsInListingOrder()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Returns all fields defined by this class in the order they are listed
 in the metadata file.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDefinedSuperclassField(java.lang.String)"><B>getDefinedSuperclassField(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the defined superclass field with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getDefiningMapping()"><B>getDefiningMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDefiningMetaData()"><CODE>FieldMetaData.getDefiningMetaData()</CODE></A>
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#getDefiningMetaData(org.apache.openjpa.meta.QueryMetaData, java.util.Map)"><B>getDefiningMetaData(QueryMetaData, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return the metadata that defines the given query, if any.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getDefiningMetaData()"><B>getDefiningMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The class that defines the metadata for this field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getDefiningType()"><B>getDefiningType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>The class that defines this query result, or null if none.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getDefiningType()"><B>getDefiningType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The class that defines this query, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#getDelayConstraintResolve()"><B>getDelayConstraintResolve()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaParser</A>
<DD>Delay resolution of foreign key constraints until
 <A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#resolveConstraints()"><CODE>SchemaParser.resolveConstraints()</CODE></A> is called.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#getDelayConstraintResolve()"><B>getDelayConstraintResolve()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>Delegate select.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>Return the direct delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>Return the wrapped store manager.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>Return the wrapped statement.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Return the wrapped connection.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>Return the wrapped data source.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>Return the wrapped statement.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>Return the wrapped result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>Return the wrapped statement.
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>Return the wrapped list.
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>Factory delegate.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#getDelegate()"><B>getDelegate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>Delegate.
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#getDelegates()"><B>getDelegates()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>Returns the delegates that this MultiLogFactory delegates messages to.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getDeleteAction()"><B>getDeleteAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the delete action for the key.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getDeletedObjectIds()"><B>getDeletedObjectIds()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>When the event type is not PAYLOAD_EXTENTS, return the set of
 object IDs for deleted objects.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getDeletedTypeNames()"><B>getDeletedTypeNames()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>When the event type is PAYLOAD_EXTENTS, return the set of class
 names for the classes of deleted objects.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#getDeletedTypes()"><B>getDeletedTypes()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Return the unmodifiable the set of classes of
 persistence capable objects that were deleted in the transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getDeletedTypes()"><B>getDeletedTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getDeletedTypes()"><B>getDeletedTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getDeletedTypes()"><B>getDeletedTypes()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the set of classes that have been deleted in the current
 transaction.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getDeletes()"><B>getDeletes()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getDeletes()"><B>getDeletes()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return all deleted primary rows.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDeleteTableContentsSQL(org.apache.openjpa.jdbc.schema.Table[])"><B>getDeleteTableContentsSQL(Table[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create SQL to delete the contents of the specified tables.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getDeleteTableContentsSQL(org.apache.openjpa.jdbc.schema.Table[])"><B>getDeleteTableContentsSQL(Table[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDescribedType()"><B>getDescribedType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The persistence capable class described by this metadata.
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getDescribedType()"><B>getDescribedType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>Persistence-aware type.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getDescription()"><B>getDescription()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Useful for debugging.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getDetachable()"><B>getDetachable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to make generated classes detachable.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getDetachedObjectId(org.apache.openjpa.kernel.AttachManager, java.lang.Object)"><B>getDetachedObjectId(AttachManager, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDetachedState()"><B>getDetachedState()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The name of the detach state field, or null if none.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#getDetachedStateField()"><B>getDetachedStateField()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to add a detached state field to enhanced classes.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getDetachedStateField()"><B>getDetachedStateField()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the detach state field, or null if none.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#getDetachedStateManager()"><B>getDetachedStateManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to use a detached state manager on types that allow it.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.All.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.All.html" title="class in org.apache.openjpa.conf">DetachOptions.All</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.FetchGroups.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.FetchGroups.html" title="class in org.apache.openjpa.conf">DetachOptions.FetchGroups</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>The <A HREF="./org/apache/openjpa/kernel/DetachState.html" title="interface in org.apache.openjpa.kernel"><CODE>DetachState</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.Loaded.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.Loaded.html" title="class in org.apache.openjpa.conf">DetachOptions.Loaded</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Detach mode constant to determine which fields are part of the
 detached graph.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getDetachState()"><B>getDetachState()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Detach mode constant to determine which fields are part of the
 detached graph.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getDetachStateInstance()"><B>getDetachStateInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the instance specified by the detach state plugin.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDetachStateInstance()"><B>getDetachStateInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#getDiagnosticContext()"><B>getDiagnosticContext()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>A string to prefix all log messages with.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getDirectory()"><B>getDirectory()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The directory to write source to.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getDirectory()"><B>getDirectory()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>The base build directory to generate code to.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getDirectory()"><B>getDirectory()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>The file to output the generated code to, or null for
 the current directory.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getDirty()"><B>getDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getDirty()"><B>getDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getDirty()"><B>getDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getDirty()"><B>getDirty()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return a read-only mask of the indexes of all dirty fields.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getDirty()"><B>getDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getDirtyObjects()"><B>getDirtyObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getDirtyObjects()"><B>getDirtyObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getDirtyObjects()"><B>getDirtyObjects()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return a list of current dirty instances.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getDirtyObjects()"><B>getDirtyObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getDirtyObjects()"><B>getDirtyObjects()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return a set of current dirty instances.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getDirtyStates()"><B>getDirtyStates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return a copy of all dirty state managers.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getDiscriminator()"><B>getDiscriminator()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The class discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getDiscriminatorColumnName()"><B>getDiscriminatorColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for discriminator columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getDiscriminatorStrategy()"><B>getDiscriminatorStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default discriminator strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getDiscriminatorStrategy()"><B>getDiscriminatorStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Default discriminator strategy for base class mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getDiscriminatorValue(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getDiscriminatorValue(Discriminator, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return the default discriminator value for the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getDiscriminatorValue(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getDiscriminatorValue(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Provides a default value for the given Discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getDiscriminatorValue(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getDiscriminatorValue(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#getDiscriminatorValue(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getDiscriminatorValue(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#getDiscriminatorValue(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getDiscriminatorValue(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>Return the discriminator value for the given type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#getDiscriminatorValue(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getDiscriminatorValue(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#getDocType()"><B>getDocType()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getDocType()"><B>getDocType()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Override this method to return any <code>DOCTYPE</code> declaration
 that should be dynamically included in xml documents that will be
 validated.
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html#getDocument()"><B>getDocument()</B></A> - 
Static method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html" title="class in org.apache.openjpa.lib.xml">XMLFactory</A>
<DD>Return a new DOM Document.
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html#getDOMParser(boolean, boolean)"><B>getDOMParser(boolean, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html" title="class in org.apache.openjpa.lib.xml">XMLFactory</A>
<DD>Return a DocumentBuilder with the specified configuration.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getDouble(int)"><B>getDouble(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the double at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getDouble(java.lang.Object, java.lang.reflect.Field)"><B>getDouble(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getDouble(java.lang.Object, java.lang.reflect.Method)"><B>getDouble(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDouble(java.lang.Object)"><B>getDouble(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDouble(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getDouble(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDouble(java.sql.ResultSet, int)"><B>getDouble(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getDouble(java.lang.Object)"><B>getDouble(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getDouble(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getDouble(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getDouble(java.lang.Object)"><B>getDouble(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getDouble(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getDouble(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDouble(int)"><B>getDouble(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getDouble(java.lang.String)"><B>getDouble(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDouble(int)"><B>getDouble(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getDouble(java.lang.String)"><B>getDouble(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getDoubleExtension(java.lang.String)"><B>getDoubleExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as a double.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getDoubleExtension(java.lang.String, java.lang.String)"><B>getDoubleExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as a double.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getDoubleInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getDoubleInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getDoubleInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getDoubleInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#getDoubleProperty(java.lang.String, java.lang.String, double)"><B>getDoubleProperty(String, String, double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getDoubleProperty(java.lang.String)"><CODE>TypedProperties.getDoubleProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getDoubleProperty(java.lang.String)"><B>getDoubleProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a double, or 0 if
 it does not exist and has no set default.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getDoubleProperty(java.lang.String, double)"><B>getDoubleProperty(String, double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a double, or the given
 default if it does not exist.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#getDoubleSpace()"><B>getDoubleSpace()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>If true, then output two lines after multi-line statements.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getDriverDataSource()"><B>getDriverDataSource()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>DriverDataSource</CODE></A> to use for creating a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html" title="class or interface in javax.sql"><CODE>DataSource</CODE></A>
 from a JDBC <CODE>Driver</CODE>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getDriverDataSource()"><B>getDriverDataSource()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDriverMajorVersion()"><B>getDriverMajorVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDriverMinorVersion()"><B>getDriverMinorVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDriverName()"><B>getDriverName()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getDriverVersion()"><B>getDriverVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDropColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getDropColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to drop the given column from
 its table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#getDropColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getDropColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#getDropColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getDropColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#getDropColumnSQL(org.apache.openjpa.jdbc.schema.Column)"><B>getDropColumnSQL(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDropForeignKeySQL(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getDropForeignKeySQL(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to drop the given foreign key from
 its table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDropIndexSQL(org.apache.openjpa.jdbc.schema.Index)"><B>getDropIndexSQL(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to drop the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getDropIndexSQL(org.apache.openjpa.jdbc.schema.Index)"><B>getDropIndexSQL(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDropPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getDropPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to drop the given primary key from
 its table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getDropPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getDropPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getDropPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getDropPrimaryKeySQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getDropSequences()"><B>getDropSequences()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>If true, sequences that appear to be unused will be dropped.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDropSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)"><B>getDropSequenceSQL(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to drop the given sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getDropTables()"><B>getDropTables()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>If true, tables that appear to be unused will be dropped.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getDropTableSQL(org.apache.openjpa.jdbc.schema.Table)"><B>getDropTableSQL(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a series of SQL statements to drop the given table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getDropUnusedComponents()"><B>getDropUnusedComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether schema components that are unused by any mapping will be
 dropped from this tool's <A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>SchemaGroup</CODE></A>, and, depending on
 the schema action, from the database.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getDynamicDataStructs()"><B>getDynamicDataStructs()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return whether to generate dynamic data structures
 where possible for cache and runtime usage.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDynamicDataStructs()"><B>getDynamicDataStructs()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getDynamicValues()"><B>getDynamicValues()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getDynamicValues()"><B>getDynamicValues()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Gets the values that can be modified <em>dynamically</em> i.e.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getDynamicValues()"><B>getDynamicValues()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>The eager result for the given key, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the eager select for the given key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#getEager(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEager(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Specifies the default eager fetch mode to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Return the eager fetch mode.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>The eager fetch mode, as one of the eager constants in
 <A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCFetchConfiguration</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Eager fetch mode in loading relations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getEagerFetchMode()"><B>getEagerFetchMode()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getEagerFetchModeConstant()"><B>getEagerFetchModeConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the eager fetch mode as one of the following symbolic constants:
 
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_NONE"><CODE>EagerFetchModes.EAGER_NONE</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_JOIN"><CODE>EagerFetchModes.EAGER_JOIN</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_PARALLEL"><CODE>EagerFetchModes.EAGER_PARALLEL</CODE></A>
 
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getEagerFetchModeConstant()"><B>getEagerFetchModeConstant()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getEagerMap(boolean)"><B>getEagerMap(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Raw eager information.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getEagerMap()"><B>getEagerMap()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Return view of eager selects.
<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html#getEdges(int)"><B>getEdges(int)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph">DepthFirstAnalysis</A>
<DD>Return all edges of the given type.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#getEdges()"><B>getEdges()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Return all edges in the graph.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#getEdges(java.lang.Object, java.lang.Object)"><B>getEdges(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Return all the edges from one node to another.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#getEdgesFrom(java.lang.Object)"><B>getEdgesFrom(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Return all the edges from a particular node.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#getEdgesTo(java.lang.Object)"><B>getEdgesTo(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Return all the edges to a particular node.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getElement()"><B>getElement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Metadata about the element value.
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#getElementClass()"><B>getElementClass()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>The extent's element type.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#getElementClass()"><B>getElementClass()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getElementColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getElementColumns(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>Return the columns holding the data for a collection element for the
 given element mapping from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>LRSCollectionFieldStrategy.getIndependentElementMappings(boolean)</CODE></A>
 (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#getElementColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getElementColumns(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#getElementColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getElementColumns(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getElementMapping()"><B>getElementMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getElement()"><CODE>FieldMetaData.getElement()</CODE></A>
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#getElementType()"><B>getElementType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#getElementType()"><B>getElementType()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>The class of extent elements.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#getElementType()"><B>getElementType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollection.html#getElementType()"><B>getElementType()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollection.html" title="interface in org.apache.openjpa.util">ProxyCollection</A>
<DD>The collection element type.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getEmbeddedExtensions(java.lang.String, boolean)"><B>getEmbeddedExtensions(String, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return the embedded extensions under the given key.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getEmbeddedExtensions(java.lang.String, java.lang.String, boolean)"><B>getEmbeddedExtensions(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return the embedded extensions under the given key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getEmbeddedMapping()"><B>getEmbeddedMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getEmbeddedMapping()"><B>getEmbeddedMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getEmbeddedMetaData()"><CODE>ValueMetaData.getEmbeddedMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getEmbeddedMapping()"><B>getEmbeddedMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getEmbeddedMetaData()"><B>getEmbeddedMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getEmbeddedMetaData()"><B>getEmbeddedMetaData()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The embedded class metadata for the value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getEmbeddedMetaData()"><B>getEmbeddedMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getEmbeddingMapping()"><B>getEmbeddingMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getEmbeddingMetaData()"><CODE>ClassMetaData.getEmbeddingMetaData()</CODE></A>
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getEmbeddingMetaData()"><B>getEmbeddingMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>If this metadata is for an embedded object, returning the owning value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#getEmptyValue(int)"><B>getEmptyValue(int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>Return an empty value object for the given type code.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getEndIndex()"><B>getEndIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getEndIndex()"><B>getEndIndex()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>The result end index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getEndIndex()"><B>getEndIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getEndl()"><B>getEndl()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return a new line character.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getEndl(int)"><B>getEndl(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return the given number of new line characters.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getEndl(int, int)"><B>getEndl(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return the given number of new line characters, followed by
 the given tab level indentation.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getEndRange()"><B>getEndRange()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getEndRange()"><B>getEndRange()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the 0-based exclusive end index for the returned results,
 or <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Long.html#MAX_VALUE" title="class or interface in java.lang"><CODE>Long.MAX_VALUE</CODE></A> for no limit.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getEndRange()"><B>getEndRange()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getEnforcePropertyRestrictions()"><B>getEnforcePropertyRestrictions()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether to fail if the persistent type uses property access and
 bytecode analysis shows that it may be violating OpenJPA's property
 access restrictions.
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#getEntityManager()"><B>getEntityManager()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>The owning entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#getEntityManager()"><B>getEntityManager()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#getEntityManager(java.lang.Object)"><B>getEntityManager(Object)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Return the entity manager for the given object, if one can be determined
 from just the object alone.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getEntityManager()"><B>getEntityManager()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>The owning entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getEntityManager()"><B>getEntityManager()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getEntityManagerFactory()"><B>getEntityManagerFactory()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getEntityManagerFactory()"><B>getEntityManagerFactory()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the factory that produced this entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#getEntityManagerFactory()"><B>getEntityManagerFactory()</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Returns the <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManagerFactory</CODE></A> specified by
 your OpenJPA defaults.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#getEntityManagerFactory(java.util.Map)"><B>getEntityManagerFactory(Map)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Returns the <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManagerFactory</CODE></A> specified by
 your OpenJPA defaults, using <code>map</code> as overrides.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#getEntry(java.lang.Object)"><B>getEntry(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns the entry associated with the specified key in the
 ConcurrentHashMap.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#getEnumType(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEnumType(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Return enum type for the field.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#getEnumType(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getEnumType(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>Return enum type for the field.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getEnvClassLoader()"><B>getEnvClassLoader()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The environmental loader used when loading this metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getEnvClassLoader()"><B>getEnvClassLoader()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Return the environmental class loader to pass on to parsed
 metadata instances.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getEnvClassLoader()"><B>getEnvClassLoader()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Return the environmental class loader to pass on to parsed
 metadata instances.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html#getErrorCode()"><B>getErrorCode()</B></A> - 
Method in exception org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc">ReportingSQLException</A>
<DD>Returns the error code of the underlying <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html" title="class or interface in java.sql"><CODE>SQLException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getEventSetDescriptors()"><B>getEventSetDescriptors()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html#getEventType()"><B>getEventType()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BrokerFactoryEvent.html" title="class in org.apache.openjpa.event">BrokerFactoryEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getEvictFromDataCache()"><B>getEvictFromDataCache()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to also evict an object from the store cache when it is
 evicted through this broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getEvictFromDataCache()"><B>getEvictFromDataCache()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getEvictFromDataCache()"><B>getEvictFromDataCache()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getEvictFromStoreCache()"><B>getEvictFromStoreCache()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getEvictFromStoreCache()"><B>getEvictFromStoreCache()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to also evict an object from the store cache when it is
 evicted through this entity manager.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#getEvictionSchedule()"><B>getEvictionSchedule()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getException(java.lang.String)"><B>getException(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Returns a SAXException with the source file name and the given error
 message.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getException(org.apache.openjpa.lib.util.Localizer.Message)"><B>getException(Localizer.Message)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Returns a SAXException with the source file name and the given error
 message.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>getException(Localizer.Message, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Returns a SAXException with the source file name and the given error
 message.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html#getExceptions()"><B>getExceptions()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html" title="interface in org.apache.openjpa.jdbc.kernel">PreparedStatementManager</A>
<DD>Return the exceptions encountered during all flushes.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#getExceptions()"><B>getExceptions()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#getExcludes(java.util.List)"><B>getExcludes(List)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Return the field indexes to exclude when loading data for the
 given path.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#getExpectedJavaType()"><B>getExpectedJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#getExpectedJavaType()"><B>getExpectedJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#getExpectedJavaType()"><B>getExpectedJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#getExpectedJavaType()"><B>getExpectedJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getExpectedResultCount()"><B>getExpectedResultCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getExpectedResultCount()"><B>getExpectedResultCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#getExpectedResultCount()"><B>getExpectedResultCount()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>The expected result count for the query.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getExpectedResultCount()"><B>getExpectedResultCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html#getExpired()"><B>getExpired()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html" title="class in org.apache.openjpa.datacache">ExpirationEvent</A>
<DD>Return whether the expired object was expired naturally, or if
 the object was explicitly removed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getExportedKeys(java.lang.String, java.lang.String, java.lang.String)"><B>getExportedKeys(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#getExpressionFactory(org.apache.openjpa.meta.ClassMetaData)"><B>getExpressionFactory(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#getExpressionFactory(org.apache.openjpa.meta.ClassMetaData)"><B>getExpressionFactory(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Return an <A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>ExpressionFactory</CODE></A> to use to create an expression to
 be executed against an extent.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getExtendsDec(int)"><B>getExtendsDec(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Extends declaration.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getExtensionKeys()"><B>getExtensionKeys()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return all extension keys.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getExtensionKeys(java.lang.String)"><B>getExtensionKeys(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return all extension keys for the given vendor.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getExtensionVendors()"><B>getExtensionVendors()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return all vendors who have extension keys at this level.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getExternalizer()"><B>getExternalizer()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The name of this field's externalizer, or null if none.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getExternalizerMethod()"><B>getExternalizerMethod()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The externalizer method.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getExternalValue(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>getExternalValue(Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Convert the given field value to its external value through the
 provided externalizer, or return the value as-is if no externalizer.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getExternalValueMap()"><B>getExternalValueMap()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return the mapping of field values to external values.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getExternalValues()"><B>getExternalValues()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Properties string mapping field values to external values.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getExtraFieldDataIndex(int)"><B>getExtraFieldDataIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the impl / intermediate field data index of the given field
 in the compacted array, or -1 if the field does not use extra data.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getExtraFieldDataLength()"><B>getExtraFieldDataLength()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the number of fields that use impl or intermediate data, in
 order to create a compacted array for storage of said data.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getExtraNameCharacters()"><B>getExtraNameCharacters()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFactory()"><B>getFactory()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The name of this field's factory, or null if none.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getFactoryInitializationBanner()"><B>getFactoryInitializationBanner()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Return an object to be written to the log when this broker factory
 initializes.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFactoryMethod()"><B>getFactoryMethod()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The factory method or constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Return the failed object to include in optimistic lock exceptions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>This implementation does not track failed objects.
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>The failed object.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#getFailedObject()"><B>getFailedObject()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>The failed object.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#getFatal(java.lang.String)"><B>getFatal(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string matching the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#getFatal(java.lang.String, java.lang.Object)"><B>getFatal(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string matching the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#getFatal(java.lang.String, java.lang.Object, java.lang.Object)"><B>getFatal(String, Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string for the given key.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#getFatal(java.lang.String, java.lang.Object[])"><B>getFatal(String, Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Return the localized string matching the given key.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Get the size of the batch that will be pre-selected when accessing
 elements in a query or relationship.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return the fetch batch size for large result set support.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Return the fetch batch size for large result set support.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getFetchBatchSize()"><B>getFetchBatchSize()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Return the current default fetch configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Return the (mutable) fetch configuration for this extent.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the fetch configuration for this query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getFetchConfiguration()"><B>getFetchConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the (mutable) fetch configuration for loading objects from this
 context.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The JDBC fetch direction.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The fetch direction to use as a constant from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html" title="class or interface in java.sql"><CODE>ResultSet</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Result set fetch direction.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getFetchDirection()"><B>getFetchDirection()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getFetchDirectionConstant()"><B>getFetchDirectionConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the result set constant for the fetch direction.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getFetchDirectionConstant()"><B>getFetchDirectionConstant()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getFetchGroup(java.lang.String)"><B>getFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Gets a named fecth group.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Comma-separated list of fetch group names that will be pre-set for
 all new <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Returns immutable set of names of the fetch groups that this component
 will use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Returns the names of the fetch groups that this component will use
 when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getFetchGroups()"><B>getFetchGroups()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFetchGroupsList()"><B>getFetchGroupsList()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>List of fetch group names that will be pre-set for all new
 <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFetchGroupsList()"><B>getFetchGroupsList()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getFetchInnerJoins()"><B>getFetchInnerJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getFetchInnerJoins()"><B>getFetchInnerJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Returns the names of the inner fetch joins that this component will use
 when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getFetchInnerJoins()"><B>getFetchInnerJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getFetchPlan()"><B>getFetchPlan()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#getFetchPlan()"><B>getFetchPlan()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>Fetch configuration for controlling how iterated objects are loaded.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#getFetchPlan()"><B>getFetchPlan()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getFetchPlan()"><B>getFetchPlan()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the (mutable) fetch plan for loading objects from this
 entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getFetchPlan()"><B>getFetchPlan()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Fetch plan for controlling the loading of results.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getFetchPlan()"><B>getFetchPlan()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getFetchSize()"><B>getFetchSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getFetchSize()"><B>getFetchSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getFetchSize()"><B>getFetchSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getFetchSize()"><B>getFetchSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getField(int)"><B>getField(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the metadata for the persistent or transactional field with
 the given absolute index.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getField(java.lang.String)"><B>getField(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the metadata for the persistent or transactional field with
 the given name.
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#getField(int)"><B>getField(int)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Get the data for the field with the given index.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#getFieldAccess()"><B>getFieldAccess()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Return the default field ACCESS constant for generated fields from
 <CODE>Constants</CODE>.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getFieldAnnotations(org.apache.openjpa.meta.FieldMetaData)"><B>getFieldAnnotations(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return field-level annotations.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getFieldCode(org.apache.openjpa.meta.FieldMetaData)"><B>getFieldCode(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return a code template for the get/set methods of the given field, or
 null to use the system-generated default Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getFieldCode(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getFieldCode(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getFieldCode(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getFieldCode(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return a code template for the get/set methods of the given field, or
 null to use the system-generated default Java code.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getFieldCount()"><B>getFieldCount()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Return the number of fields, regardless of type
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getFieldGenerator(java.lang.Class, java.lang.String)"><B>getFieldGenerator(Class, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getFieldGenerator(java.lang.Class, java.lang.String)"><B>getFieldGenerator(Class, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Returns a <A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence"><CODE>Generator</CODE></A> for the generated values of the specified
 type, or null if the field is not generated.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#getFieldIndex()"><B>getFieldIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html#getFieldIndex()"><B>getFieldIndex()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta">Joinable</A>
<DD>Return the field index of this joinable, or -1 if not a field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getFieldIndex()"><B>getFieldIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getFieldIndex()"><B>getFieldIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getFieldIndex()"><B>getFieldIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getFieldIndex()"><B>getFieldIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getFieldInstructionFieldAction(serp.bytecode.FieldInstruction)"><B>getFieldInstructionFieldAction(FieldInstruction)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for FieldInstruction.getField().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>If this is a path to a persistent field, return its mapping, else
 return null.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getFieldMapping(int)"><B>getFieldMapping(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getField(int)"><CODE>ClassMetaData.getField(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getFieldMapping(java.lang.String)"><B>getFieldMapping(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getField(int)"><CODE>ClassMetaData.getField(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>The owning field mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>The owning field mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getFieldMetaData()"><CODE>ValueMetaData.getFieldMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getFieldMapping()"><B>getFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getFieldMapping(java.lang.String)"><B>getFieldMapping(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getFieldMapping(java.lang.String)"><B>getFieldMapping(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getFieldMapping(java.lang.String)"><B>getFieldMapping(String)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return XMLMapping for a given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getFieldMappings()"><B>getFieldMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getFields()"><CODE>ClassMetaData.getFields()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getFieldMappingsInListingOrder()"><B>getFieldMappingsInListingOrder()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getFieldsInListingOrder()"><CODE>ClassMetaData.getFieldsInListingOrder()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFieldMetaData()"><B>getFieldMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getFieldMetaData()"><B>getFieldMetaData()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Return the owning field for this value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getFieldMetaData()"><B>getFieldMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#getFieldName(int)"><B>getFieldName(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Return the name for the generated field at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getFieldName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, java.lang.String)"><B>getFieldName(ClassMapping, Column[], ForeignKey, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getFieldName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, java.lang.String)"><B>getFieldName(ClassMapping, Column[], ForeignKey, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return the field name used to map the given columns, or null to prevent
 the columns from being mapped.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getFieldName(java.lang.String, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getFieldName(String, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return a default Java identifier-formatted name for the given
 column/table name.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getFieldName(java.lang.String)"><B>getFieldName(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return the field name for given suggested name, possibly adding
 leading underscore.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getFieldName(java.lang.reflect.Member)"><B>getFieldName(Member)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Return the field name for the given member.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#getFieldNames(java.lang.Class)"><B>getFieldNames(Class)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Get the field names for a <code>PersistenceCapable</code> class.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getFieldOverride()"><B>getFieldOverride()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Whether to use field-level override or class-level override.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getFields()"><B>getFields()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getFields()"><B>getFields()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Returns the set of fully-qualified field names that this component
 will use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getFields()"><B>getFields()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getFields()"><B>getFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return all field metadatas, including superclass fields.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getFields()"><B>getFields()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Returns the fully qualified names of the fields that this component
 will use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getFields()"><B>getFields()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getFieldsInListingOrder()"><B>getFieldsInListingOrder()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Returns all fields in the order they are listed in the metadata
 file.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getFieldStrategy(java.lang.String)"><B>getFieldStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Association of a field value type name with the handler or strategy
 class name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getFieldType(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>getFieldType(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the default field type for the given column.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#getFieldTypes(java.lang.Class)"><B>getFieldTypes(Class)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Get the field types for a <code>PersistenceCapable</code> class.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFieldValue(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>getFieldValue(Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return the result of passing the given external value through the
 factory to get the field value.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFieldValueMap()"><B>getFieldValueMap()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return the mapping of external values to field values.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return Java file to write to.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>Return the XML resource defining this schema.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html" title="interface in org.apache.openjpa.lib.meta">MetaDataIterator</A>
<DD>Return the last-iterated metadata resource content as a file, or null
 if not an extant file.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">URLMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#getFile(java.lang.String, java.lang.ClassLoader)"><B>getFile(String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Check the given string for a matching file.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The file to generate metadata to.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html#getFileHandler()"><B>getFileHandler()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html" title="class in org.apache.openjpa.xmlstore">XMLConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html" title="class in org.apache.openjpa.xmlstore"><CODE>XMLFileHandler</CODE></A> associated with this configuration.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#getFileMap()"><B>getFileMap()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Returns a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> with keys of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io"><CODE>File</CODE></A> to be
 written to, and values of a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util"><CODE>Collection</CODE></A> of
 <A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta"><CODE>SourceTracker</CODE></A> instances.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Resolver.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Resolver.html" title="interface in org.apache.openjpa.kernel.exps">Resolver</A>
<DD>Return the filter listener for the given tag, or null if none.
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the filter listener for the given tag, or null.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#getFilterListener(java.lang.String)"><B>getFilterListener(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Return the standard filter listener for the given tag, or null.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFilterListenerInstances()"><B>getFilterListenerInstances()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the query filter listeners.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFilterListenerInstances()"><B>getFilterListenerInstances()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFilterListeners()"><B>getFilterListeners()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A comma-separted list of the plugin strings of the query
 <A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>FilterListener</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFilterListeners()"><B>getFilterListeners()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getFilterListeners()"><B>getFilterListeners()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getFilterListeners()"><B>getFilterListeners()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The set of filter listeners.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getFilterListeners()"><B>getFilterListeners()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html#getFinishedTime(java.lang.Object)"><B>getFinishedTime(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph">DepthFirstAnalysis</A>
<DD>Return the logical time that the given node was finished in
 the graph walk, or -1 if the node is not part of the graph.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getFirstResult()"><B>getFirstResult()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Return the 0-based start index for the returned results.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getFirstResult()"><B>getFirstResult()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getFlag(int)"><B>getFlag(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Flags are used for bookkeeping information.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getFloat(int)"><B>getFloat(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the float at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getFloat(java.lang.Object, java.lang.reflect.Field)"><B>getFloat(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getFloat(java.lang.Object, java.lang.reflect.Method)"><B>getFloat(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getFloat(java.lang.Object)"><B>getFloat(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getFloat(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getFloat(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getFloat(java.sql.ResultSet, int)"><B>getFloat(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getFloat(java.lang.Object)"><B>getFloat(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getFloat(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getFloat(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getFloat(java.lang.Object)"><B>getFloat(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getFloat(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getFloat(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getFloat(int)"><B>getFloat(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getFloat(java.lang.String)"><B>getFloat(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getFloat(int)"><B>getFloat(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getFloat(java.lang.String)"><B>getFloat(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getFloatInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getFloatInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getFloatInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getFloatInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#getFloatProperty(java.lang.String, java.lang.String, float)"><B>getFloatProperty(String, String, float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getFloatProperty(java.lang.String)"><CODE>TypedProperties.getFloatProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getFloatProperty(java.lang.String)"><B>getFloatProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a float, or 0 if
 it does not exist and has no set default.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getFloatProperty(java.lang.String, float)"><B>getFloatProperty(String, float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a float, or the given
 default if it does not exist.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getFlushBeforeDetach()"><B>getFlushBeforeDetach()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>
 Whether OpenJPA should flush changes before detaching or serializing an
 entity.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFlushBeforeQueries()"><B>getFlushBeforeQueries()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Returns whether or not OpenJPA should automatically flush
 modifications to the data store before executing queries.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFlushBeforeQueries()"><B>getFlushBeforeQueries()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getFlushBeforeQueries()"><B>getFlushBeforeQueries()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getFlushBeforeQueries()"><B>getFlushBeforeQueries()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The query automatic flush configuration.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getFlushBeforeQueries()"><B>getFlushBeforeQueries()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFlushBeforeQueriesConstant()"><B>getFlushBeforeQueriesConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Returns one of <A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_TRUE"><CODE>QueryFlushModes.FLUSH_TRUE</CODE></A>,
 <A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_FALSE"><CODE>QueryFlushModes.FLUSH_FALSE</CODE></A>, or
 <A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_WITH_CONNECTION"><CODE>QueryFlushModes.FLUSH_WITH_CONNECTION</CODE></A>, as determined
 by parsing the string returned by <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getFlushBeforeQueries()"><CODE>OpenJPAConfiguration.getFlushBeforeQueries()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getFlushBeforeQueriesConstant()"><B>getFlushBeforeQueriesConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getFlushed()"><B>getFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getFlushed()"><B>getFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getFlushed()"><B>getFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getFlushed()"><B>getFlushed()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return a read-only mask of the indexes of all fields that have been
 flushed since they were last changed.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getFlushed()"><B>getFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getFlushMode()"><B>getFlushMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getFlushMode()"><B>getFlushMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Return the current flush mode.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getFlushMode()"><B>getFlushMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getForeignKey()"><B>getForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getForeignKey(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getForeignKey(ValueMapping, String, Table, Table, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default foreign key for the join from this value to its
 related type, or null for a logical foreign key only.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getForeignKey(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getForeignKey(ValueMapping, String, Table, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getForeignKey()"><B>getForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw foreign key information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getForeignKey(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getForeignKey(ValueMapping, String, Table, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getForeignKey()"><B>getForeignKey()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>If this value joins to another record, the foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getForeignKey(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Return an equivalent of this value's foreign key, but joining to the
 given target, which may be an unjoined subclass of this value's
 related type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getForeignKey()"><B>getForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getForeignKey(java.lang.String)"><B>getForeignKey(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the foreign key with the given name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getForeignKey()"><B>getForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getForeignKeyConstraintSQL(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getForeignKeyConstraintSQL(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the declaration SQL for the given foreign key, or null if it is
 not supported.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getForeignKeyConstraintSQL(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getForeignKeyConstraintSQL(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getForeignKeyDeleteAction()"><B>getForeignKeyDeleteAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default foreign key action for relation keys.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getForeignKeyIO(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getForeignKeyIO(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Return the I/O information for the given set foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getForeignKeys()"><B>getForeignKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether foreign keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#getForeignKeys()"><B>getForeignKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#getForeignKeys()"><B>getForeignKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Return whether foreign keys should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getForeignKeys()"><B>getForeignKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether foreign keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getForeignKeys()"><B>getForeignKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return all foreign keys for the table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getForeignKeySet(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getForeignKeySet(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Return the value for the given foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getForeignKeyWhere(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>getForeignKeyWhere(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Return the value for the given foreign key.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getForNameAction(java.lang.String, boolean, java.lang.ClassLoader)"><B>getForNameAction(String, boolean, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for Class.forName().
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#getForUpdateClause(org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, boolean, org.apache.openjpa.jdbc.sql.Select)"><B>getForUpdateClause(JDBCFetchConfiguration, boolean, Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>Get the update clause for the query based on the
 updateClause and isolationLevel hints
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getForUpdateClause(org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, boolean, org.apache.openjpa.jdbc.sql.Select)"><B>getForUpdateClause(JDBCFetchConfiguration, boolean, Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Get the update clause for the query based on the
 updateClause and isolationLevel hints
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getFrom(org.apache.openjpa.jdbc.sql.Select, boolean)"><B>getFrom(Select, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the portion of the select statement between the FROM keyword
 and the WHERE keyword.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getFrom()"><B>getFrom()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return the node the edge links from.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getFromSelect(org.apache.openjpa.jdbc.sql.Select, boolean)"><B>getFromSelect(Select, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the FROM clause for a select that selects from a tmp table
 created by an inner select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getFromSelect()"><B>getFromSelect()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getFromSelect()"><B>getFromSelect()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Another select instance that creates a temporary table from which
 this select pulls data.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getFromSelect()"><B>getFromSelect()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getFullName()"><B>getFullName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the column's full name, in the form &lt;table&gt;.&lt;name&gt;.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#getFullName()"><B>getFullName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return the full name of the constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getFullName()"><B>getFullName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>Return the sequence name, including schema, using '.' as the
 catalog separator.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getFullName()"><B>getFullName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the table name, including schema, using '.' as the
 catalog separator.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#getFullName(org.apache.openjpa.jdbc.schema.Index)"><B>getFullName(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getFullName(org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getFullName(Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the full name of the table, including the schema (delimited
 by <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#catalogSeparator"><CODE>DBDictionary.catalogSeparator</CODE></A>).
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getFullName(org.apache.openjpa.jdbc.schema.Index)"><B>getFullName(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the full name of the index, including the schema (delimited
 by the result of <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#catalogSeparator"><CODE>DBDictionary.catalogSeparator</CODE></A>).
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getFullName(org.apache.openjpa.jdbc.schema.Sequence)"><B>getFullName(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the full name of the sequence, including the schema (delimited
 by the result of <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#catalogSeparator"><CODE>DBDictionary.catalogSeparator</CODE></A>).
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html#getFullName(org.apache.openjpa.jdbc.schema.Index)"><B>getFullName(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PointbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFullName()"><B>getFullName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use getFullName(boolean) instead.</I>
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getFullName(boolean)"><B>getFullName(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The field name, qualified by the owning class and optionally the
 embedding owner's name (if any).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getGenerateAnnotations()"><B>getGenerateAnnotations()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to generate annotations along with generated code.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getGeneratedKey(org.apache.openjpa.jdbc.schema.Column, java.sql.Connection)"><B>getGeneratedKey(Column, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the last generated value for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getGeneratedKey(org.apache.openjpa.jdbc.schema.Column, java.sql.Connection)"><B>getGeneratedKey(Column, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getGeneratedKeys()"><B>getGeneratedKeys()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getGeneratedKeys()"><B>getGeneratedKeys()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getGeneratedKeys()"><B>getGeneratedKeys()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getGeneratedKeySequenceName(org.apache.openjpa.jdbc.schema.Column)"><B>getGeneratedKeySequenceName(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the sequence name used by databases for the given autoassigned
 column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getGeneratedKeyTriggerName(org.apache.openjpa.jdbc.schema.Column)"><B>getGeneratedKeyTriggerName(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Trigger name for simulating auto-assign values on the given column.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#getGenericContext()"><B>getGenericContext()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Persistence context.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getGenericContext()"><B>getGenericContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getGenericContext()"><B>getGenericContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getGenericContext()"><B>getGenericContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getGenericContext()"><B>getGenericContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getGrouping()"><B>getGrouping()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getGrouping()"><B>getGrouping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the grouping SQL for this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getGrouping()"><B>getGrouping()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getHandler()"><B>getHandler()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getHandler()"><B>getHandler()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The handler used for this value, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getHandler()"><B>getHandler()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getHaving()"><B>getHaving()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getHaving()"><B>getHaving()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the HAVING clause, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getHaving()"><B>getHaving()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getHierarchyStrategy()"><B>getHierarchyStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The default strategy for subclasses in this hierarchy.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getHint(java.lang.String)"><B>getHint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getHint(java.lang.String)"><B>getHint(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Returns the hint for the specific key, or null if the hint
 is not specified.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getHint(java.lang.String)"><B>getHint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getHintKeys()"><B>getHintKeys()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Query hints.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getHintValues()"><B>getHintValues()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Query hints.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getHoldability()"><B>getHoldability()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#getHoldCount()"><B>getHoldCount()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Queries the number of holds on this lock by the current thread.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getIcon(int)"><B>getIcon(int)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getId()"><B>getId()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the identifier for this state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#getId()"><B>getId()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Return the id of this instance.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getId()"><B>getId()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>An environment-specific identifier for this configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Id.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Primary key.
<DT><A HREF="./org/apache/openjpa/util/IntId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util">ObjectId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Getter for oid.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getIdentifierAliases()"><B>getIdentifierAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getIdentifierAliases()"><B>getIdentifierAliases()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Get the aliases for identifier columns that can be used in COUNT
 selects to find the number of matches.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getIdentifierAliases()"><B>getIdentifierAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getIdentifierQuoteString()"><B>getIdentifierQuoteString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getIdentityClassSuffix()"><B>getIdentityClassSuffix()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Suffix used to create application identity class name from a class name,
 or in the case of inner identity classes, the inner class name.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getIdentitySequence(org.apache.openjpa.meta.ClassMetaData)"><B>getIdentitySequence(ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Returns a <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A> for the datastore identity values of the
 specified persistent class, or null if the class' identity cannot be
 represented as a sequence.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getIdentitySequence(org.apache.openjpa.meta.ClassMetaData)"><B>getIdentitySequence(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getIdentitySequence(org.apache.openjpa.meta.ClassMetaData)"><B>getIdentitySequence(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getIdentitySequenceMetaData()"><B>getIdentitySequenceMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Metadata for the datastore identity sequence.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getIdentitySequenceName()"><B>getIdentitySequenceName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The datastore identity sequence name, or null for none.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getIdentityStrategy()"><B>getIdentityStrategy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The strategy to use for datastore identity generation.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getIdentityType()"><B>getIdentityType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The type of identity being used.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getIdGenerator(java.lang.Class)"><B>getIdGenerator(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getIdGenerator(java.lang.Class)"><B>getIdGenerator(Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Returns a <A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence"><CODE>Generator</CODE></A> for the datastore identity values of the
 specified type, or null if the type is unmanaged or its identity
 cannot be represented by a sequence.
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Id.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util">ObjectId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Return the identity value as an object.
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html#getIdObject()"><B>getIdObject()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether changes in the current transaction are taken into account when
 executing queries and iterating extents.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to take into account changes in the transaction when executing
 a query or iterating an extent.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Whether this extent will ignore changes made in the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Whether to ignore changes in the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>Whether the extent sees inserts and deletes in the current transaction.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to take into account changes in the transaction when executing
 a query or iterating an extent.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Whether to ignore changes in the current transaction.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getIgnoreChanges()"><B>getIgnoreChanges()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getIgnoreErrors()"><B>getIgnoreErrors()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Return false if this tool is configured to throw an exception on
 an attempt to generate an id class for a type that does not use
 application identity.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getIgnoreErrors()"><B>getIgnoreErrors()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether and SQL errors should cause a failure or just issue a warning.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getIgnoreErrors()"><B>getIgnoreErrors()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>If true, SQLExceptions thrown during schema manipulation will be
 printed but ignored.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getIgnoreNonPersistent()"><B>getIgnoreNonPersistent()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#getIgnoreSuperclassCallbacks()"><B>getIgnoreSuperclassCallbacks()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Whether to exclude superclass callbacks from events.
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#getIgnoreSystemListeners()"><B>getIgnoreSystemListeners()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Whether to exclude system listeners from events.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#getIgnoreUnmapped()"><B>getIgnoreUnmapped()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Whether unmapped classes should be ignored as possible primary
 key values in the table.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#getImplData()"><B>getImplData()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getImplData()"><B>getImplData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getImplData()"><B>getImplData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getImplData()"><B>getImplData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getImplData()"><B>getImplData()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>An object that concrete back ends can associate with each instance.
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Field-level impl data.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#getImplData()"><B>getImplData()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Returns the instance-level impl data, or null if none.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getImplData()"><B>getImplData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getImplData()"><B>getImplData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getImplData(int)"><B>getImplData(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html#getImplementation(java.lang.Class, java.lang.Class)"><B>getImplementation(Class, Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html" title="class in org.apache.openjpa.util">StoreFacadeTypeRegistry</A>
<DD>Return the implementation for the given facade and store.
<DT><A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html#getImplementation(java.lang.Class, java.lang.Class, java.lang.Class)"><B>getImplementation(Class, Class, Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html" title="class in org.apache.openjpa.util">StoreFacadeTypeRegistry</A>
<DD>Return the implementation for the given facade and store.
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementorClasses(java.lang.Class)"><B>getImplementorClasses(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementorClasses(java.lang.Class, java.lang.ClassLoader)"><B>getImplementorClasses(Class, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementorClasses(java.lang.String)"><B>getImplementorClasses(String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>Return an array of Class objects of all known service implementors of the
 specified class name(as resolved by the current thread's context class
 loader).
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementorClasses(java.lang.String, java.lang.ClassLoader)"><B>getImplementorClasses(String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementorClasses(java.lang.String, java.lang.ClassLoader, boolean)"><B>getImplementorClasses(String, ClassLoader, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>Return an array of Class objects of all known service implementors of the
 specified class name, as resolved by the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang"><CODE>ClassLoader</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getImplementorMappings(java.lang.Class, java.lang.ClassLoader, boolean)"><B>getImplementorMappings(Class, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getImplementorMetaDatas(java.lang.Class, java.lang.ClassLoader, boolean)"><B>getImplementorMetaDatas(Class, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return all least-derived metadatas with some mapped assignable type that
 implement the given class.
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementors(java.lang.Class)"><B>getImplementors(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>Return an array of Strings of class names of all known service
 implementors of the specified interface or class.
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementors(java.lang.Class, java.lang.ClassLoader)"><B>getImplementors(Class, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>Return an array of Strings of class names of all known service
 implementors of the specified interface or class.
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementors(java.lang.String)"><B>getImplementors(String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>Return an array of Strings of class names of all known service
 implementors of the specified class name(as resolved by the current
 thread's context class loader).
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#getImplementors(java.lang.String, java.lang.ClassLoader)"><B>getImplementors(String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>Return an array of Strings of class names of all known service
 implementors of the specified class name, as resolved by the specified
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang"><CODE>ClassLoader</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getImplementsDec(int)"><B>getImplementsDec(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Implements declaration.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getImportedKeys(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getImportedKeys(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to return foreign keys imported by the given
 table pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getImportedKeys(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getImportedKeys(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getImportedKeys(java.lang.String, java.lang.String, java.lang.String)"><B>getImportedKeys(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getImportPackages()"><B>getImportPackages()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Returns the collection of packages that need to be imported.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getImportPackages()"><B>getImportPackages()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Returns the set of packages that needs to be imported for this code.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#getIncrement()"><B>getIncrement()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getIncrement()"><B>getIncrement()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's increment.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#getIncrement()"><B>getIncrement()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getIncrement()"><B>getIncrement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Sequence increment, or -1 for default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getIndependentAssignableMappings()"><B>getIndependentAssignableMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Returns the closest-derived list of non-inter-joinable mapped types
 assignable to this type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>Return all independent mappings to which this strategy must join in
 order to access collection elements, or empty array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>Return all independent mappings to which this strategy must join in
 order to access collection elements, or empty array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#getIndependentElementMappings(boolean)"><B>getIndependentElementMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#getIndependentExpressionCandidates(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>getIndependentExpressionCandidates(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#getIndependentExpressionCandidates(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>getIndependentExpressionCandidates(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Return the assignable types for the given metadata whose expression
 trees must be compiled independently.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentKeyMappings(boolean)"><B>getIndependentKeyMappings(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Return all independent mappings to which this strategy must join in
 order to access map keys, or empty array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#getIndependentKeyMappings(boolean)"><B>getIndependentKeyMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getIndependentKeyMappings(boolean)"><B>getIndependentKeyMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getIndependentKeyMappings(boolean)"><B>getIndependentKeyMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getIndependentTypeMappings()"><B>getIndependentTypeMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getIndependentTypeMappings()"><B>getIndependentTypeMappings()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Return all independently-mapped joinable types for this value, depending
 on whether this value is polymorphic and how the related type is mapped.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getIndependentTypeMappings()"><B>getIndependentTypeMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentValueMappings(boolean)"><B>getIndependentValueMappings(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Return all independent mappings to which this strategy must join in
 order to access map values, or empty array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#getIndependentValueMappings(boolean)"><B>getIndependentValueMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getIndependentValueMappings(boolean)"><B>getIndependentValueMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getIndependentValueMappings(boolean)"><B>getIndependentValueMappings(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Index on the Discriminator columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#getIndex(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>getIndex(Discriminator, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>Return the index to set on the discriminator columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getIndex(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(ValueMapping, String, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default index for the value, or null if the value columns
 should not be indexed by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getIndex(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(Version, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default index for the version, or null if the
 version columns should not be indexed by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getIndex(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(Discriminator, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default index for the discriminator, or null if the
 discriminator columns should not be indexed by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndex(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndex(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(Version, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndex(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(Discriminator, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw index.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getIndex(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getIndex(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(Version, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getIndex(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndex(Discriminator, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getIndex(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, boolean)"><B>getIndex(ValueMapping, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return an index for the given columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Index on the version columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html#getIndex(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>getIndex(Version, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">VersionMappingInfo</A>
<DD>Return the index to set on the version columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the column's 0-based index in the owning table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the foreign key's 0-based index in the owning table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getIndex(java.lang.String)"><B>getIndex(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the index with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>The index of this row in ordered row list.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getIndex()"><B>getIndex()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The absolute index of this persistent/transactional field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndexDiscriminator()"><B>getIndexDiscriminator()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to index discriminator columns by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getIndexes()"><B>getIndexes()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether indexes on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#getIndexes()"><B>getIndexes()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#getIndexes()"><B>getIndexes()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Return whether indexes should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getIndexes()"><B>getIndexes()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether indexes on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getIndexes()"><B>getIndexes()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the table's indexes.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getIndexInfo(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.sql.Connection)"><B>getIndexInfo(DatabaseMetaData, String, String, String, boolean, boolean, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find indexes matching the given table pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getIndexInfo(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.sql.Connection)"><B>getIndexInfo(DatabaseMetaData, String, String, String, boolean, boolean, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getIndexInfo(java.lang.String, java.lang.String, java.lang.String, boolean, boolean)"><B>getIndexInfo(String, String, String, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndexLogicalForeignKeys()"><B>getIndexLogicalForeignKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to index logical foreign keys by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndexName(java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getIndexName(String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Generate an index name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getIndexVersion()"><B>getIndexVersion()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to index version columns by default.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getInitializer()"><B>getInitializer()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The initializer used by the field, or null if none.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getInitialValue(org.apache.openjpa.meta.FieldMetaData)"><B>getInitialValue(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return code for the initial value for the given field, or null to use
 the default generated by the system.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#getInitialValue()"><B>getInitialValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getInitialValue()"><B>getInitialValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Return the number as the initial number for the 
 GeneratedValue.TABLE strategy to start with.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getInitialValue(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getInitialValue(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getInitialValue(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>getInitialValue(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return code for the initial value for the given field, or null to use
 the default generated by the system.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#getInitialValue()"><B>getInitialValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>Return the initial value for version column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getInitialValue()"><B>getInitialValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's initial value.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getInitialValue()"><B>getInitialValue()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Initial sequence value, or -1 for default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getInnerIdentityClasses()"><B>getInnerIdentityClasses()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether or not to generate inner classes when creating application
 identity classes.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>Return the native delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>Return the base underlying native store manager.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>Return the base underlying data store statement.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Return the base underlying data store connection.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>Return the base underlying database metadata.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>Return the inner-most wrapped delegate.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>Return the base underlying data store statement.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>Return the inner-most wrapped delegate.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>Return the base underlying data store statement.
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#getInnermostDelegate()"><B>getInnermostDelegate()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>Innermost delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#getInnermostMappingDelegate()"><B>getInnermostMappingDelegate()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>Innermost mapping delegate.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html" title="interface in org.apache.openjpa.lib.meta">MetaDataIterator</A>
<DD>Return the last-iterated metadata resource content as a stream.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">URLMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getInserts()"><B>getInserts()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getInserts()"><B>getInserts()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return all inserted primary rows.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#getInsertTimestamp()"><B>getInsertTimestamp()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>If set to <code>true</code>, this properties object will add a
 timestamp to the beginning of the file, just after the header
 (if any) is printed.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html#getInstance(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>getInstance(ConfigurationProvider)</B></A> - 
Static method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreBrokerFactory</A>
<DD>Factory method for obtaining a possibly-pooled <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A>
 from properties.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#getInstance(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>getInstance(ConfigurationProvider)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>Factory method for obtaining a possibly-pooled factory from properties.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#getInstance(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>getInstance(JDBCConfiguration)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>Factory method for constructing a factory from a configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">BlobValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ByteArrayValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayStreamValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClobValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ImmutableValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>Return the singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneDiscriminatorStrategy</A>
<DD>Return singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneFieldStrategy</A>
<DD>Return the singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneVersionStrategy</A>
<DD>Return singleton instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>Singleton instance.
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel">UUIDHexSeq</A>
<DD>Return the singleton instance.
<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel">UUIDStringSeq</A>
<DD>Return the singleton instance.
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getInstance(java.lang.ClassLoader)"><B>getInstance(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Return the initialized sequence instance.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getInstantiatingGetter()"><B>getInstantiatingGetter()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The name of the getter method for the instantiated value of this
 property(as opposed to the string value)
<DT><A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html#getInstrumentation()"><B>getInstrumentation()</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance">InstrumentationFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getInt(int)"><B>getInt(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the int at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getInt(java.lang.Object, java.lang.reflect.Field)"><B>getInt(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getInt(java.lang.Object, java.lang.reflect.Method)"><B>getInt(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getInt(java.lang.Object)"><B>getInt(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getInt(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getInt(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getInt(java.sql.ResultSet, int)"><B>getInt(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getInt(java.lang.Object)"><B>getInt(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getInt(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getInt(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getInt(java.sql.ResultSet, int)"><B>getInt(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getInt(java.lang.Object)"><B>getInt(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getInt(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getInt(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getInt(int)"><B>getInt(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getInt(java.lang.String)"><B>getInt(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getInt(int)"><B>getInt(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getInt(java.lang.String)"><B>getInt(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#getIntegrityViolation()"><B>getIntegrityViolation()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>The type of integrity violation that occurred.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getInterfaceAliasedProperties(java.lang.Class)"><B>getInterfaceAliasedProperties(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return all aliases property named for the given interface.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getInterfaceImpl()"><B>getInterfaceImpl()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the managed interface implementor if any.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getInterfacePropertyAlias(java.lang.Class, java.lang.String)"><B>getInterfacePropertyAlias(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Get local field alias for the given interface property.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Use intermediate field data to store intermediate information that
 might be available before the field is fully loaded.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getIntermediate(int)"><B>getIntermediate(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#getInternal(java.lang.Object)"><B>getInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Return the object for the given oid.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#getInternal(org.apache.openjpa.datacache.QueryKey)"><B>getInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Return the list for the given key.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#getInternal(java.lang.Object)"><B>getInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#getInternal(org.apache.openjpa.datacache.QueryKey)"><B>getInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#getInternal(int)"><B>getInternal(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>Implement this method and <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#size()" title="class or interface in java.util"><CODE>List.size()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#getInternal(int)"><B>getInternal(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#getInternal(int)"><B>getInternal(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#getInternal(int)"><B>getInternal(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getInternalString()"><B>getInternalString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Return the internal string form of this value.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#getInterval()"><B>getInterval()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>The interval time in minutes between cache checks.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getIntExtension(java.lang.String)"><B>getIntExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as an int.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getIntExtension(java.lang.String, java.lang.String)"><B>getIntExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as an int.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getIntInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getIntInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getIntInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getIntInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#getIntProperty(java.lang.String, java.lang.String, int)"><B>getIntProperty(String, String, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getIntProperty(java.lang.String)"><CODE>TypedProperties.getIntProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getIntProperty(java.lang.String)"><B>getIntProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as an int, or 0 if
 it does not exist and has no set default.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getIntProperty(java.lang.String, int)"><B>getIntProperty(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as an int, or the given
 default if it does not exist.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getInverse()"><B>getInverse()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Logical inverse field.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getInverseManager()"><B>getInverseManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for managing inverse relations.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getInverseManager()"><B>getInverseManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getInverseManager()"><B>getInverseManager()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return the inverse manager in use.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getInverseManager()"><B>getInverseManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getInverseManager()"><B>getInverseManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getInverseMappings()"><B>getInverseMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getInverseMetaDatas()"><CODE>FieldMetaData.getInverseMetaDatas()</CODE></A>
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getInverseMetaDatas()"><B>getInverseMetaDatas()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return all inverses of this field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getInverseRelations()"><B>getInverseRelations()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to generate inverse 1-many/1-1 relations for all many-1/1-1
 relations.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getInverseTypeJoin(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, boolean)"><B>getInverseTypeJoin(ValueMapping, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return the join from the related type to this value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getIsolation()"><B>getIsolation()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getIsolation()"><B>getIsolation()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The isolation level for queries issued to the database.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getIsolation()"><B>getIsolation()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getIsolation()"><B>getIsolation()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>The isolation level for queries issued to the database.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getIsolation()"><B>getIsolation()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getJarFileUrls()"><B>getJarFileUrls()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>Return the code from <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> for the version values this
 strategy uses.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>Return the Java type code from <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> for the discriminator
 values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">TimestampVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The Java type the data in this column is treated as, from
 <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> or <A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>JavaSQLTypes</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#getJavaType(int, int, int)"><B>getJavaType(int, int, int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>Return the java type for the given SQL type from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getJDBCDelegate()"><B>getJDBCDelegate()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>Return the JDBC delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getJDBCListenerInstances()"><B>getJDBCListenerInstances()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>JDBCListener</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getJDBCListenerInstances()"><B>getJDBCListenerInstances()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getJDBCListeners()"><B>getJDBCListeners()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A comma-separated list of the <A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>JDBCListener</CODE></A> plugins for
 listening to <A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>JDBCEvent</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getJDBCListeners()"><B>getJDBCListeners()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#getJDBCLog()"><B>getJDBCLog()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>The log to write JDBC messages to.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getJDBCMajorVersion()"><B>getJDBCMajorVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getJDBCMinorVersion()"><B>getJDBCMinorVersion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#getJDBCName(int)"><B>getJDBCName(int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>Return the SQL type name for the given <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#getJDBCType(java.lang.String)"><B>getJDBCType(String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>Return the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A> constant for the given SQL type name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getJDBCType(int, boolean)"><B>getJDBCType(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the preferred <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A> constant for the given
 <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> or <A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>JavaSQLTypes</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getJDBCType(int, boolean)"><B>getJDBCType(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getJDBCType(int, boolean)"><B>getJDBCType(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#getJDBCType(int, boolean)"><B>getJDBCType(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getJoin(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getJoin(FieldMapping, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Return the join from the field table to the owning class table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getJoinable(org.apache.openjpa.jdbc.schema.Column)"><B>getJoinable(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return the <A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>Joinable</CODE></A> for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getJoinablePCSubclassMappings()"><B>getJoinablePCSubclassMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return mapped subclasses that are reachable via joins.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getJoinablePCSuperclassMapping()"><B>getJoinablePCSuperclassMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return the nearest mapped superclass that can join to this class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getJoinColumnIO()"><B>getJoinColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>I/O information on the join columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getJoinDirection()"><B>getJoinDirection()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getJoinDirection()"><B>getJoinDirection()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Direction of the join that the columns of this mapping info form.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getJoinDirection()"><B>getJoinDirection()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The join direction.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getJoinDirection()"><B>getJoinDirection()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getJoinForeignKey()"><B>getJoinForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Foreign key linking the primary key columns to the superclass table,
 or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getJoinForeignKey()"><B>getJoinForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Foreign key linking the field table to the class' primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getJoinForeignKey(ClassMapping, Table, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default foreign key for the join from this class' table to its
 superclass' table, or null for a logical foreign key only.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getJoinForeignKey(FieldMapping, Table, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default foreign key for the join from this field's table to its
 defining class' table, or null for a logical foreign key only.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getJoinForeignKey(ClassMapping, Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getJoinForeignKey(FieldMapping, Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getJoinForeignKey(ClassMapping, Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getJoinForeignKey(FieldMapping, Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#getJoinForeignKey()"><B>getJoinForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ContainerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>Return the foreign key used to join to the owning field for the given
 element mapping from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>LRSCollectionFieldStrategy.getIndependentElementMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Return the foreign key used to join to the owning field for the given
 mapping from either <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentKeyMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentKeyMappings(boolean)</CODE></A> or
 <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentValueMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentValueMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#getJoinForeignKey()"><B>getJoinForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#getJoinForeignKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getJoinForeignKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Return the foreign key used to join to the owning field for the given
 element mapping from <A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>ContainerFieldStrategy.getIndependentElementMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#getJoinForeignKey()"><B>getJoinForeignKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getJoinForeignKeyDeleteAction()"><B>getJoinForeignKeyDeleteAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default foreign key action for join keys.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getJoinIndex()"><B>getJoinIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Index on join foreign key columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getJoinIndex(org.apache.openjpa.jdbc.meta.FieldMapping, boolean)"><B>getJoinIndex(FieldMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Index on the field join.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getJoinIndex(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getJoinIndex(FieldMapping, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default index for the join, or null if the
 join columns should not be indexed by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getJoinIndex(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getJoinIndex(FieldMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getJoinIndex(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getJoinIndex(FieldMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getJoinIterator()"><B>getJoinIterator()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getJoinIterator()"><B>getJoinIterator()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the top-level <A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql"><CODE>Join</CODE></A> elements for this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getJoinIterator()"><B>getJoinIterator()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getJoins()"><B>getJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getJoins()"><B>getJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Returns the names of the joins that this component will use
 when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getJoins()"><B>getJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getJoins()"><B>getJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getJoins()"><B>getJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the top-level joins for this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getJoins()"><B>getJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The join syntax to use.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>The join syntax for this select, as one of the syntax constants from
 <A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>JoinSyntaxes</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>SQL join syntax.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getJoinSyntax()"><B>getJoinSyntax()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getJoinUnique()"><B>getJoinUnique()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Unique constraint on join foreign key columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getJoinUnique(org.apache.openjpa.jdbc.meta.FieldMapping, boolean, boolean)"><B>getJoinUnique(FieldMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Unique constraint on the field join.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getJoinUnique(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getJoinUnique(FieldMapping, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default constraint for the join, or null if the join columns
 should not be constrained by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getJoinUnique(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getJoinUnique(FieldMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getJoinUnique(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getJoinUnique(FieldMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#getJoinValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(Object, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#getJoinValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(OpenJPAStateManager, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html#getJoinValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(Object, Column, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta">Joinable</A>
<DD>Return the join value of the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html#getJoinValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(OpenJPAStateManager, Column, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta">Joinable</A>
<DD>Return the join value of the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getJoinValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(Object, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getJoinValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(OpenJPAStateManager, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getJoinValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(Object, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getJoinValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(OpenJPAStateManager, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getJoinValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(Object, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getJoinValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(OpenJPAStateManager, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getJoinValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(Object, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getJoinValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>getJoinValue(OpenJPAStateManager, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getJtaDataSource()"><B>getJtaDataSource()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getJtaDataSourceName()"><B>getJtaDataSourceName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html#getKey()"><B>getKey()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ExpirationEvent.html" title="class in org.apache.openjpa.datacache">ExpirationEvent</A>
<DD>Return the expired object id or query key.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#getKey()"><B>getKey()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html#getKey()"><B>getKey()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html" title="class in org.apache.openjpa.lib.util">Localizer.Message</A>
<DD>The unique key for the localized message.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getKey()"><B>getKey()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Metadata about the key value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getKeyColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getKeyColumns(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Return the columns holding data for a map key for the given key mapping
 from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentKeyMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentKeyMappings(boolean)</CODE></A> or
 <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentValueMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentValueMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getKeyColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getKeyColumns(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getKeyColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getKeyColumns(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getKeyMapping()"><B>getKeyMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getKey()"><CODE>FieldMetaData.getKey()</CODE></A>
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getKeySequence()"><B>getKeySequence()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The sequence of this join in the foreign key.
<DT><A HREF="./org/apache/openjpa/util/ProxyMap.html#getKeyType()"><B>getKeyType()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMap.html" title="interface in org.apache.openjpa.util">ProxyMap</A>
<DD>The map key type.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionParser</A>
<DD>Return a string key describing the language that this instance parses.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The query language.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Return the query language.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Query language.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getLanguage()"><B>getLanguage()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#getLength()"><B>getLength()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#getLevel()"><B>getLevel()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>The level to log at.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#getLevel(java.lang.String)"><B>getLevel(String)</B></A> - 
Static method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>Returns a symbolic constant for the specified string level.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#getLevel()"><B>getLevel()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#getLevelName(short)"><B>getLevelName(short)</B></A> - 
Static method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>Returns a string representation of the specified log level constant.
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#getLevenshteinDistance(java.lang.String, java.lang.String)"><B>getLevenshteinDistance(String, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>Returns the Levenshtein distance between the two strings.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getLexicalHandler()"><B>getLexicalHandler()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>The lexical handler that should be registered with the SAX parser used
 by this class.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getLifecycleEventManager()"><B>getLifecycleEventManager()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return the lifecycle event manager associated with the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getLifecycleEventManager()"><B>getLifecycleEventManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Give state managers access to the lifecycle event manager.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getLifecycleEventManager()"><B>getLifecycleEventManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getLifecycleListenerCallbackMode()"><B>getLifecycleListenerCallbackMode()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>The callback mode for handling exceptions from lifecycle event listeners.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getLifecycleListenerCallbackMode()"><B>getLifecycleListenerCallbackMode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getLifecycleListenerCallbackMode()"><B>getLifecycleListenerCallbackMode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getLifecycleListenerCallbackMode()"><B>getLifecycleListenerCallbackMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#getLifecycleListenerCallbackMode()"><B>getLifecycleListenerCallbackMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>The <A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><CODE>CallbackMode</CODE></A> flags for handling lifecycle listener
 exceptions.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getLifecycleMetaData()"><B>getLifecycleMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Information about lifecycle callbacks for this class.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#getLineLength()"><B>getLineLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getLinesBetweenSections()"><B>getLinesBetweenSections()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>The number of empty lines between code sections.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getLineSeparator()"><B>getLineSeparator()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return the value of the "line.separator" system property.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getListener()"><B>getListener()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Listener for value changes.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#getListeners()"><B>getListeners()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Return a read-only list of listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html#getListeners()"><B>getListeners()</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A>
<DD>Return a read-only list of listeners.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getListingIndex()"><B>getListingIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Relative order of result mapping in metadata.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getListingIndex()"><B>getListingIndex()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The index in which this class was listed in the metadata.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getListingIndex()"><B>getListingIndex()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The index in which this field was listed in the metadata.
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getListingIndex()"><B>getListingIndex()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>The index in which this class was listed in the metadata.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Return the loaded field mask.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return a read-only mask of the indexes of all loaded fields.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getLoaded()"><B>getLoaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#getLoaded(java.lang.Object[])"><B>getLoaded(Object[])</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>Get the loaded mask from a state image.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getLoadFetchGroup()"><B>getLoadFetchGroup()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The fetch group that is to be loaded when this receiver is loaded, or
 null if none set.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getLoadKey()"><B>getLoadKey()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The key under which this value was loaded, or null.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getLocale(java.lang.Object)"><B>getLocale(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getLocale(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getLocale(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getLocale(java.sql.ResultSet, int)"><B>getLocale(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getLocale(java.lang.Object)"><B>getLocale(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getLocale(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getLocale(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getLocale(java.lang.Object)"><B>getLocale(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getLocale(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getLocale(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getLocaleInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getLocaleInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getLocaleInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getLocaleInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getLocalizer()"><B>getLocalizer()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Used for obtaining the <A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util"><CODE>Localizer</CODE></A> to use for translating
 error messages.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getLocalizer()"><B>getLocalizer()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getLocation()"><B>getLocation()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>The XML document location.
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#getLocation(java.lang.String)"><B>getLocation(String)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>for customized responses
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#getLocation()"><B>getLocation()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#getLocator()"><B>getLocator()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getLock()"><B>getLock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getLock()"><B>getLock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getLock()"><B>getLock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getLock()"><B>getLock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>The lock object set for this instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getLock()"><B>getLock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getLockLevel(java.lang.Object)"><B>getLockLevel(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getLockLevel(java.lang.Object)"><B>getLockLevel(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#getLockLevel(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>getLockLevel(OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Return the lock level of the specified instance, or
 <A HREF="./org/apache/openjpa/kernel/LockLevels.html#LOCK_NONE"><CODE>LockLevels.LOCK_NONE</CODE></A> if not locked.
<DT><A HREF="./org/apache/openjpa/kernel/NoneLockManager.html#getLockLevel(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>getLockLevel(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/NoneLockManager.html" title="class in org.apache.openjpa.kernel">NoneLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getLockLevel(java.lang.Object)"><B>getLockLevel(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the lock level of the specified object.
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#getLockLevel(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>getLockLevel(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Returns the given instance's lock level, assuming that the state's
 lock object is a number.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for datastore lock management.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>If the lock manager in use is a <A HREF="./org/apache/openjpa/jdbc/kernel/JDBCLockManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCLockManager</CODE></A>, return it.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getLockManager()"><B>getLockManager()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the lock manager in use.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getLockMode(java.lang.Object)"><B>getLockMode(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getLockMode(java.lang.Object)"><B>getLockMode(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the lock mode of the given instance, or null if not locked.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The time to wait for an object lock in milliseconds, or -1 for no
 timeout.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The number of milliseconds to wait for an object lock, or -1 for no
 limit.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The number of milliseconds to wait for an object lock, or -1 for no
 limit.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getLockTimeout()"><B>getLockTimeout()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the log to write to.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getLog()"><B>getLog()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Log plugin setting.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return the log for the given category.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactory.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactory.html" title="interface in org.apache.openjpa.lib.log">LogFactory</A>
<DD>Return a log for the given channel name.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html" title="class in org.apache.openjpa.lib.log">LogFactoryAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>Returns a Log impl that combines all logs.
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">ClassAnnotationMetaDataFilter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the metadata log.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Metadata log.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#getLog()"><B>getLog()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Metadata log.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getLogFactory()"><B>getLogFactory()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>The log factory.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getLogFactory()"><B>getLogFactory()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getLoginTimeout()"><B>getLoginTimeout()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#getLoginTimeout()"><B>getLoginTimeout()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#getLogs()"><B>getLogs()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#getLogWriter()"><B>getLogWriter()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#getLogWriter()"><B>getLogWriter()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getLong(int)"><B>getLong(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the long at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getLong(java.lang.Object, java.lang.reflect.Field)"><B>getLong(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getLong(java.lang.Object, java.lang.reflect.Method)"><B>getLong(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getLong(java.lang.Object)"><B>getLong(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getLong(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getLong(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getLong(java.sql.ResultSet, int)"><B>getLong(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getLong(java.lang.Object)"><B>getLong(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getLong(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getLong(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getLong(java.sql.ResultSet, int)"><B>getLong(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getLong(java.lang.Object)"><B>getLong(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getLong(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getLong(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getLong(int)"><B>getLong(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getLong(java.lang.String)"><B>getLong(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getLong(int)"><B>getLong(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getLong(java.lang.String)"><B>getLong(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getLongInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getLongInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getLongInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getLongInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#getLongProperty(java.lang.String, java.lang.String, long)"><B>getLongProperty(String, String, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getLongProperty(java.lang.String)"><CODE>TypedProperties.getLongProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getLongProperty(java.lang.String)"><B>getLongProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a long, or 0 if
 it does not exist and has no set default.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#getLongProperty(java.lang.String, long)"><B>getLongProperty(String, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Return the property under the given key as a double, or the given
 default if it does not exist.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getLRSSize()"><B>getLRSSize()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>How to obtain the size of large result sets.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getLRSSize()"><B>getLRSSize()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getLRSSize()"><B>getLRSSize()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getLRSSize()"><B>getLRSSize()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The large result set size mode to use.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getLRSSize()"><B>getLRSSize()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getLRSSizeAlgorithm()"><B>getLRSSizeAlgorithm()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>How to determine the size of a large result set.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getLRSSizeAlgorithm()"><B>getLRSSizeAlgorithm()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getLRSSizeConstant()"><B>getLRSSizeConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>LRSSizes</CODE></A> constant for the large result set size
 setting.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getLRSSizeConstant()"><B>getLRSSizeConstant()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getManagedClassNames()"><B>getManagedClassNames()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ManagedInstanceProvider.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ManagedInstanceProvider.html" title="interface in org.apache.openjpa.enhance">ManagedInstanceProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the managed instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getManagedInstance()"><B>getManagedInstance()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#getManagedInstance(java.lang.Object)"><B>getManagedInstance(Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getManagedObjects()"><B>getManagedObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getManagedObjects()"><B>getManagedObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getManagedObjects()"><B>getManagedObjects()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return a list of all managed instances.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getManagedObjects()"><B>getManagedObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getManagedObjects()"><B>getManagedObjects()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return a set of all managed instances.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> to use for managed
 environments.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return the managed runtime in use.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#getManagedRuntime()"><B>getManagedRuntime()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>Return the managed runtime in use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getManagedRuntimeInstance()"><B>getManagedRuntimeInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for integrating with a managed runtime.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getManagedRuntimeInstance()"><B>getManagedRuntimeInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getManagedStates()"><B>getManagedStates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return a copy of all managed state managers.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getManagedType(java.lang.Object)"><B>getManagedType(Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getManagedType(java.lang.Object)"><B>getManagedType(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getManagedType(java.lang.Object)"><B>getManagedType(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#getManagedType(java.lang.Object)"><B>getManagedType(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return the persistent class for the given data store identity value.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getManagedTypeBytecode()"><B>getManagedTypeBytecode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Return the bytecode representation of the managed class being
 manipulated.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#getManageLRS()"><B>getManageLRS()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Return whether to manage LRS fields.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getManagement()"><B>getManagement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return the management level for the field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getMappedBy()"><B>getMappedBy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The field that this field shares a mapping with.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getMappedByMapping()"><B>getMappedByMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getMappedByMetaData()"><CODE>FieldMetaData.getMappedByMetaData()</CODE></A>
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getMappedByMetaData()"><B>getMappedByMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The field that this field shares a mapping with.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getMappedPCSubclassMappings()"><B>getMappedPCSubclassMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getMappedPCSubclassMetaDatas()"><CODE>ClassMetaData.getMappedPCSubclassMetaDatas()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getMappedPCSubclassMetaDatas()"><B>getMappedPCSubclassMetaDatas()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return all mapped subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getMappedPCSuperclassMapping()"><B>getMappedPCSuperclassMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getMappedPCSuperclassMetaData()"><CODE>ClassMetaData.getMappedPCSuperclassMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getMappedPCSuperclassMetaData()"><B>getMappedPCSuperclassMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the closest mapped superclass.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getMapping()"><B>getMapping()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The name mapping to use for this data store.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getMapping()"><B>getMapping()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getMapping(java.lang.Class, java.lang.ClassLoader, boolean)"><B>getMapping(Class, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getMapping(java.lang.Object, java.lang.ClassLoader, boolean)"><B>getMapping(Object, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#getMapping(java.lang.String)"><B>getMapping(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Return the mapping id for the given path supplied with
 <A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#addMapping(java.lang.String, java.lang.Object)"><CODE>QueryResultMapping.PCResult.addMapping(java.lang.String, java.lang.Object)</CODE></A>, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getMappingDefaults()"><B>getMappingDefaults()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>MappingDefaults</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getMappingDefaults()"><B>getMappingDefaults()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getMappingDefaults()"><B>getMappingDefaults()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Mapping defaults.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getMappingDefaultsInstance()"><B>getMappingDefaultsInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>MappingDefaults</CODE></A> to use with a repository.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getMappingDefaultsInstance()"><B>getMappingDefaultsInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#getMappingDelegate()"><B>getMappingDelegate()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>Mapping factory delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getMappingFactory()"><B>getMappingFactory()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> to use for
 loading and storing object-relational mapping data.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getMappingFactory()"><B>getMappingFactory()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#getMappingFile()"><B>getMappingFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Allow sequence to have a mapping file separate from its metadata
 source file.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getMappingFileNames()"><B>getMappingFileNames()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getMappingInfo()"><B>getMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Raw mapping data.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getMappingInfo()"><B>getMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Raw mapping data.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getMappingInfo()"><B>getMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Raw mapping data about field's join to parent table, as well as
 miscellaneous specialized columns like order column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getMappingInfo()"><B>getMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Raw mapping data.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getMappingOverride()"><B>getMappingOverride()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Whether to allow later parses of mapping information to override
 earlier information for the same class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getMappingOverride()"><B>getMappingOverride()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Whether to allow later parses of mapping information to override
 earlier information for the same class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#getMappingPaths()"><B>getMappingPaths()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Return the raw mapping paths supplied with <A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#addMapping(java.lang.String, java.lang.Object)"><CODE>QueryResultMapping.PCResult.addMapping(java.lang.String, java.lang.Object)</CODE></A>, or
 empty array if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getMappingRepository()"><B>getMappingRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getRepository()"><CODE>ClassMetaData.getRepository()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getMappingRepository()"><B>getMappingRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getMappingRepository()"><B>getMappingRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getRepository()"><CODE>FieldMetaData.getRepository()</CODE></A>
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getMappingRepository()"><B>getMappingRepository()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/MetaDataContext.html#getRepository()"><CODE>MetaDataContext.getRepository()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getMappingRepository()"><B>getMappingRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getMappingRepository()"><B>getMappingRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getMappingRepositoryInstance()"><B>getMappingRepositoryInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the mapping repository.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getMappingRepositoryInstance()"><B>getMappingRepositoryInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getMappings()"><B>getMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getMappings()"><B>getMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the generated mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getMappingWriter()"><B>getMappingWriter()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The stream to export the planned mappings to as an XML document.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getMapValue(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>getMapValue(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getMapValue(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>getMapValue(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getMapValue(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>getMapValue(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#getMaxActive()"><B>getMaxActive()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The maximum number of sockets that this provider can
 simetaneously open to each peer in the cluster.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxBinaryLiteralLength()"><B>getMaxBinaryLiteralLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxCatalogNameLength()"><B>getMaxCatalogNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxCharLiteralLength()"><B>getMaxCharLiteralLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxColumnNameLength()"><B>getMaxColumnNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxColumnsInGroupBy()"><B>getMaxColumnsInGroupBy()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxColumnsInIndex()"><B>getMaxColumnsInIndex()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxColumnsInOrderBy()"><B>getMaxColumnsInOrderBy()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxColumnsInSelect()"><B>getMaxColumnsInSelect()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxColumnsInTable()"><B>getMaxColumnsInTable()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxConnections()"><B>getMaxConnections()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxCursorNameLength()"><B>getMaxCursorNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The maximum relation depth to traverse when eager fetching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return the maximum depth of fetched instance graph.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The maximum fetch depth when loading an object.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getMaxFetchDepth()"><B>getMaxFetchDepth()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getMaxFieldSize()"><B>getMaxFieldSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getMaxFieldSize()"><B>getMaxFieldSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getMaxFieldSize()"><B>getMaxFieldSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#getMaxIdle()"><B>getMaxIdle()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The number of idle sockets that this provider can keep open
 to each peer in the cluster.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxIndexLength()"><B>getMaxIndexLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxProcedureNameLength()"><B>getMaxProcedureNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getMaxResults()"><B>getMaxResults()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Return the maximum number of results to retrieve.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getMaxResults()"><B>getMaxResults()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getMaxRows()"><B>getMaxRows()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getMaxRows()"><B>getMaxRows()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getMaxRows()"><B>getMaxRows()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxRowSize()"><B>getMaxRowSize()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxSchemaNameLength()"><B>getMaxSchemaNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#getMaxSize()"><B>getMaxSize()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#getMaxSize()"><B>getMaxSize()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#getMaxSize()"><B>getMaxSize()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#getMaxSize()"><B>getMaxSize()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/SizedMap.html#getMaxSize()"><B>getMaxSize()</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/SizedMap.html" title="interface in org.apache.openjpa.lib.util">SizedMap</A>
<DD>The maximum number of entries, or Integer.MAX_VALUE for no limit.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxStatementLength()"><B>getMaxStatementLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxStatements()"><B>getMaxStatements()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxTableNameLength()"><B>getMaxTableNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxTablesInSelect()"><B>getMaxTablesInSelect()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getMaxUserNameLength()"><B>getMaxUserNameLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html" title="class in org.apache.openjpa.lib.util">Localizer.Message</A>
<DD>The localized message.
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getMessage()"><B>getMessage()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>Exception message.
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#getMessageListener()"><B>getMessageListener()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Return metadata for the type we are generating an application id for.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return metadata for the type being generated.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Return the metadata for the class being manipulated, or null if not
 a persistent type.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getMetaData(java.lang.Class, boolean)"><B>getMetaData(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Convenience method to get metadata for the given type.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getMetaData(java.lang.Class, boolean, java.lang.ClassLoader)"><B>getMetaData(Class, boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Convenience method to get metadata for the given type.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Return any associated persistent type.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Get the metadata for this instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getMetaData(boolean)"><B>getMetaData(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Return the metadata, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingDatabaseMetaData</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getMetaData(java.lang.Class, java.lang.ClassLoader, boolean)"><B>getMetaData(Class, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the metadata for the given class.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getMetaData(java.lang.String, java.lang.ClassLoader, boolean)"><B>getMetaData(String, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the metadata for the given alias name.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getMetaData(java.lang.Object, java.lang.ClassLoader, boolean)"><B>getMetaData(Object, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the least-derived class metadata for the given application
 identity object.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#getMetaData(java.lang.Object)"><B>getMetaData(Object)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Returns the <A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta"><CODE>ClassMetaData</CODE></A> associated with the
 persistent object <code>o</code>.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#getMetaData(javax.persistence.EntityManager, java.lang.Class)"><B>getMetaData(EntityManager, Class)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Returns the <A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta"><CODE>ClassMetaData</CODE></A> associated
 with the persistent type <code>cls</code>.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#getMetaData(javax.persistence.EntityManagerFactory, java.lang.Class)"><B>getMetaData(EntityManagerFactory, Class)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Returns the <A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta"><CODE>ClassMetaData</CODE></A> associated
 with the persistent type <code>cls</code>.
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#getMetaData()"><B>getMetaData()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Get the metadata associated with the type of persistent object for
 which this data applies.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getMetaDataFactory()"><B>getMetaDataFactory()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getMetaDataFactory()"><B>getMetaDataFactory()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getMetaDataFactory()"><B>getMetaDataFactory()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The I/O used to load metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getMetaDataFile()"><B>getMetaDataFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>If adding metadata, the metadata file to add to.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getMetaDataRepository()"><B>getMetaDataRepository()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta"><CODE>MetaDataRepository</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getMetaDataRepository()"><B>getMetaDataRepository()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getMetaDataRepositoryInstance()"><B>getMetaDataRepositoryInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The metadata repository of managed class information.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getMetaDataRepositoryInstance()"><B>getMetaDataRepositoryInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getMetaDatas()"><B>getMetaDatas()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return all the metadata instances currently in the repository.
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#getMethod(java.lang.Class, java.lang.String, java.lang.Class[])"><B>getMethod(Class, String, Class[])</B></A> - 
Static method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>Helper method to return the named method of the given class, throwing
 the proper exception on error.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getMethodDescriptors()"><B>getMethodDescriptors()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>The parse mode.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>The parse mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getMoreResults()"><B>getMoreResults()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getMoreResults(int)"><B>getMoreResults(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getMoreResults()"><B>getMoreResults()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getMoreResults(int)"><B>getMoreResults(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getMoreResults()"><B>getMoreResults()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getMoreResults(int)"><B>getMoreResults(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/GeneratedClasses.html#getMostDerivedLoader(java.lang.Class, java.lang.Class)"><B>getMostDerivedLoader(Class, Class)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneratedClasses.html" title="class in org.apache.openjpa.util">GeneratedClasses</A>
<DD>Return the more derived loader of the class laoders for the given 
 classes.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#getMultiLine()"><B>getMultiLine()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>If true, then try to parse multi-line SQL statements.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether brokers or their managed objects will be used by multiple
 concurrent threads.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether the broker or its managed instances are used in a multithreaded
 environment.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getMultithreaded()"><B>getMultithreaded()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether the entity manager or its managed instances are used in a
 multithreaded environment.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Returns a string name that can be used by end-user-visible
 code to identify this cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Return the name for this query result.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the column's name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return the name of the constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Return the name of the schema, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>Return the name of the sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the name of the table.
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Return the name for this savepoint.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.Resource.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.Resource.html" title="interface in org.apache.openjpa.lib.meta">MetaDataFilter.Resource</A>
<DD>The name of the resource.
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Fetch group name.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The field name.
<DT><A HREF="./org/apache/openjpa/meta/Order.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Order.html" title="interface in org.apache.openjpa.meta">Order</A>
<DD>Return the name of the orderable.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Return the name for this query.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>The sequence name.
<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html#getName(int)"><B>getName(int)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta">UpdateStrategies</A>
<DD>Convert the given strategy to a name.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#getName(int)"><B>getName(int)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>Convert the given strategy to a name.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return the mapping name.
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence">Generator</A>
<DD>The sequence name.
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getNamedGenerator(java.lang.String)"><B>getNamedGenerator(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getNamedGenerator(java.lang.String)"><B>getNamedGenerator(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the named generator defined in the metadata.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getNamedParameters()"><B>getNamedParameters()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>The named parameters for the query; empty map if none or
 if query uses named parameters.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getNamedParameters()"><B>getNamedParameters()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>The nested throwables.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#getNestedThrowables()"><B>getNestedThrowables()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>The nested throwables.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#getNewline()"><B>getNewline()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#getNewTableSchema(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>getNewTableSchema(JDBCConfiguration)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>Return the schema name that should be used for new tables, or null if
 none.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getNewTempClassLoader()"><B>getNewTempClassLoader()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#getNextSequence()"><B>getNextSequence()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getNextSequence()"><B>getNextSequence()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getNextSequence()"><B>getNextSequence()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#getNextSequence()"><B>getNextSequence()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>The next element sequence value for this proxy at load time.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#getNodes()"><B>getNodes()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Return a view of all nodes in the graph.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#getNonEmptyValue(int)"><B>getNonEmptyValue(int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>Return a non-empty value object for the given type code.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getNonJtaDataSource()"><B>getNonJtaDataSource()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getNonJtaDataSourceName()"><B>getNonJtaDataSourceName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getNonMappedInterface(java.lang.Class)"><B>getNonMappedInterface(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Gets the metadata corresponding to the given non-mapped interface.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getNonMappedInterfaces()"><B>getNonMappedInterfaces()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Gets the corresponding metadatas for all registered, non-mapped
 interfaces
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getNonOptimisticVersionCheck()"><B>getNonOptimisticVersionCheck()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether or not to perform a version check on instances being updated
 in a datastore transaction.
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#getNonPCSuperclassCallbacks(int)"><B>getNonPCSuperclassCallbacks(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Return the callbacks for the non-PC superclass.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether persistent state is accessible outside a transaction by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to allow nontransactional access to persistent state.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getNontransactionalRead()"><B>getNontransactionalRead()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to allow nontransactional access to persistent state.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether persistent state can be modified outside a transaction by
 default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to allow nontransactional changes to persistent state.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getNontransactionalWrite()"><B>getNontransactionalWrite()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to allow nontransactional changes to persistent state.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getNull()"><B>getNull()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getNull()"><B>getNull()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing null.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getNull()"><B>getNull()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getNullableAsObject()"><B>getNullableAsObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return whether even nullable columns will be mapped to wrappers
 rather than primitives.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getNullIndicatorColumn(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getNullIndicatorColumn(ValueMapping, String, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return the null indicator column for this value, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getNullIndicatorColumnName()"><B>getNullIndicatorColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for null indicator columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html#getNullIndicatorValue(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>getNullIndicatorValue(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbeddedClassStrategy</A>
<DD>Return the proper synthetic null indicator value for the given instance.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getNullValue()"><B>getNullValue()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>How the data store should treat null values for this field:
 
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_UNSET"><CODE>FieldMetaData.NULL_UNSET</CODE></A>: no value supplied
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_NONE"><CODE>FieldMetaData.NULL_NONE</CODE></A>: leave null values as null in the data store
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_EXCEPTION"><CODE>FieldMetaData.NULL_EXCEPTION</CODE></A>: throw an exception if this field is null
 at commit
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_DEFAULT"><CODE>FieldMetaData.NULL_DEFAULT</CODE></A>: use the database default if this field is
 null at commit
  Defaults to <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_UNSET"><CODE>FieldMetaData.NULL_UNSET</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getNumber(java.lang.Object)"><B>getNumber(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getNumber(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getNumber(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getNumber(java.sql.ResultSet, int)"><B>getNumber(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the specified column value as an unknown numeric type;
 we try from the most generic to the least generic.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getNumber(java.lang.Object)"><B>getNumber(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getNumber(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getNumber(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getNumber(java.lang.Object)"><B>getNumber(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getNumber(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getNumber(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getNumberInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getNumberInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getNumberInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getNumberInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#getNumBroadcastThreads()"><B>getNumBroadcastThreads()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The number of worker threads that are used for
 transmitting packets to peers in the cluster.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getNumericFunctions()"><B>getNumericFunctions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getObject(int)"><B>getObject(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the object at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getObject(java.lang.Object, int, java.lang.Object)"><B>getObject(Object, int, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getObject(Column, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getObject(java.sql.ResultSet, int, java.util.Map)"><B>getObject(ResultSet, int, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getObject(java.lang.Object, int, java.lang.Object)"><B>getObject(Object, int, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getObject(Column, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getObject(java.sql.ResultSet, int, java.util.Map)"><B>getObject(ResultSet, int, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getObject(java.lang.Object, int, java.lang.Object)"><B>getObject(Object, int, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getObject(Column, Object, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getObject(int)"><B>getObject(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getObject(int, java.util.Map)"><B>getObject(int, Map)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getObject(java.lang.String)"><B>getObject(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getObject(java.lang.String, java.util.Map)"><B>getObject(String, Map)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getObject(int)"><B>getObject(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getObject(java.lang.String)"><B>getObject(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getObject(int, java.util.Map)"><B>getObject(int, Map)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getObject(java.lang.String, java.util.Map)"><B>getObject(String, Map)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getObjectCount()"><B>getObjectCount()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Return the number of object fields
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getObjectExtension(java.lang.String)"><B>getObjectExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value of an extension.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getObjectExtension(java.lang.String, java.lang.String)"><B>getObjectExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value of an extension.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getObjectId(org.apache.openjpa.kernel.exps.Value)"><B>getObjectId(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getObjectId(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.ForeignKey, boolean, org.apache.openjpa.jdbc.sql.Joins)"><B>getObjectId(JDBCStore, Result, ForeignKey, boolean, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return the oid value stored in the result.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#getObjectId(org.apache.openjpa.meta.ClassMetaData)"><B>getObjectId(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Implement this method to extract the object id value from the
 current record of the input.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getObjectId(java.lang.Object)"><B>getObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getObjectId(java.lang.Object)"><B>getObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getObjectId()"><B>getObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getObjectId()"><B>getObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getObjectId(org.apache.openjpa.kernel.exps.Value)"><B>getObjectId(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the object id of the given value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getObjectId(org.apache.openjpa.kernel.exps.Value)"><B>getObjectId(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getObjectId()"><B>getObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getObjectId()"><B>getObjectId()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the instance's object id.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getObjectId()"><B>getObjectId()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getObjectId(java.lang.Object)"><B>getObjectId(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the oid of the given instance.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getObjectId(java.lang.Object)"><B>getObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getObjectId(java.lang.Object)"><B>getObjectId(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the oid of the given instance.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getObjectIdClass(java.lang.Class)"><B>getObjectIdClass(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getObjectIdClass(java.lang.Class)"><B>getObjectIdClass(Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the application identity class the given persistent class uses
 for object ids, or null if not a type that uses application identity.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getObjectIdFieldType()"><B>getObjectIdFieldType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>For a primary key field, return the type of the corresponding object id 
 class field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getObjectIdFieldTypeCode()"><B>getObjectIdFieldTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>For a primary key field, return the type of the corresponding object id 
 class field.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getObjectIdType(java.lang.Class)"><B>getObjectIdType(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getObjectIdType(java.lang.Class)"><B>getObjectIdType(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getObjectIdType(java.lang.Class)"><B>getObjectIdType(Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the application or datastore identity class the given persistent
 class uses for object ids.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getObjectIdType()"><B>getObjectIdType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The metadata-specified class to use for the object ID.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getObjectInternal(java.lang.Object, int, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getObjectInternal(Object, int, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Return the value stored in the given id or column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getObjectInternal(java.lang.Object, int, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getObjectInternal(Object, int, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#getObjects()"><B>getObjects()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#getObjects()"><B>getObjects()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Return the current set of objects for serialization.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getObjects()"><B>getObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getObjects()"><B>getObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getOpenBrace(int)"><B>getOpenBrace(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Open brace string.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getOpenBrokers()"><B>getOpenBrokers()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Returns a set of all the open brokers associated with this factory.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getOpenJPA3GeneratedKeySequenceName(org.apache.openjpa.jdbc.schema.Column)"><B>getOpenJPA3GeneratedKeySequenceName(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Returns a OpenJPA 3-compatible name for an auto-assign sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getOpenJPA3GeneratedKeyTriggerName(org.apache.openjpa.jdbc.schema.Column)"><B>getOpenJPA3GeneratedKeyTriggerName(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Returns a OpenJPA 3-compatible name for an auto-assign trigger.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#getOpenJPATables()"><B>getOpenJPATables()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Whether to generate info on special tables used by OpenJPA components
 for bookkeeping.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getOpenJPATables()"><B>getOpenJPATables()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether to act on special tables used by OpenJPA components
 for bookkeeping.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getOpenParen(boolean)"><B>getOpenParen(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Open parentheses string.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getOperation(org.apache.openjpa.kernel.StoreQuery)"><B>getOperation(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getOperation()"><B>getOperation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getOperation()"><B>getOperation()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Returns the operation that this query will be expected to perform.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getOperation()"><B>getOperation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getOperation(org.apache.openjpa.kernel.StoreQuery)"><B>getOperation(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Returns the operation this executor is meant to execute.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getOperation()"><B>getOperation()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Query operation type.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getOperation()"><B>getOperation()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to use optimistic transactions by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to use optimistic transactional semantics.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getOptimistic()"><B>getOptimistic()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to use optimistic transactional semantics.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#getOptimizeClause(org.apache.openjpa.jdbc.sql.Select)"><B>getOptimizeClause(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getOrderColumn()"><B>getOrderColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Field order column, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getOrderColumn()"><B>getOrderColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Raw synthetic ordering column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getOrderColumn(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getOrderColumn(FieldMapping, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Return the ordering column for this field, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getOrderColumnIO()"><B>getOrderColumnIO()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>I/O information for order column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getOrderColumnName()"><B>getOrderColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for order columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getOrderDeclaration()"><B>getOrderDeclaration()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>String declaring the orderings for this field to be applied on load,
 or null.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getOrderDirtyObjects()"><B>getOrderDirtyObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getOrderDirtyObjects()"><B>getOrderDirtyObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getOrderDirtyObjects()"><B>getOrderDirtyObjects()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether to maintain the order in which objects are dirtied for
 <A HREF="./org/apache/openjpa/kernel/StoreContext.html#getDirtyObjects()"><CODE>StoreContext.getDirtyObjects()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getOrderDirtyObjects()"><B>getOrderDirtyObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getOrderDirtyObjects()"><B>getOrderDirtyObjects()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether dirty objects will be returned in the order they were dirtied.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getOrdered()"><B>getOrdered()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return the ordered primary rows.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getOrdering()"><B>getOrdering()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getOrdering()"><B>getOrdering()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getOrdering()"><B>getOrdering()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the ordering SQL for this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getOrdering()"><B>getOrdering()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.html#getOrdering()"><B>getOrdering()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Union.html" title="interface in org.apache.openjpa.jdbc.sql">Union</A>
<DD>Get the union-level ordering, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.ResultComparator.html#getOrderingValue(org.apache.openjpa.jdbc.sql.Result, int)"><B>getOrderingValue(Result, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.ResultComparator.html" title="interface in org.apache.openjpa.jdbc.sql">MergedResult.ResultComparator</A>
<DD>Return the ordering value of the current row of the given result.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getOrderingValue(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], java.lang.Object, int)"><B>getOrderingValue(StoreQuery, Object[], Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html#getOrderingValue(java.lang.Object, int, org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>getOrderingValue(Object, int, ResultObjectProvider)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html" title="class in org.apache.openjpa.kernel">OrderingMergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getOrderingValue(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], java.lang.Object, int)"><B>getOrderingValue(StoreQuery, Object[], Object, int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Extract the value of the <code>orderIndex</code>th ordering
 expression in <CODE>Query#getOrderingClauses</CODE> from the
 given result object.
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#getOrderingValue(java.lang.Object, int, org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>getOrderingValue(Object, int, ResultObjectProvider)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>Return the value to use for ordering on the given result value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getOrderLists()"><B>getOrderLists()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to order lists and arrays using a dedicated ordering column
 by default.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getOrders()"><B>getOrders()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The orderings for this field to be applied on load, or empty array.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getOrphanedKeyAction()"><B>getOrphanedKeyAction()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The action to take when an orphaned key is detected.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getOrphanedKeyAction()"><B>getOrphanedKeyAction()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getOrphanedKeyActionInstance()"><B>getOrphanedKeyActionInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The action to take when an orphaned key is detected.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getOrphanedKeyActionInstance()"><B>getOrphanedKeyActionInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getOther(java.lang.Object)"><B>getOther(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return the node on the opposite end of the given one, or null if the
 given node is not part of this edge.
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#getOutputStream(java.lang.String, java.lang.ClassLoader)"><B>getOutputStream(String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Return an output stream to the stream(stdout or stderr) or file named
 by the given string.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getOwner()"><B>getOwner()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the owning state if this is an embedded instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD><tt>null</tt> if not owned.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue.WaitNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getOwner()"><B>getOwner()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxy.html#getOwner()"><B>getOwner()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxy.html" title="interface in org.apache.openjpa.util">Proxy</A>
<DD>Return the owning object.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getOwnerField()"><B>getOwnerField()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getOwnerField()"><B>getOwnerField()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxy.html#getOwnerField()"><B>getOwnerField()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxy.html" title="interface in org.apache.openjpa.util">Proxy</A>
<DD>Return the owning field index.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getOwnerMetaData()"><B>getOwnerMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getOwnerMetaData()"><B>getOwnerMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getOwnerMetaData()"><B>getOwnerMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getOwnerMetaData()"><B>getOwnerMetaData()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the owning value.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getOwnerMetaData()"><B>getOwnerMetaData()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html#getPackage()"><B>getPackage()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataSerializer</A>
<DD>The default package for objects being serialized.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html#getPackage(java.lang.Object)"><B>getPackage(Object)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataSerializer</A>
<DD>Return the package name of the given object, or null if not in a
 package.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getPackage(java.lang.Object)"><B>getPackage(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#getPackageAttributeName()"><B>getPackageAttributeName()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>The attribute of the package element that holds the name, or null to
 use the element text.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getPackageAttributeName()"><B>getPackageAttributeName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#getPackageElementDepth()"><B>getPackageElementDepth()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>The depth of the package element.
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#getPackageFile(java.io.File, java.lang.String, boolean)"><B>getPackageFile(File, String, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Return the file for the given package.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getPackageName()"><B>getPackageName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the default package for the generated classes, or null if unset.
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html#getPackageName()"><B>getPackageName()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html" title="class in org.apache.openjpa.lib.util">Localizer.Message</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#getPagedFields(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, long)"><B>getPagedFields(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, long)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>Return a bit set representing batch select fields that will be paged,
 or null if no fields need paging, which indicates that this provider
 should not be used.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#getPageSize()"><B>getPageSize()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>Return the page size in use.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#getParameter(java.lang.String)"><B>getParameter(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Return the value set for the given parameter.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getParameterCount()"><B>getParameterCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>The number of parameters that will be set for this row.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getParameterDeclaration()"><B>getParameterDeclaration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getParameterDeclaration()"><B>getParameterDeclaration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The parameter declaration.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getParameterDeclaration()"><B>getParameterDeclaration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#getParameterizedTypes(java.lang.reflect.Field)"><B>getParameterizedTypes(Field)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Collects the parameterized type declarations for a given field.
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#getParameterizedTypes(java.lang.reflect.Method)"><B>getParameterizedTypes(Method)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Collects the parameterized return type declarations for a given method.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getParameterMetaData()"><B>getParameterMetaData()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getParameterMetaData()"><B>getParameterMetaData()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#getParameterName()"><B>getParameterName()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Parameter.html#getParameterName()"><B>getParameterName()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Parameter.html" title="interface in org.apache.openjpa.kernel.exps">Parameter</A>
<DD>Returns the name of the parameter.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Return the list of parameter values.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getParameterTypes(org.apache.openjpa.kernel.StoreQuery)"><B>getParameterTypes(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getParameterTypes()"><B>getParameterTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getParameterTypes()"><B>getParameterTypes()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return a map of parameter name to type for this query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getParameterTypes()"><B>getParameterTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getParameterTypes(org.apache.openjpa.kernel.StoreQuery)"><B>getParameterTypes(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return a map of parameter names to types.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getParametrizedType(java.lang.String[])"><B>getParametrizedType(String[])</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Returns parametrized type string for given type(s).
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getParens()"><B>getParens()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Paired parentheses for empty method parameters.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getParent()"><B>getParent()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getParent()"><B>getParent()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the parent of this select, if it is a subselect.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getParent()"><B>getParent()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getParentAction(java.lang.ClassLoader)"><B>getParentAction(ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for loader.getParent().
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getParseComments()"><B>getParseComments()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether to parse element comments.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getParsedQuery()"><B>getParsedQuery()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getParsedQuery(java.lang.String)"><B>getParsedQuery(String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getParseText()"><B>getParseText()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether to parse element text.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#getParseType()"><B>getParseType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#getParseType()"><B>getParseType()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>The type the literal was parsed as.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getPathSeparator()"><B>getPathSeparator()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return the value of the "path.separator" system property.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getPayloadType()"><B>getPayloadType()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>The event PAYLOAD constant.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getPCBytecode()"><B>getPCBytecode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Return the bytecode representation of the persistence-capable class
 being manipulated.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#getPCDataGenerator()"><B>getPCDataGenerator()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Return the PCData generator if configured.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#getPCDataGenerator()"><B>getPCDataGenerator()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#getPCPrimaryKey(java.lang.Object, int)"><B>getPCPrimaryKey(Object, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Return the persistence-capable primary key object by extracting the 
 identity value of the related instance stored in the given field from 
 the given object id.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getPCPrimaryKey(java.lang.Object, int)"><B>getPCPrimaryKey(Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getPCPrimaryKey(java.lang.Object, int)"><B>getPCPrimaryKey(Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getPCPrimaryKey(java.lang.Object, int)"><B>getPCPrimaryKey(Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getPCPrimaryKey(java.lang.Object, int)"><B>getPCPrimaryKey(Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getPCResults()"><B>getPCResults()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Return the mapped persistence-capable types in the query result.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getPCState()"><B>getPCState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getPCState()"><B>getPCState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getPCState()"><B>getPCState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getPCState()"><B>getPCState()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the state that this object is in.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getPCState()"><B>getPCState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPCSubclasses()"><B>getPCSubclasses()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the known persistence capable subclasses of the described type,
 or empty array if none or if this is embedded metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getPCSubclassMappings()"><B>getPCSubclassMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPCSubclassMetaDatas()"><CODE>ClassMetaData.getPCSubclassMetaDatas()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPCSubclassMetaDatas()"><B>getPCSubclassMetaDatas()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the metadata for the known persistence capable subclasses of
 the described type, or empty array if none or if this is embedded
 metadata.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPCSuperclass()"><B>getPCSuperclass()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The persistence capable superclass of the described type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getPCSuperclassMapping()"><B>getPCSuperclassMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPCSuperclassMetaData()"><CODE>ClassMetaData.getPCSuperclassMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPCSuperclassMetaData()"><B>getPCSuperclassMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The metadata for this class' superclass.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#getPCType()"><B>getPCType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Implement this method to extract the type of the pc stored
 in the current record of the input.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getPendingTransactionalObjects()"><B>getPendingTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getPendingTransactionalObjects()"><B>getPendingTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getPendingTransactionalObjects()"><B>getPendingTransactionalObjects()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return a list of instances which will become transactional upon
 the next transaction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getPendingTransactionalObjects()"><B>getPendingTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getPendingTransactionalObjects()"><B>getPendingTransactionalObjects()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return a set of instances which will become transactional upon
 the next transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getPendingTransactionalStates()"><B>getPendingTransactionalStates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return a copy of all state managers which will become
 transactional upon the next transaction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getPersistedClasses()"><B>getPersistedClasses()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getPersistedClasses()"><B>getPersistedClasses()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the set of classes that have been made persistent in the current
 transaction.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getPersistedObjectIds()"><B>getPersistedObjectIds()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>When the event type is PAYLOAD_OIDS_WITH_ADDS, return the set of
 object IDs for added objects.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getPersistedTypeNames()"><B>getPersistedTypeNames()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>For all event types, return the set of class names for
 the classes of inserted objects.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#getPersistedTypes()"><B>getPersistedTypes()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Return the unmodifiable the set of classes of
 persistence capable objects that were created in the transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getPersistedTypes()"><B>getPersistedTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getPersistedTypes()"><B>getPersistedTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getPersistedTypes()"><B>getPersistedTypes()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the set of classes that have been made persistent in the current
 transaction.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getPersistenceAware(java.lang.Class)"><B>getPersistenceAware(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Gets the metadata corresponding to the given persistence-aware class.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getPersistenceAwares()"><B>getPersistenceAwares()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Gets all the metadatas for persistence-aware classes
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getPersistenceCapable()"><B>getPersistenceCapable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getPersistenceCapable()"><B>getPersistenceCapable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getPersistenceCapable()"><B>getPersistenceCapable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getPersistenceCapable()"><B>getPersistenceCapable()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the <A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A> instance that provides access to
 the instance managed by this state manager.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getPersistenceCapable()"><B>getPersistenceCapable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getPersistenceProviderClassName()"><B>getPersistenceProviderClassName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#getPersistenceStrategy(org.apache.openjpa.meta.FieldMetaData, java.lang.reflect.Member)"><B>getPersistenceStrategy(FieldMetaData, Member)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>Return the code for the strategy of the given member.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getPersistenceUnitName()"><B>getPersistenceUnitName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getPersistenceUnitRootUrl()"><B>getPersistenceUnitRootUrl()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getPersistenceXmlFileUrl()"><B>getPersistenceXmlFileUrl()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>The location of the persistence.xml resource.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#getPersistentSuperclass(java.lang.Class)"><B>getPersistentSuperclass(Class)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Return the persistent superclass for a <code>PersistenceCapable</code>
 class, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Return all persistent class names, using the metadata locations supplied
 in configuration, optionally scanning the classpath.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the set of configured persistent classes, or null if the user
 did not configure any.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getPersistentTypeNames(boolean, java.lang.ClassLoader)"><B>getPersistentTypeNames(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#getPinnedKeys()"><B>getPinnedKeys()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The keys pinned into the map.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getPlaceholderValueString(org.apache.openjpa.jdbc.schema.Column)"><B>getPlaceholderValueString(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a SQL string to act as a placeholder for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html#getPlaceholderValueString(org.apache.openjpa.jdbc.schema.Column)"><B>getPlaceholderValueString(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FirebirdDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getPlaceholderValueString(org.apache.openjpa.jdbc.schema.Column)"><B>getPlaceholderValueString(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getPlatform()"><B>getPlatform()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns a string name to identify the platform of this
 store manager.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#getPlugin(java.lang.String, java.lang.String)"><B>getPlugin(String, String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Combine the given class name and properties into a plugin string.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getPolymorphic()"><B>getPolymorphic()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getPolymorphic()"><B>getPolymorphic()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The degree to which this relation is polymorphic.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getPolymorphic()"><B>getPolymorphic()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getPooledFactory(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>getPooledFactory(OpenJPAConfiguration)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Return the pooled factory matching the given configuration, or null
 if none.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getPooledFactory(java.util.Map)"><B>getPooledFactory(Map)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Return the pooled factory matching the given configuration data, or null
 if none.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getPopulateDataCache()"><B>getPopulateDataCache()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getPopulateDataCache()"><B>getPopulateDataCache()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getPopulateDataCache()"><B>getPopulateDataCache()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether objects accessed during this transaction will be added to the
 store cache.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getPopulateStoreCache()"><B>getPopulateStoreCache()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getPopulateStoreCache()"><B>getPopulateStoreCache()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether objects accessed during this transaction will be added to the
 store cache.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#getPort()"><B>getPort()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The port that this provider should listen on.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getPositionalParameters()"><B>getPositionalParameters()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>The positional parameters for the query; empty array if none or
 if query uses named parameters.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getPositionalParameters()"><B>getPositionalParameters()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getPreferredType(int)"><B>getPreferredType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the preferred <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A> type for the given one.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getPreferredType(int)"><B>getPreferredType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getPreferredType(int)"><B>getPreferredType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#getPreferredType(int)"><B>getPreferredType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html#getPreferredType(int)"><B>getPreferredType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PointbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html#getPreFlush()"><B>getPreFlush()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html" title="class in org.apache.openjpa.kernel">InMemorySavepointManager</A>
<DD>Return whether to call <A HREF="./org/apache/openjpa/kernel/Broker.html#preFlush()"><CODE>Broker.preFlush()</CODE></A>
 when a savepoint is set.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#getPrependFieldNameToJoinTableInverseJoinColumns()"><B>getPrependFieldNameToJoinTableInverseJoinColumns()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>Whether to prepend the field name to the default name of inverse join
 columns within join tables.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#getPrettyPrint()"><B>getPrettyPrint()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#getPrettyPrintLineLength()"><B>getPrettyPrintLineLength()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getPrimaryKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getPrimaryKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Return the primary key value for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getPrimaryKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getPrimaryKey()"><B>getPrimaryKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the primary key for the table, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getPrimaryKey()"><B>getPrimaryKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#getPrimaryKey()"><B>getPrimaryKey()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Return the instance that controls this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getPrimaryKey()"><B>getPrimaryKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>This implementation does not track primary keys.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getPrimaryKeyColumn()"><B>getPrimaryKeyColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>The name of the table's primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#getPrimaryKeyColumn()"><B>getPrimaryKeyColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Name of primary key column, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Column)"><B>getPrimaryKeyColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the primary key column joined to the given local column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#getPrimaryKeyColumn()"><B>getPrimaryKeyColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>The name of the primary key column on the schema definition table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyColumnName()"><B>getPrimaryKeyColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The name of the primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getPrimaryKeyColumns()"><B>getPrimaryKeyColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The columns this mapping uses to uniquely identify an object.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyColumns()"><B>getPrimaryKeyColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the foreign columns in the foreign key, in join-order with
 the result of <A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getColumns()"><CODE>ForeignKey.getColumns()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyConstant(org.apache.openjpa.jdbc.schema.Column)"><B>getPrimaryKeyConstant(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the constant value assigned to the given primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyConstants()"><B>getPrimaryKeyConstants()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the constant values assigned to the primary key columns
 returned by <A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getConstantPrimaryKeyColumns()"><CODE>ForeignKey.getConstantPrimaryKeyColumns()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getPrimaryKeyConstraintSQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getPrimaryKeyConstraintSQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the declaration SQL for the given primary key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#getPrimaryKeyConstraintSQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getPrimaryKeyConstraintSQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getPrimaryKeyConstraintSQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getPrimaryKeyConstraintSQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getPrimaryKeyConstraintSQL(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>getPrimaryKeyConstraintSQL(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getPrimaryKeyFieldMappings()"><B>getPrimaryKeyFieldMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPrimaryKeyFields()"><CODE>ClassMetaData.getPrimaryKeyFields()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getPrimaryKeyFields()"><B>getPrimaryKeyFields()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return primary key fields, or empty array if none.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getPrimaryKeyIndex()"><B>getPrimaryKeyIndex()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The absolute primary key index for this field, or -1 if not a primary
 key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getPrimaryKeyName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table)"><B>getPrimaryKeyName(ClassMapping, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return the name of the primary key for the table of the given class,
 or null for database default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getPrimaryKeyName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table)"><B>getPrimaryKeyName(ClassMapping, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getPrimaryKeyName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table)"><B>getPrimaryKeyName(ClassMapping, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getPrimaryKeyOnJoin()"><B>getPrimaryKeyOnJoin()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return true if join tables are allowed to have primary keys, false
 if all primary key tables will be mapped as persistent classes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getPrimaryKeys()"><B>getPrimaryKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether primary keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#getPrimaryKeys()"><B>getPrimaryKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#getPrimaryKeys()"><B>getPrimaryKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Return whether primary keys should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getPrimaryKeys()"><B>getPrimaryKeys()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether primary keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getPrimaryKeys(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getPrimaryKeys(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find primary keys for the given table pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#getPrimaryKeys(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getPrimaryKeys(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getPrimaryKeys(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getPrimaryKeys(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getPrimaryKeys(java.lang.String, java.lang.String, java.lang.String)"><B>getPrimaryKeys(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeySchemaName()"><B>getPrimaryKeySchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The name of the primary key table's schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getPrimaryKeysFromBestRowIdentifier(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getPrimaryKeysFromBestRowIdentifier(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find primary keys for the given table pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getPrimaryKeysFromGetPrimaryKeys(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getPrimaryKeysFromGetPrimaryKeys(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find primary keys for the given table pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyTable()"><B>getPrimaryKeyTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Returns the table this foreign key is linking to, if it is known yet.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getPrimaryKeyTableName()"><B>getPrimaryKeyTableName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The name of the primary key table.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#getPrimaryKeyValue()"><B>getPrimaryKeyValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>The primary key value for this row.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#getPrimaryKeyValue(org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Joins)"><B>getPrimaryKeyValue(Result, Column[], ForeignKey, JDBCStore, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html#getPrimaryKeyValue(org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Joins)"><B>getPrimaryKeyValue(Result, Column[], ForeignKey, JDBCStore, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta">Joinable</A>
<DD>Return the value for this joinable from the given result, using the
 given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#getPrimaryKeyValue()"><B>getPrimaryKeyValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Primary key value, if not auto-determined.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getPrimaryKeyValue(org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Joins)"><B>getPrimaryKeyValue(Result, Column[], ForeignKey, JDBCStore, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getPrimaryKeyValue(org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Joins)"><B>getPrimaryKeyValue(Result, Column[], ForeignKey, JDBCStore, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getPrimaryKeyValue(org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Joins)"><B>getPrimaryKeyValue(Result, Column[], ForeignKey, JDBCStore, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getPrimaryKeyValue(org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Joins)"><B>getPrimaryKeyValue(Result, Column[], ForeignKey, JDBCStore, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getProcedureColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getProcedureColumns(String, String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getProcedures(java.lang.String, java.lang.String, java.lang.String)"><B>getProcedures(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getProcedureTerm()"><B>getProcedureTerm()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#getProductDerivations()"><B>getProductDerivations()</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Return all the product derivations registered in the current classloader
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getProductName()"><B>getProductName()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return the product name.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getProductName()"><B>getProductName()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getProjectionAliases(org.apache.openjpa.kernel.StoreQuery)"><B>getProjectionAliases(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getProjectionAliases()"><B>getProjectionAliases()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getProjectionAliases()"><B>getProjectionAliases()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>If this query is a projection, return the projection aliases.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getProjectionAliases()"><B>getProjectionAliases()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getProjectionAliases(org.apache.openjpa.kernel.StoreQuery)"><B>getProjectionAliases(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return the alias for each projection element, or empty array
 if not a projection.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getProjectionTypes(org.apache.openjpa.kernel.StoreQuery)"><B>getProjectionTypes(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getProjectionTypes()"><B>getProjectionTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getProjectionTypes()"><B>getProjectionTypes()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>If this query is a projection, return the projection types.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getProjectionTypes()"><B>getProjectionTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getProjectionTypes(org.apache.openjpa.kernel.StoreQuery)"><B>getProjectionTypes(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return the expected types of the projections used by this query,
 or an empty array if not a projection.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Subclasses should override this method to add a <code>Platform</code>
 property listing the runtime platform, such as:
 <code>OpenJPA JDBC Edition: Oracle Database</code>
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#getProperties()"><B>getProperties()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Return properties describing this runtime.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html#getProperties()"><B>getProperties()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf">ConfigurationProvider</A>
<DD>Return properties loaded thus far, or empty map if none.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#getProperties(java.lang.String)"><B>getProperties(String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Return the properties part of the given plugin string, or null if none.
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>The plugin properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>The plugin properties.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#getProperties()"><B>getProperties()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Return properties describing this runtime.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getPropertiesAction()"><B>getPropertiesAction()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for System.getProperties().
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getPropertiesResource()"><B>getPropertiesResource()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Return the resource that was set via auto-configuration methods
 <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setProperties(java.lang.String)"><CODE>ConfigurationImpl.setProperties(java.lang.String)</CODE></A> or <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setPropertiesFile(java.io.File)"><CODE>ConfigurationImpl.setPropertiesFile(java.io.File)</CODE></A>, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>Return the property value for the given key, or null if none.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#getProperty(java.lang.String, java.util.Map)"><B>getProperty(String, Map)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Get the property under the given partial key, prefixed with any possible
 configuration prefix.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getProperty()"><B>getProperty()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The property name that will be used when setting or
 getting this value in a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#getProperty(java.lang.String, java.lang.String)"><B>getProperty(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#getProperty(java.lang.String, java.lang.String, java.lang.String)"><B>getProperty(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#getProperty(java.lang.String)" title="class or interface in java.util"><CODE>Properties.getProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getPropertyAction(java.lang.String)"><B>getPropertyAction(String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for System.getProperty().
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getPropertyDescriptors()"><B>getPropertyDescriptors()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#getProvider()"><B>getProvider()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>The cached provider.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getProxyManager()"><B>getProxyManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util"><CODE>ProxyManager</CODE></A> to use for second
 class object proxies.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getProxyManager()"><B>getProxyManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getProxyManagerInstance()"><B>getProxyManagerInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util"><CODE>ProxyManager</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getProxyManagerInstance()"><B>getProxyManagerInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getProxyType()"><B>getProxyType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The type this field was initialized with, and therefore the
 type to use for proxies when loading data into this field.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getQuery()"><B>getQuery()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getQuery()"><B>getQuery()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the query for this context.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getQuery()"><B>getQuery()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getQueryCache()"><B>getQueryCache()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for level-2 data store query caching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getQueryCache()"><B>getQueryCache()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getQueryCacheEnabled()"><B>getQueryCacheEnabled()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getQueryCacheEnabled()"><B>getQueryCacheEnabled()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return whether or not query caching is enabled.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getQueryCacheEnabled()"><B>getQueryCacheEnabled()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getQueryCompilationCache()"><B>getQueryCompilationCache()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration settings for the query compilation cache to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getQueryCompilationCache()"><B>getQueryCompilationCache()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getQueryCompilationCacheInstance()"><B>getQueryCompilationCacheInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration settings for the query compilation cache to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getQueryCompilationCacheInstance()"><B>getQueryCompilationCacheInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getQueryKey(java.lang.Class, java.lang.String)"><B>getQueryKey(Class, String)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return a unique key for a given class / name.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getQueryMetaData(java.lang.Class, java.lang.String, java.lang.ClassLoader, boolean)"><B>getQueryMetaData(Class, String, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return query metadata for the given class, name, and classloader.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getQueryMetaDatas()"><B>getQueryMetaDatas()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the cached query metadata.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getQueryResultCache()"><B>getQueryResultCache()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#getQueryResultCache()"><B>getQueryResultCache()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Access query result cache.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getQueryResultCacheEnabled()"><B>getQueryResultCacheEnabled()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Return whether or not query caching is enabled.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getQueryResultCacheEnabled()"><B>getQueryResultCacheEnabled()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getQueryResultMapping(java.lang.Class, java.lang.String, java.lang.ClassLoader, boolean)"><B>getQueryResultMapping(Class, String, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the query result mapping for the given name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getQueryResultMappings()"><B>getQueryResultMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return all cached query result mappings.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#getQueryScope(java.lang.String, java.lang.ClassLoader)"><B>getQueryScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#getQueryScope(java.lang.String, java.lang.ClassLoader)"><B>getQueryScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#getQueryScope(java.lang.String, java.lang.ClassLoader)"><B>getQueryScope(String, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Return the type defining the given query name, if any.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getQueryScope(java.lang.String, java.lang.ClassLoader)"><B>getQueryScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getQueryScope(java.lang.String, java.lang.ClassLoader)"><B>getQueryScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The query string.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The full query string, or null if none.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Query string.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#getQueryTimeout()"><B>getQueryTimeout()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>The number of seconds to wait for a query to execute before
 terminating it.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getQueryTimeout()"><B>getQueryTimeout()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getQueryTimeout()"><B>getQueryTimeout()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getQueryTimeout()"><B>getQueryTimeout()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#getQueuedThreads()"><B>getQueuedThreads()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns a collection containing threads that may be waiting to
 acquire this lock.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#getQueueLength()"><B>getQueueLength()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns an estimate of the number of threads waiting to
 acquire this lock.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getQuotedNumbersInQueries()"><B>getQuotedNumbersInQueries()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to interpret quoted numbers in query strings as numbers.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getRange(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>getRange(StoreQuery, Object[], StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getRange(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><B>getRange(StoreQuery, Object[], StoreQuery.Range)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Mutate the given range to set any range information stored in 
 the query string and/or parameters.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getReadLockLevel()"><B>getReadLockLevel()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The default read lock level to use during non-optimistic transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getReadLockLevel()"><B>getReadLockLevel()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getReadLockLevel()"><B>getReadLockLevel()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getReadLockLevel()"><B>getReadLockLevel()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The lock level to use for locking loaded objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getReadLockLevel()"><B>getReadLockLevel()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getReadLockLevelConstant()"><B>getReadLockLevelConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The numeric read lock level.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getReadLockLevelConstant()"><B>getReadLockLevelConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getReadLockMode()"><B>getReadLockMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The lock level to use for locking loaded objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getReadLockMode()"><B>getReadLockMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getReadSchema()"><B>getReadSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Set to true to read the entire schema before mapping.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#getRecoveryTimeMillis()"><B>getRecoveryTimeMillis()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The number of milliseconds to wait before retrying
 to reconnect to a peer after it becomes unreachable.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#getRecursionDepth(org.apache.openjpa.meta.FieldMetaData)"><B>getRecursionDepth(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Recursion depth for the given field.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getRedefine()"><B>getRedefine()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether the enhancer should mutate its arguments, or just run validation
 and optional subclassing logic on them.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getRef(java.lang.Object, java.util.Map)"><B>getRef(Object, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getRef(org.apache.openjpa.jdbc.schema.Column, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getRef(Column, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getRef(java.sql.ResultSet, int, java.util.Map)"><B>getRef(ResultSet, int, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getRef(java.lang.Object, java.util.Map)"><B>getRef(Object, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getRef(org.apache.openjpa.jdbc.schema.Column, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getRef(Column, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getRef(java.lang.Object, java.util.Map)"><B>getRef(Object, Map)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getRef(org.apache.openjpa.jdbc.schema.Column, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getRef(Column, Map, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getRef(int)"><B>getRef(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getRef(java.lang.String)"><B>getRef(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getRef(int)"><B>getRef(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getRef(java.lang.String)"><B>getRef(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getReference(java.lang.Class, java.lang.Object)"><B>getReference(Class&lt;T&gt;, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getRefInternal(java.lang.Object, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getRefInternal(Object, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getRefInternal(java.lang.Object, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getRefInternal(Object, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#getRegisteredTypes()"><B>getRegisteredTypes()</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Returns a collection of class objects of the registered
 persistence-capable classes.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#getRegistryName()"><B>getRegistryName()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#getRelated()"><B>getRelated()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Return the related object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getRelationIdCallback(org.apache.openjpa.jdbc.schema.Column)"><B>getRelationIdCallback(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Return the recorded callbacks for the given relation id column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getRelationIdColumns()"><B>getRelationIdColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return this table's relation id columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#getRelationIdSet(org.apache.openjpa.jdbc.schema.Column)"><B>getRelationIdSet(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Return the recorded value for the given relation id column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getRelationJoins()"><B>getRelationJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>If joining a relation, the joins leading to the relation.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getRelationTarget()"><B>getRelationTarget()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>If joining a relation, the target type.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRemoteCommitEventManager()"><B>getRemoteCommitEventManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The remote event manager that manages this configuration's remote
 event listeners.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRemoteCommitEventManager()"><B>getRemoteCommitEventManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRemoteCommitProvider()"><B>getRemoteCommitProvider()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for remote commit notification.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRemoteCommitProvider()"><B>getRemoteCommitProvider()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#getRemoteCommitProvider()"><B>getRemoteCommitProvider()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Return the <A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitProvider</CODE></A> that this manager uses.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#getRemoved()"><B>getRemoved()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#getRemoved()"><B>getRemoved()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getRemoved()"><B>getRemoved()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#getRemoved()"><B>getRemoved()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>Return the set of values that need to be removed from the managed
 container.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getRemovedClasses()"><B>getRemovedClasses()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getRemovedClasses()"><B>getRemovedClasses()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the set of classes that have been deleted in the current
 transaction.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Return the repository to use to access mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the mapping repository used to hold generated mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Parser.html#getRepository()"><B>getRepository()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Parser.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Parser</A>
<DD>Returns the repository for this parser.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the owning repository.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return the metadata repository.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The metadata repository.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataContext.html#getRepository()"><B>getRepository()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataContext.html" title="interface in org.apache.openjpa.meta">MetaDataContext</A>
<DD>Access metadata repository.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The repository to use to hold metadata.
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>Owning repository.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>The owning repository.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Returns the repository for this parser.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Returns the repository for this parser.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getRepository()"><B>getRepository()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Returns the repository for this parser.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getRequiresExtent()"><B>getRequiresExtent()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type requires extent management.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getResolve()"><B>getResolve()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Resolve mode.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getResolve()"><B>getResolve()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Resolve mode.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getResolve()"><B>getResolve()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The resolve mode for this metadata.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getResolve()"><B>getResolve()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Resolve mode for this field.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getResolve()"><B>getResolve()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The metadata resolution mode.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getResolve()"><B>getResolve()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Resolve mode for metadata.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getResolve()"><B>getResolve()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#getResolver()"><B>getResolver()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Resolver used in parsing.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getResourceAction(java.lang.Class, java.lang.String)"><B>getResourceAction(Class, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for clazz.getResource().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getResourceAction(java.lang.ClassLoader, java.lang.String)"><B>getResourceAction(ClassLoader, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for loader.getResource().
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>Return the domain-meaningful name of the resource that was loaded
 from this source.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getResourcesAction(java.lang.ClassLoader, java.lang.String)"><B>getResourcesAction(ClassLoader, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for loader.getResources().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#getRestoreFieldState()"><B>getRestoreFieldState()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>Return whether to retain in-memory copies of field values for restore
 on rollback.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to restore initial state on rollback by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to restore an object's original state on rollback.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getRestoreState()"><B>getRestoreState()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to restore an object's original state on rollback.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRestoreStateConstant()"><B>getRestoreStateConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/kernel/RestoreState.html" title="interface in org.apache.openjpa.kernel"><CODE>RestoreState</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRestoreStateConstant()"><B>getRestoreStateConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#getResult()"><B>getResult()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#getResultArgument(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>getResultArgument(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html#getResultArgument(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>getResultArgument(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#getResultArgument(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>getResultArgument(ValueMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Return the argument to pass to the result set when loading data
 via <A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getObject(java.lang.Object, int, java.lang.Object)"><CODE>Result.getObject(java.lang.Object, int, java.lang.Object)</CODE></A>, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#getResultArguments()"><B>getResultArguments()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>Return the arguments needed to extract datastore values via
 <A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getObject(java.lang.Object, int, java.lang.Object)"><CODE>Result.getObject(java.lang.Object, int, java.lang.Object)</CODE></A> for each column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#getResultArguments()"><B>getResultArguments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#getResultArguments()"><B>getResultArguments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#getResultArguments()"><B>getResultArguments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#getResultArguments()"><B>getResultArguments()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getResultClass(org.apache.openjpa.kernel.StoreQuery)"><B>getResultClass(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getResultClass(org.apache.openjpa.kernel.StoreQuery)"><B>getResultClass(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Returns the result class, if any.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#getResultClass()"><B>getResultClass()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Query result element type.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getResultClass()"><B>getResultClass()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#getResultList()"><B>getResultList()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getResultList()"><B>getResultList()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getResultMappingName()"><B>getResultMappingName()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getResultMappingName()"><B>getResultMappingName()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Name of a mapping from the result data to its object representation.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getResultMappingName()"><B>getResultMappingName()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getResultMappingScope()"><B>getResultMappingScope()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getResultMappingScope()"><B>getResultMappingScope()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Scope of a mapping from the result data to its object representation.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getResultMappingScope()"><B>getResultMappingScope()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">InstanceResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#getResultObject()"><B>getResultObject()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Instantiate the current result object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getResults(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins[], boolean)"><B>getResults(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int, Joins[], boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Return results containing all keys and values for this map.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getResults(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins[], boolean)"><B>getResults(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int, Joins[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getResults(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins[], boolean)"><B>getResults(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int, Joins[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#getResults()"><B>getResults()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Return the results from the last parse.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getResults()"><B>getResults()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getResultSet()"><B>getResultSet()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Return the backing result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getResultSet()"><B>getResultSet()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getResultSet(boolean)"><B>getResultSet(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>Get the last result set, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getResultSet()"><B>getResultSet()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getResultSet(boolean)"><B>getResultSet(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>Get the last result set, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getResultSet()"><B>getResultSet()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getResultSet(boolean)"><B>getResultSet(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>Get the last result set, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingResultSet</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getResultSetConcurrency()"><B>getResultSetConcurrency()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getResultSetConcurrency()"><B>getResultSetConcurrency()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getResultSetConcurrency()"><B>getResultSetConcurrency()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getResultSetHoldability()"><B>getResultSetHoldability()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getResultSetHoldability()"><B>getResultSetHoldability()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getResultSetHoldability()"><B>getResultSetHoldability()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getResultSetHoldability()"><B>getResultSetHoldability()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getResultSetMappingName()"><B>getResultSetMappingName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#getResultSetMappingScope(java.lang.String, java.lang.ClassLoader)"><B>getResultSetMappingScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#getResultSetMappingScope(java.lang.String, java.lang.ClassLoader)"><B>getResultSetMappingScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#getResultSetMappingScope(java.lang.String, java.lang.ClassLoader)"><B>getResultSetMappingScope(String, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Return the type defining the given result set mapping name, if any.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getResultSetMappingScope(java.lang.String, java.lang.ClassLoader)"><B>getResultSetMappingScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getResultSetMappingScope(java.lang.String, java.lang.ClassLoader)"><B>getResultSetMappingScope(String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The JDBC result set type.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The result set type to use as a constant from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html" title="class or interface in java.sql"><CODE>ResultSet</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Type of JDBC result set to use for query results.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getResultSetType()"><B>getResultSetType()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getResultSetTypeConstant()"><B>getResultSetTypeConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the result set constant for the result set type.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getResultSetTypeConstant()"><B>getResultSetTypeConstant()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getResultType()"><B>getResultType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getResultType()"><B>getResultType()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Returns the result class that has been set through
 <A HREF="./org/apache/openjpa/kernel/QueryContext.html#setResultType(java.lang.Class)"><CODE>QueryContext.setResultType(java.lang.Class)</CODE></A>, or null if none.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getResultType()"><B>getResultType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getResultType()"><B>getResultType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The query result class, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#getRetain()"><B>getRetain()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to retain state after a transaction by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether objects retain their persistent state on transaction commit.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getRetainState()"><B>getRetainState()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether objects retain their persistent state on transaction commit.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRetryClassRegistration()"><B>getRetryClassRegistration()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to warn and defer registration instead of throwing an
 exception when a registered persistent class cannot be processed.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRetryClassRegistration()"><B>getRetryClassRegistration()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee">JNDIManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in interface org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee">ManagedRuntime</A>
<DD>Returns the Throwable that caused the current transaction to be
 marked for rollback, provided that any exists.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html" title="class in org.apache.openjpa.ee">SunOneManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html" title="class in org.apache.openjpa.ee">WLSManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Returns the Throwable that caused the transaction to be
 marked for rollback.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html#getRollbackCause()"><B>getRollbackCause()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityTransaction</A>
<DD>Returns the Throwable that caused the transaction to be
 marked for rollback.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getRollbackOnly()"><B>getRollbackOnly()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return whether the current transaction has been marked for rollback.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getRollbackOnly()"><B>getRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getRollbackOnly()"><B>getRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getRollbackOnly()"><B>getRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html#getRollbackTranslator(org.apache.openjpa.persistence.OpenJPAEntityManager)"><B>getRollbackTranslator(OpenJPAEntityManager)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html" title="class in org.apache.openjpa.persistence">PersistenceExceptions</A>
<DD>Returns a <A HREF="./org/apache/openjpa/util/RuntimeExceptionTranslator.html" title="interface in org.apache.openjpa.util"><CODE>RuntimeExceptionTranslator</CODE></A> that will perform
 the correct exception translation as well as roll back the
 current transaction when for all but <A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence"><CODE>NoResultException</CODE></A>
 and <A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence"><CODE>NonUniqueResultException</CODE></A> in accordance with
 section 3.7 of the EJB 3.0 specification.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getRootClasses()"><B>getRootClasses()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getRootClasses()"><B>getRootClasses()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Root classes for recursive operations.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getRootClasses()"><B>getRootClasses()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getRootInstances()"><B>getRootInstances()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getRootInstances()"><B>getRootInstances()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Root instances for recursive operations.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getRootInstances()"><B>getRootInstances()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getRow(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, int)"><B>getRow(OpenJPAStateManager, JDBCStore, RowManager, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Return the row to use for this field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getRow(org.apache.openjpa.jdbc.schema.Table, int, org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>getRow(Table, int, OpenJPAStateManager, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html#getRow(org.apache.openjpa.jdbc.schema.Table, int, org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>getRow(Table, int, OpenJPAStateManager, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql">RowManager</A>
<DD>Return the row for the given table and owner object, or null if
 <code>create</code> is false and the row has not already been created.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getRow(org.apache.openjpa.jdbc.schema.Table, int, org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><B>getRow(Table, int, OpenJPAStateManager, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getRow()"><B>getRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRuntimeUnenhancedClasses()"><B>getRuntimeUnenhancedClasses()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Specifies how OpenJPA handles unenhanced types.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRuntimeUnenhancedClasses()"><B>getRuntimeUnenhancedClasses()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getRuntimeUnenhancedClassesConstant()"><B>getRuntimeUnenhancedClassesConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the runtime class optimization setting as one of the
 following symbolic constants:
 
 <CODE>RuntimeUnenhancedClasssesModes#SUPPORTED</CODE>
 <CODE>RuntimeUnenhancedClasssesModes#UNSUPPORTED</CODE>
 <CODE>RuntimeUnenhancedClasssesModes#WARN</CODE>
 
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getRuntimeUnenhancedClassesConstant()"><B>getRuntimeUnenhancedClassesConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getSaveFieldManager()"><B>getSaveFieldManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getSavepointManager()"><B>getSavepointManager()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for savepoint management.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getSavepointManager()"><B>getSavepointManager()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getSavepointManagerInstance()"><B>getSavepointManagerInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the configured savepoint manager instance.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getSavepointManagerInstance()"><B>getSavepointManagerInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html#getSAXParser(boolean, boolean)"><B>getSAXParser(boolean, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html" title="class in org.apache.openjpa.lib.xml">XMLFactory</A>
<DD>Return a SAXParser with the specified configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSchema()"><B>getSchema()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Default schema for unqualified tables.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSchema()"><B>getSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#getSchema(java.lang.String)"><B>getSchema(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return the schema with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getSchema()"><B>getSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>Return the schema for the sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getSchema()"><B>getSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the schema for the table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getSchemaAction()"><B>getSchemaAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The schema modification policy, or <code>none</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getSchemaCase()"><B>getSchemaCase()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return DB specific schemaCase
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#getSchemaCase()"><B>getSchemaCase()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>Return DB specific schemaCase
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#getSchemaColumn()"><B>getSchemaColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>The name of the schema column on the schema definition table.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSchemaFactory()"><B>getSchemaFactory()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>SchemaFactory</CODE></A> to use to provide
 schema information during system initialization.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSchemaFactory()"><B>getSchemaFactory()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSchemaFactoryInstance()"><B>getSchemaFactoryInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>SchemaFactory</CODE></A> to use for schema information.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSchemaFactoryInstance()"><B>getSchemaFactoryInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Representation of the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Return the schema group to use in mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return the schema group to reverse map.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Return the schema's group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Return the current schema group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaParser</A>
<DD>Return the current schema group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Return the schema group the tool will act on.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#getSchemaGroup()"><B>getSchemaGroup()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSchemaName()"><B>getSchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The default schema name for unqualified tables.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getSchemaName()"><B>getSchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The column's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#getSchemaName()"><B>getSchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return the column table's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getSchemaName()"><B>getSchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getSchemaName()"><B>getSchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>The table's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getSchemaNameForMetadata(java.lang.String)"><B>getSchemaNameForMetadata(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the schema name that will be used for obtaining information
 from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html" title="class or interface in java.sql"><CODE>DatabaseMetaData</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSchemas()"><B>getSchemas()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Comma-separated list of modifiable schemas for persistent instances.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSchemas()"><B>getSchemas()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#getSchemas()"><B>getSchemas()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return all schemas.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSchemas()"><B>getSchemas()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSchemasList()"><B>getSchemasList()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Modificable schema components.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSchemasList()"><B>getSchemasList()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getSchemaSource()"><B>getSchemaSource()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Implement to return the XML schema source for the document.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#getSchemaSource()"><B>getSchemaSource()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getSchemaSource()"><B>getSchemaSource()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSchemaTerm()"><B>getSchemaTerm()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getSchemaWriter()"><B>getSchemaWriter()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The stream to export the planned schema to as an XML document.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getScope()"><B>getScope()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>A class defining the scope in which this value is defined.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getScoreBeforeFieldName()"><B>getScoreBeforeFieldName()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place an underscore before private field names.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSearchStringEscape()"><B>getSearchStringEscape()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getSecondaryDeletes()"><B>getSecondaryDeletes()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getSecondaryDeletes()"><B>getSecondaryDeletes()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return all deleted secondary rows.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getSecondaryRow(org.apache.openjpa.jdbc.schema.Table, int)"><B>getSecondaryRow(Table, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html#getSecondaryRow(org.apache.openjpa.jdbc.schema.Table, int)"><B>getSecondaryRow(Table, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql">RowManager</A>
<DD>Return a row for the given secondary table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getSecondaryRow(org.apache.openjpa.jdbc.schema.Table, int)"><B>getSecondaryRow(Table, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSecondaryTableJoinColumns(java.lang.String)"><B>getSecondaryTableJoinColumns(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Return any columns defined for the given class level join, or empty
 list if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSecondaryTableName(java.lang.String)"><B>getSecondaryTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>We allow fields to reference class-level joins using just the table
 name, whereas the class join might have schema, etc information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSecondaryTableNames()"><B>getSecondaryTableNames()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Return the class-level joined tables.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getSecondaryUpdates()"><B>getSecondaryUpdates()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getSecondaryUpdates()"><B>getSecondaryUpdates()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return all inserted and updated secondary rows.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#getSelect()"><B>getSelect()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#getSelect()"><B>getSelect()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>Select for this result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getSelectAliases()"><B>getSelectAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getSelectAliases()"><B>getSelectAliases()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the aliases of all selected columns and all selected buffers,
 in the order they were selected.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getSelectAliases()"><B>getSelectAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getSelectConstructor()"><B>getSelectConstructor()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>Use to create SQL select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getSelectedOrderIndexes()"><B>getSelectedOrderIndexes()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>Return the indexes of the data in the select clause this query is
 ordered by.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getSelectOperation(org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>getSelectOperation(JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the "SELECT" operation clause, adding any available hints, etc.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getSelectOperation(org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>getSelectOperation(JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Check to see if we have set the <A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#SELECT_HINT"><CODE>OracleDictionary.SELECT_HINT</CODE></A> in the
 fetch configuraiton, and if so, append the Orache hint after the
 "SELECT" part of the query.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getSelects(org.apache.openjpa.jdbc.sql.Select, boolean, boolean)"><B>getSelects(Select, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the portion of the select statement between the SELECT keyword
 and the FROM keyword.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#getSelects()"><B>getSelects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getSelects(org.apache.openjpa.jdbc.sql.Select, boolean, boolean)"><B>getSelects(Select, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.html#getSelects()"><B>getSelects()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Union.html" title="interface in org.apache.openjpa.jdbc.sql">Union</A>
<DD>Return the selects that make up this union.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getSelectSubclasses()"><B>getSelectSubclasses()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getSelectSubclasses()"><B>getSelectSubclasses()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Return the <CODE>org.apache.openjpa.sql.Select</CODE> subclasses constant 
 for loading this relation, based on how the related type is mapped, 
 whether this relation is polymorphic, and whether it is configured to 
 use class criteria.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getSelectSubclasses()"><B>getSelectSubclasses()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getSequence()"><B>getSequence()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Plugin string for the default system <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getSequence()"><B>getSequence()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#getSequence()"><B>getSequence()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>The sequence name.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getSequence(org.apache.openjpa.jdbc.meta.ClassMapping, java.sql.Connection)"><B>getSequence(ClassMapping, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Return the current sequence value, or -1 if unattainable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#getSequence(java.lang.String)"><B>getSequence(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Return the sequence with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getSequence()"><B>getSequence()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Native sequence name.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getSequenceColumn()"><B>getSequenceColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>The name of the column that holds the sequence value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#getSequenceColumn()"><B>getSequenceColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Name of sequence column, if any.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getSequenceFactory()"><B>getSequenceFactory()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>A factory to transform spec sequences produced by user factories into
 the OpenJPA sequence type.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getSequenceInstance()"><B>getSequenceInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The default system sequence.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getSequenceInstance()"><B>getSequenceInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getSequenceMetaData(java.lang.String, java.lang.ClassLoader, boolean)"><B>getSequenceMetaData(String, ClassLoader, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return sequence metadata for the given name and classloader.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getSequenceMetaDatas()"><B>getSequenceMetaDatas()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the cached sequence metadata.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getSequencePlugin()"><B>getSequencePlugin()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Plugin string describing the <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#getSequences()"><B>getSequences()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether to manipulate sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#getSequences()"><B>getSequences()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Return the schema's sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#getSequences()"><B>getSequences()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Return whether sequences should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getSequences()"><B>getSequences()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether sequences should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#getSequences()"><B>getSequences()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getSequences(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getSequences(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find sequences matching the given name pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#getSequencesSQL(java.lang.String, java.lang.String)"><B>getSequencesSQL(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getSequencesSQL(java.lang.String, java.lang.String)"><B>getSequencesSQL(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the SQL needed to select the list of sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#getSequencesSQL(java.lang.String, java.lang.String)"><B>getSequencesSQL(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#getSequencesSQL(java.lang.String, java.lang.String)"><B>getSequencesSQL(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getSequencesSQL(java.lang.String, java.lang.String)"><B>getSequencesSQL(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getSequencesSQL(java.lang.String, java.lang.String)"><B>getSequencesSQL(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getSerializeAnnotations()"><B>getSerializeAnnotations()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Whether to serialize content originally specified in annotations.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getSet(org.apache.openjpa.jdbc.schema.Column)"><B>getSet(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Return the value set for update on the given column.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#getShort(int)"><B>getShort(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Get the short at the given index.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getShort(java.lang.Object, java.lang.reflect.Field)"><B>getShort(Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#getShort(java.lang.Object, java.lang.reflect.Method)"><B>getShort(Object, Method)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Return the return value of the given getter in the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getShort(java.lang.Object)"><B>getShort(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getShort(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getShort(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getShort(java.sql.ResultSet, int)"><B>getShort(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getShort(java.lang.Object)"><B>getShort(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getShort(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getShort(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#getShort(java.sql.ResultSet, int)"><B>getShort(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getShort(java.lang.Object)"><B>getShort(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getShort(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getShort(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getShort(int)"><B>getShort(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getShort(java.lang.String)"><B>getShort(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getShort(int)"><B>getShort(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getShort(java.lang.String)"><B>getShort(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getShortInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getShortInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getShortInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getShortInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#getSingleResult()"><B>getSingleResult()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>Execute a query that returns a single result.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getSize()"><B>getSize()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the column's size.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#getSoftReferenceSize()"><B>getSoftReferenceSize()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>Returns the maximum number of unpinned objects to keep soft
 references to.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#getSoftReferenceSize()"><B>getSoftReferenceSize()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>Returns the maximum number of unpinned objects to keep soft
 references to.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#getSoftReferenceSize()"><B>getSoftReferenceSize()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The maximum number of soft references to maintain, or -1 for no limit.
<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html#getSortedNodes()"><B>getSortedNodes()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph">DepthFirstAnalysis</A>
<DD>Return the nodes in topologically-sorted order.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>Return the file from which this instance was parsed.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return the file of the source being parsed.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#getSourceFile(java.lang.Object)"><B>getSourceFile(Object)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Return the source file for the given instance.
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#getSourceFile(java.lang.Class)"><B>getSourceFile(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Return the source file for the given class, or null if the
 source is not in the CLASSPATH.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#getSourceFile(org.apache.openjpa.meta.ClassMetaData)"><B>getSourceFile(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return the current source file of the given metadata.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#getSourceFile(org.apache.openjpa.meta.SequenceMetaData)"><B>getSourceFile(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return the current source file of the given metadata.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Determine the source file we're parsing.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getSourceFile()"><B>getSourceFile()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getSourceFile(java.lang.Object)"><B>getSourceFile(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Override to not overwrite annotations.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getSourceIsSystemId()"><B>getSourceIsSystemId()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether to use the source name as the XML system id.
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTrackers.html#getSourceLocationMessage(org.apache.openjpa.lib.meta.SourceTracker[])"><B>getSourceLocationMessage(SourceTracker[])</B></A> - 
Static method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTrackers.html" title="class in org.apache.openjpa.lib.meta">SourceTrackers</A>
<DD>Create a message appropriate for display to the user describing
 the location(s) that <code>trackers</code> were loaded from.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getSourceMode()"><B>getSourceMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>The source mode of this query result.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getSourceMode()"><B>getSourceMode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The source mode this metadata has been loaded under.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getSourceMode()"><B>getSourceMode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The source mode determining what metadata to load.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getSourceMode()"><B>getSourceMode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The source mode of this query.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getSourceName()"><B>getSourceName()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return the name of the source file being parsed.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>Return the domain-dependent scope of this instance within its file.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getSourceScope()"><B>getSourceScope()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>Return the type of source.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getSourceType()"><B>getSourceType()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getSpaceBeforeParen()"><B>getSpaceBeforeParen()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place a space before parentheses.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getSpaceInParen()"><B>getSpaceInParen()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place a space within parentheses.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getSpecification()"><B>getSpecification()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A configuration can be set with defaults for a specific specification.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getSpecification()"><B>getSpecification()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getSQL()"><B>getSQL()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>Return a boolean SQL expression that should be added to the
 WHERE clause of an UPDATE to test whether the current database
 record matches our stored version.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getSQL(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>getSQL(DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Return the SQL for the operation on this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#getSQL()"><B>getSQL()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Return the SQL for this buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#getSQL(boolean)"><B>getSQL(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Returns the SQL for this buffer.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#getSQL()"><B>getSQL()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Return the SQL associated with this event; may be null.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSQLFactory()"><B>getSQLFactory()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The SQL factory to use for SQL constructs.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSQLFactory()"><B>getSQLFactory()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#getSQLFactory()"><B>getSQLFactory()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Return the SQL factory for this runtime.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getSQLFactory()"><B>getSQLFactory()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSQLFactoryInstance()"><B>getSQLFactoryInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The SQL factory to use for SQL constructs.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSQLFactoryInstance()"><B>getSQLFactoryInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSQLKeywords()"><B>getSQLKeywords()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#getSQLLog()"><B>getSQLLog()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>The log to write SQL messages to.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getSQLObject(java.lang.Object, java.util.Map)"><B>getSQLObject(Object, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getSQLObject(org.apache.openjpa.jdbc.schema.Column, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getSQLObject(Column, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getSQLObject(java.lang.Object, java.util.Map)"><B>getSQLObject(Object, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getSQLObject(org.apache.openjpa.jdbc.schema.Column, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getSQLObject(Column, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getSQLObject(java.lang.Object, java.util.Map)"><B>getSQLObject(Object, Map)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getSQLObject(org.apache.openjpa.jdbc.schema.Column, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getSQLObject(Column, Map, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getSQLObjectInternal(java.lang.Object, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getSQLObjectInternal(Object, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getSQLObjectInternal(java.lang.Object, java.util.Map, org.apache.openjpa.jdbc.sql.Joins)"><B>getSQLObjectInternal(Object, Map, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html#getSQLState()"><B>getSQLState()</B></A> - 
Method in exception org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc">ReportingSQLException</A>
<DD>Returns the SQL state of the underlying <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html" title="class or interface in java.sql"><CODE>SQLException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSQLStateType()"><B>getSQLStateType()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getSQLValue()"><B>getSQLValue()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>If this is a constant, returns its value as it would be represented
 in the database in this context, else return null.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#getSQLValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>getSQLValue(Select, ExpContext, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#getStackTrace(java.lang.Throwable)"><B>getStackTrace(Throwable)</B></A> - 
Static method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>Utility method to obtain a stack trace as a String.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getStartIndex()"><B>getStartIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getStartIndex()"><B>getStartIndex()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>The result start index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getStartIndex()"><B>getStartIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getStartRange()"><B>getStartRange()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getStartRange()"><B>getStartRange()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return the 0-based start index for the returned results.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getStartRange()"><B>getStartRange()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#getState()"><B>getState()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>Return the persistence capable copy holding the rollback field values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#getStateManager(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>getStateManager(Object, StoreContext)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>Return the state manager for the given instance, using a detached
 state manager if the instnace is not managed.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getStateManager(java.lang.Object)"><B>getStateManager(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getStateManager(java.lang.Object)"><B>getStateManager(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getStateManager(java.lang.Object)"><B>getStateManager(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the state manager for the given instance.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getStateManagerImpl(java.lang.Object, boolean)"><B>getStateManagerImpl(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return the state manager for the given instance, or null.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getStateManagerImplById(java.lang.Object, boolean)"><B>getStateManagerImplById(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return the state manager for the given oid.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getStatement()"><B>getStatement()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Return the statement that produced this result.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getStatement()"><B>getStatement()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#getStatement()"><B>getStatement()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Return the Statement for this event, may be null for events
 unrelated to Statement execution.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html#getStatement()"><B>getStatement()</B></A> - 
Method in exception org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc">ReportingSQLException</A>
<DD>Returns the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> that caused the exception.
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#getStates()"><B>getStates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Return the map of states to savepoint data.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#getStatus()"><B>getStatus()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#getStatus(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getStatus(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getStatus(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getStatus(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Return the appropriate status object for the given class, or null
 if cannot handle the given class.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html#getStorageGenerator()"><B>getStorageGenerator()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance">PCDataGenerator.DynamicPCData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#getStore()"><B>getStore()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>Return the store.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#getStore()"><B>getStore()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#getStore()"><B>getStore()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getStore()"><B>getStore()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Optional store manager used to deserialize blobs containing
 references to persistent objects.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(java.sql.SQLException)"><B>getStore(SQLException)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(java.sql.SQLException, java.lang.Object)"><B>getStore(SQLException, Object)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(java.sql.SQLException, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>getStore(SQLException, DBDictionary)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(java.sql.SQLException, java.lang.Object, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>getStore(SQLException, Object, DBDictionary)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(org.apache.openjpa.lib.util.Localizer.Message, java.sql.SQLException, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>getStore(Localizer.Message, SQLException, DBDictionary)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(java.lang.String, java.sql.SQLException, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>getStore(String, SQLException, DBDictionary)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#getStore(java.lang.String, java.sql.SQLException, java.lang.Object, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>getStore(String, SQLException, Object, DBDictionary)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>Convert the specified exception into a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A>.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html#getStore()"><B>getStore()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html" title="class in org.apache.openjpa.xmlstore">XMLConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore"><CODE>XMLStore</CODE></A> associated with this configuration.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getStoreCache()"><B>getStoreCache()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getStoreCache(java.lang.String)"><B>getStoreCache(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#getStoreCache()"><B>getStoreCache()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Access the level 2 store cache.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#getStoreCache(java.lang.String)"><B>getStoreCache(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Access a named level 2 store cache.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getStoreContext()"><B>getStoreContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getStoreContext()"><B>getStoreContext()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The persistence context for the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getStoreContext()"><B>getStoreContext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getStoreEnumOrdinal()"><B>getStoreEnumOrdinal()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to store enums as the ordinal value rather than the enum name.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getStoreFacadeTypeRegistry()"><B>getStoreFacadeTypeRegistry()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the <A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html" title="class in org.apache.openjpa.util"><CODE>StoreFacadeTypeRegistry</CODE></A> instance associated with this
 configuration.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getStoreFacadeTypeRegistry()"><B>getStoreFacadeTypeRegistry()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getStoreManager()"><B>getStoreManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getStoreManager()"><B>getStoreManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getStoreManager()"><B>getStoreManager()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the store manager in use.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#getStoreOrdinal()"><B>getStoreOrdinal()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>Whether to store the enum value as its ordinal.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getStoreQuery()"><B>getStoreQuery()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>Internal store query.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getStoreUnmappedObjectIdString()"><B>getStoreUnmappedObjectIdString()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to store a relation to an unmapped class by stringifying the
 oid of the related object, rather than storing primary key values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getStrategy()"><B>getStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The strategy used to map this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getStrategy()"><B>getStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>The strategy used for class discrimination.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getStrategy()"><B>getStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>The strategy used to map this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getStrategy(ClassMapping, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Default mapping strategy when there is no explicit strategy
 and no hierarchy strategy given.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.Version, boolean)"><B>getStrategy(Version, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Default version mapping strategy when there is no explicit strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getStrategy(Discriminator, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Default discriminator mapping strategy when there is no explicit
 strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Class, boolean)"><B>getStrategy(ValueMapping, Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Custom handler or strategy for the given field, or null if none
 has been registered.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getStrategy(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getStrategy(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getStrategy(org.apache.openjpa.jdbc.meta.Version, boolean)"><B>getStrategy(Version, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getStrategy(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getStrategy(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getStrategy(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Class, boolean)"><B>getStrategy(ValueMapping, Class, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getStrategy()"><B>getStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Mapping strategy name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getStrategy(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.Version, boolean)"><B>getStrategy(Version, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getStrategy(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Class, boolean)"><B>getStrategy(ValueMapping, Class, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#getStrategy()"><B>getStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>The strategy used for versioning.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getStrategy(org.apache.openjpa.meta.FieldMetaData)"><B>getStrategy(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Return the serialized strategy name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#getStrategy(org.apache.openjpa.meta.FieldMetaData)"><B>getStrategy(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.Version, boolean)"><B>getStrategy(Version, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#getStrategy(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getStrategy(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#getStrategy(org.apache.openjpa.meta.FieldMetaData)"><B>getStrategy(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getStrategy(org.apache.openjpa.meta.FieldMetaData)"><B>getStrategy(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Return the serialized strategy name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#getStrategyInstaller()"><B>getStrategyInstaller()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Installs mapping strategies on components.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#getStream()"><B>getStream()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The stream to write to.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getStrictIdentityValues()"><B>getStrictIdentityValues()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to require exact identity value types when creating object
 ids from a class and value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getString(java.lang.Object)"><B>getString(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getString(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getString(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getString(java.sql.ResultSet, int)"><B>getString(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#getString(java.sql.ResultSet, int)"><B>getString(ResultSet, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getString(java.lang.Object)"><B>getString(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getString(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getString(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getString(java.lang.Object)"><B>getString(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getString(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>getString(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#getString()"><B>getString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>Override to recognize aliases of the class name without the attached
 properties string.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#getString()"><B>getString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getString()"><B>getString()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Return a stringified version of this value.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getString(int)"><B>getString(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getString(java.lang.String)"><B>getString(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getString(int)"><B>getString(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getString(java.lang.String)"><B>getString(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getStringExtension(java.lang.String)"><B>getStringExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as a string.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#getStringExtension(java.lang.String, java.lang.String)"><B>getStringExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Get the value as a string.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getStringFunctions()"><B>getStringFunctions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getStringInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getStringInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getStringInternal(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>getStringInternal(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getStringVal"><B>getStringVal</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getSubclasses()"><B>getSubclasses()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>If joining a relation, how to deal with subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getSubclassesLoaded()"><B>getSubclassesLoaded()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Whether this Discriminator has loaded subclasses yet.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Specifies the default subclass fetch mode to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#getSubclassFetchMode(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getSubclassFetchMode(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Return the subclass fetch mode.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#getSubclassFetchMode(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getSubclassFetchMode(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Return the effective subclass fetch mode for the given type.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#getSubclassFetchMode(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getSubclassFetchMode(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The subclass fetch mode, as one of the eager constants in
 <A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCFetchConfiguration</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Eager fetch mode in loading subclasses.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#getSubclassFetchMode()"><B>getSubclassFetchMode()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSubclassFetchModeConstant()"><B>getSubclassFetchModeConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the subclass fetch mode as one of the following symbolic
 constants:
 
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_NONE"><CODE>EagerFetchModes.EAGER_NONE</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_JOIN"><CODE>EagerFetchModes.EAGER_JOIN</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_PARALLEL"><CODE>EagerFetchModes.EAGER_PARALLEL</CODE></A>
 
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSubclassFetchModeConstant()"><B>getSubclassFetchModeConstant()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getSubclassStrategy()"><B>getSubclassStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default subclass strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getSubselectPath()"><B>getSubselectPath()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getSubselectPath()"><B>getSubselectPath()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the subselect path for this select, if it is a subselect.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getSubselectPath()"><B>getSubselectPath()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getSubselects()"><B>getSubselects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getSubselects()"><B>getSubselects()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return this select's subselects, or empty collection if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getSubselects()"><B>getSubselects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html#getSubstitutions()"><B>getSubstitutions()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html" title="class in org.apache.openjpa.lib.util">Localizer.Message</A>
<DD>Substitutions inserted into the message.
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CallbackException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CallbackException.html" title="class in org.apache.openjpa.util">CallbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>Exception subtype.
<DT><A HREF="./org/apache/openjpa/util/InvalidStateException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InvalidStateException.html" title="class in org.apache.openjpa.util">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LockException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util">LockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MetaDataException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MetaDataException.html" title="class in org.apache.openjpa.util">MetaDataException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NonUniqueResultException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NonUniqueResultException.html" title="class in org.apache.openjpa.util">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NoResultException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NoResultException.html" title="class in org.apache.openjpa.util">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NoTransactionException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NoTransactionException.html" title="class in org.apache.openjpa.util">NoTransactionException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectExistsException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectExistsException.html" title="class in org.apache.openjpa.util">ObjectExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html" title="class in org.apache.openjpa.util">ObjectNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Exception subtype.
<DT><A HREF="./org/apache/openjpa/util/OptimisticException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OptimisticException.html" title="class in org.apache.openjpa.util">OptimisticException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#getSubtype()"><B>getSubtype()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#getSuffix()"><B>getSuffix()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Expected suffix for metadata resources, or null if unknown.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getSuperclassField(org.apache.openjpa.meta.FieldMetaData)"><B>getSuperclassField(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the superclass copy of the given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getSuperclassJoin(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, boolean)"><B>getSuperclassJoin(ClassMapping, Table, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Return the join from this class to its superclass.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSuperTables(java.lang.String, java.lang.String, java.lang.String)"><B>getSuperTables(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSuperTypes(java.lang.String, java.lang.String, java.lang.String)"><B>getSuperTypes(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getSynchronization()"><B>getSynchronization()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getSynchronizeMappings()"><B>getSynchronizeMappings()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Whether OpenJPA should try to automatically refresh O/R mapping
 information and the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getSynchronizeMappings()"><B>getSynchronizeMappings()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#getSyncMappingInfo()"><B>getSyncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Whether to automatically synchronize mapping info with data available
 from mapped components before serialization.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#getSyncMappingInfo()"><B>getSyncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>Whether to automatically synchronize mapping info with data available
 from mapped components before serialization.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getSyncWithManagedTransactions()"><B>getSyncWithManagedTransactions()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to check for a global transaction upon every managed,
 non-transactional operation.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getSyncWithManagedTransactions()"><B>getSyncWithManagedTransactions()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getSyncWithManagedTransactions()"><B>getSyncWithManagedTransactions()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getSyncWithManagedTransactions()"><B>getSyncWithManagedTransactions()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getSyncWithManagedTransactions()"><B>getSyncWithManagedTransactions()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to check for a global transaction upon every managed,
 non-transactional operation.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#getSystemClassLoaderAction()"><B>getSystemClassLoaderAction()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for ClassLoader.getSystemClassLoader().
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#getSystemDataCache()"><B>getSystemDataCache()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Return the system-wide data cache, or null if caching is not enabled.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#getSystemDataCache()"><B>getSystemDataCache()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getSystemFunctions()"><B>getSystemFunctions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getSystemListeners()"><B>getSystemListeners()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return the system lifecycle listeners
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#getSystemQueryCache()"><B>getSystemQueryCache()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Return the system query cache, or null if not configured.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#getSystemQueryCache()"><B>getSystemQueryCache()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getTab()"><B>getTab()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Tab string.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getTab(int)"><B>getTab(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Tab string.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>The sequence table name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The mapping's primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getTable(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getTable(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Return the table for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>The mapping's primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getTable(org.apache.openjpa.jdbc.meta.FieldMapping, boolean, boolean)"><B>getTable(FieldMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Return the table for the given field, or null if no table given.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Name of sequence table, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the table for the column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return the table of this constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#getTable(java.lang.String)"><B>getTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Return the table with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>The name of the schema definition table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#getTable()"><B>getTable()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Return the table for this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getTable()"><B>getTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getTable1()"><B>getTable1()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getTable2()"><B>getTable2()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getTableAliases()"><B>getTableAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getTableAliases()"><B>getTableAliases()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the set of all used table aliases.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getTableAliases()"><B>getTableAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getTableName()"><B>getTableName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The given table name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#getTableName()"><B>getTableName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>The user-supplied name of the table for this field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getTableName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(ClassMapping, Schema)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return the default table name for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getTableName(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(FieldMapping, Schema)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return the default secondary table name for the given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getTableName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(ClassMapping, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getTableName(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(FieldMapping, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getTableName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(ClassMapping, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getTableName(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(FieldMapping, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getTableName()"><B>getTableName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The column's table name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#getTableName()"><B>getTableName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return the column's table name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#getTableName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(ClassMapping, Schema)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#getTableName(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Schema)"><B>getTableName(FieldMapping, Schema)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getTableNameForMetadata(java.lang.String)"><B>getTableNameForMetadata(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the table name that will be used for obtaining information
 from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html" title="class or interface in java.sql"><CODE>DatabaseMetaData</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#getTableNameForMetadata(java.lang.String)"><B>getTableNameForMetadata(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getTablePrivileges(java.lang.String, java.lang.String, java.lang.String)"><B>getTablePrivileges(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#getTables()"><B>getTables()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Return the schema's tables.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#getTables()"><B>getTables()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Return the set of tables that will be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#getTables()"><B>getTables()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getTables(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.sql.Connection)"><B>getTables(DatabaseMetaData, String, String, String, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Reflect on the schema to find tables matching the given name pattern.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getTables()"><B>getTables()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[])"><B>getTables(String, String, String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#getTableType(org.apache.openjpa.jdbc.schema.Table, int)"><B>getTableType(Table, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#getTableType(org.apache.openjpa.jdbc.schema.Table, int)"><B>getTableType(Table, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Return the type of the given table, or the given default type.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getTableTypes()"><B>getTableTypes()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getTabSpaces()"><B>getTabSpaces()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>The number of spaces to use for tabs; 0 means to use actual tab
 characters.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#getTag()"><B>getTag()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#getTag()"><B>getTag()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html#getTag()"><B>getTag()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLExpression</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html#getTag()"><B>getTag()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLValue</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html#getTag()"><B>getTag()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps">AggregateListener</A>
<DD>Return the tag that this listener listens for.
<DT><A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html#getTag()"><B>getTag()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps">FilterListener</A>
<DD>Return the tag that this extension listens for.
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#getTag()"><B>getTag()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#getTag()"><B>getTag()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getTarget()"><B>getTarget()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The name of the column this column joins to, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getTargetField()"><B>getTargetField()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The name of the field this column joins to, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#getThis()"><B>getThis()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#getThis()"><B>getThis()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing <code>this</code>.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#getThis()"><B>getThis()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#getThrowsDec(int)"><B>getThrowsDec(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Throws declaration.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getTime(java.lang.Object, java.util.Calendar)"><B>getTime(Object, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getTime(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTime(Column, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getTime(java.sql.ResultSet, int, java.util.Calendar)"><B>getTime(ResultSet, int, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getTime(java.lang.Object, java.util.Calendar)"><B>getTime(Object, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getTime(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTime(Column, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getTime(java.lang.Object, java.util.Calendar)"><B>getTime(Object, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getTime(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTime(Column, Calendar, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTime(int)"><B>getTime(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTime(int, java.util.Calendar)"><B>getTime(int, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTime(java.lang.String)"><B>getTime(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTime(java.lang.String, java.util.Calendar)"><B>getTime(String, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTime(int)"><B>getTime(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTime(java.lang.String)"><B>getTime(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTime(int, java.util.Calendar)"><B>getTime(int, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTime(java.lang.String, java.util.Calendar)"><B>getTime(String, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#getTime()"><B>getTime()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Return the time the event was constructed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getTimeDateFunctions()"><B>getTimeDateFunctions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getTimeInternal(java.lang.Object, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimeInternal(Object, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getTimeInternal(java.lang.Object, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimeInternal(Object, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Return the amount of time this key is good for.
<DT><A HREF="./org/apache/openjpa/util/LockException.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util">LockException</A>
<DD>The number of milliseconds to wait for a lock.
<DT><A HREF="./org/apache/openjpa/datacache/QueryResult.html#getTimeoutTime()"><B>getTimeoutTime()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A>
<DD>Expiration time, or -1 for no timeout.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getTimestamp(java.lang.Object, java.util.Calendar)"><B>getTimestamp(Object, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getTimestamp(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimestamp(Column, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getTimestamp(java.sql.ResultSet, int, java.util.Calendar)"><B>getTimestamp(ResultSet, int, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Convert the specified column of the SQL ResultSet to the proper
 java type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getTimestamp(java.lang.Object, java.util.Calendar)"><B>getTimestamp(Object, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#getTimestamp(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimestamp(Column, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#getTimestamp(java.sql.ResultSet, int, java.util.Calendar)"><B>getTimestamp(ResultSet, int, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getTimestamp(java.lang.Object, java.util.Calendar)"><B>getTimestamp(Object, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column or id; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#getTimestamp(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimestamp(Column, Calendar, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the value stored in the given column; may not be supported
 by results that are not backed by a SQL result set.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTimestamp(int)"><B>getTimestamp(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTimestamp(int, java.util.Calendar)"><B>getTimestamp(int, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTimestamp(java.lang.String)"><B>getTimestamp(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getTimestamp(java.lang.String, java.util.Calendar)"><B>getTimestamp(String, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTimestamp(int)"><B>getTimestamp(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTimestamp(java.lang.String)"><B>getTimestamp(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTimestamp(int, java.util.Calendar)"><B>getTimestamp(int, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getTimestamp(java.lang.String, java.util.Calendar)"><B>getTimestamp(String, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#getTimestampInternal(java.lang.Object, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimestampInternal(Object, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#getTimestampInternal(java.lang.Object, java.util.Calendar, org.apache.openjpa.jdbc.sql.Joins)"><B>getTimestampInternal(Object, Calendar, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getTo()"><B>getTo()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return the node the edge links to.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getToken()"><B>getToken()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The token to use to separate stringified primary key field values.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Event.html#getTotal()"><B>getTotal()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Event.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator.Event</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#getTrackChanges()"><B>getTrackChanges()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Whether proxies produced by this factory will use <A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util"><CODE>ChangeTracker</CODE></A>s
 to try to cut down on data store operations at the cost of some extra
 bookkeeping overhead.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#getTrackKeys()"><B>getTrackKeys()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTracker.html#getTrackKeys()"><B>getTrackKeys()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util">MapChangeTracker</A>
<DD>Whether to track keys or values.
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#getTrackKeys()"><B>getTrackKeys()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#getTrackParameters()"><B>getTrackParameters()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>Whether to track parameters for the purposes of reporting exceptions.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#getTransaction()"><B>getTransaction()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getTransaction()"><B>getTransaction()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getTransaction()"><B>getTransaction()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#getTransactionalObjects()"><B>getTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Return the unmodifiable set of persistence capable objects
 participating in the transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getTransactionalObjects()"><B>getTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getTransactionalObjects()"><B>getTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getTransactionalObjects()"><B>getTransactionalObjects()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return a list of current transaction instances.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getTransactionalObjects()"><B>getTransactionalObjects()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getTransactionalObjects()"><B>getTransactionalObjects()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return a set of current transaction instances.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getTransactionalStates()"><B>getTransactionalStates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Return a copy of all transactional state managers.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getTransactionIsolation()"><B>getTransactionIsolation()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The transaction isolation level to use at the database level.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getTransactionIsolation()"><B>getTransactionIsolation()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#getTransactionIsolation()"><B>getTransactionIsolation()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>The transaction isolation level.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getTransactionIsolation()"><B>getTransactionIsolation()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getTransactionIsolationConstant()"><B>getTransactionIsolationConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return the proper transaction isolation level constant from
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A>, or -1 for the default level.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getTransactionIsolationConstant()"><B>getTransactionIsolationConstant()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AbstractManagedRuntime.html#getTransactionKey()"><B>getTransactionKey()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AbstractManagedRuntime.html" title="class in org.apache.openjpa.ee">AbstractManagedRuntime</A>
<DD>Returns a transaction key that can be used to associate transactions
 and Brokers.
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#getTransactionKey()"><B>getTransactionKey()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html#getTransactionKey()"><B>getTransactionKey()</B></A> - 
Method in interface org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee">ManagedRuntime</A>
<DD>Returns a transaction key that can be used to associate transactions
 and Brokers.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#getTransactionKey()"><B>getTransactionKey()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#getTransactionKey()"><B>getTransactionKey()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getTransactionListenerCallbackMode()"><B>getTransactionListenerCallbackMode()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>The callback mode for handling exceptions from transaction event
 listeners.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getTransactionListenerCallbackMode()"><B>getTransactionListenerCallbackMode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getTransactionListenerCallbackMode()"><B>getTransactionListenerCallbackMode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getTransactionListenerCallbackMode()"><B>getTransactionListenerCallbackMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#getTransactionListenerCallbackMode()"><B>getTransactionListenerCallbackMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>The <A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><CODE>CallbackMode</CODE></A> flags for handling transaction listener
 exceptions.
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee">JNDIManagedRuntime</A>
<DD>Return the cached TransactionManager instance.
<DT><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in interface org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee">ManagedRuntime</A>
<DD>Return the TransactionManager for the managed runtime.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>Return the cached TransactionManager instance.
<DT><A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html" title="class in org.apache.openjpa.ee">SunOneManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>Gets an extendedJTATransaction from JNDI and creates a transaction
 wrapper
<DT><A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html#getTransactionManager()"><B>getTransactionManager()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html" title="class in org.apache.openjpa.ee">WLSManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#getTransactionManagerMethod()"><B>getTransactionManagerMethod()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>Return the method to invoke to get the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionManager.html" title="class or interface in javax.transaction"><CODE>TransactionManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html#getTransactionManagerName()"><B>getTransactionManagerName()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee">JNDIManagedRuntime</A>
<DD>Return the location of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionManager.html" title="class or interface in javax.transaction"><CODE>TransactionManager</CODE></A> in JNDI.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getTransactionMode()"><B>getTransactionMode()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Specifies the behavior of the transaction model.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getTransactionMode()"><B>getTransactionMode()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#getTransactionType()"><B>getTransactionType()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#getTransmitPersistedObjectIds()"><B>getTransmitPersistedObjectIds()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>Whether to transmit persisted object ids in remote commit events.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#getTransmitPersistedObjectIds()"><B>getTransmitPersistedObjectIds()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Whether the oids of added instances will be transmitted.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Return the type we are generating an application id for.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return the type being generated.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#getType(org.apache.openjpa.meta.ClassMetaData)"><B>getType(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Return the concrete type for the given class, i.e.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Return the event type.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Return the type of event.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html" title="class in org.apache.openjpa.jdbc.conf">JDBCProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Return the expected type of this value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#getType(java.lang.Class, java.lang.Class[])"><B>getType(Class, Class[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#getType(java.lang.Class, java.lang.Class[])"><B>getType(Class, Class[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return the column's SQL type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html#getType(java.lang.Class[])"><B>getType(Class[])</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps">AggregateListener</A>
<DD>Return the expected type of the result of this listener.
<DT><A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html#getType(java.lang.Class, java.lang.Class[])"><B>getType(Class, Class[])</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps">FilterListener</A>
<DD>Return the expected type of the result of this listener.
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#getType(java.lang.Class, java.lang.Class[])"><B>getType(Class, Class[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Return the expected type for this value, or <code>Object</code> if
 the type is unknown.
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#getType(java.lang.Class, java.lang.Class[])"><B>getType(Class, Class[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Return the type of this instance.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Return the type of derivation.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Traversal bookkeeping info.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Return the event's type code.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>The type of metadata.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>The sequence type.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The value class.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return type.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCPersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>Exception type.
<DT><A HREF="./org/apache/openjpa/util/GeneralException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneralException.html" title="class in org.apache.openjpa.util">GeneralException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Exception type.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Return the persitent class which this id instance represents.
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UnsupportedException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UnsupportedException.html" title="class in org.apache.openjpa.util">UnsupportedException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#getType()"><B>getType()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#getTypeAlias(java.lang.Class)"><B>getTypeAlias(Class)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Return the alias for the given type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getTypeAlias()"><B>getTypeAlias()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Returns the alias for the described type, or <code>null</code> if none
 has been set.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getTypeCode()"><B>getTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#getTypeCode(java.lang.Class)"><B>getTypeCode(Class)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Return the field metadata type code for the given class.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getTypeCode()"><B>getTypeCode()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The type code of the value class.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getTypeCode()"><B>getTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getTypeCode()"><B>getTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getTypeCode()"><B>getTypeCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getTypeCode()"><B>getTypeCode()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return type code.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getTypeInfo()"><B>getTypeInfo()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getTypeJoin(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, boolean, boolean)"><B>getTypeJoin(ValueMapping, String, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return the join from this value to its related type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getTypeMap()"><B>getTypeMap()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Map of JDBC-name to Java-type-name entries that allows customization
 of reverse mapping columns to field types.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getTypeMap()"><B>getTypeMap()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getTypeMetaData()"><CODE>ValueMetaData.getTypeMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getTypeMetaData()"><B>getTypeMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getTypeMetaData()"><B>getTypeMetaData()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The metadata for the value class, if the type is persistent.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getTypeMetaData()"><B>getTypeMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getTypeName()"><B>getTypeName()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The database-specific SQL type of this column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getTypeName(org.apache.openjpa.jdbc.schema.Column)"><B>getTypeName(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the preferred database type name for the given column's type
 from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getTypeName(int)"><B>getTypeName(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the type name for the specific constant as defined
 by <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getTypeOverride()"><B>getTypeOverride()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getTypeOverride()"><B>getTypeOverride()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>User-supplied type overriding assumed type based on field.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getTypeOverride()"><B>getTypeOverride()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/TypesChangedEvent.html#getTypes()"><B>getTypes()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/TypesChangedEvent.html" title="class in org.apache.openjpa.datacache">TypesChangedEvent</A>
<DD>Return the expired types.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#getTypes()"><B>getTypes()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getUDTs(java.lang.String, java.lang.String, java.lang.String, int[])"><B>getUDTs(String, String, String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getUnicodeStream(int)"><B>getUnicodeStream(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getUnicodeStream(java.lang.String)"><B>getUnicodeStream(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getUnimplementedExceptionType()"><B>getUnimplementedExceptionType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#getUnimplementedExceptionType()"><B>getUnimplementedExceptionType()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Return a runtime exception class to throw for un-implemented
 managed interface methods.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#getUnimplementedExceptionType()"><B>getUnimplementedExceptionType()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#getUnique(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getUnique(ValueMapping, String, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Return a default constraint for the value, or null if the value columns
 should not be constrained by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getUnique(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getUnique(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#getUnique()"><B>getUnique()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw unique constraint information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#getUnique(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>getUnique(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getUnique(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, boolean)"><B>getUnique(ValueMapping, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Return a unique constraint for the given columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getUnique(java.lang.String)"><B>getUnique(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the unique constraint with the given name, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getUniqueConstraintSQL(org.apache.openjpa.jdbc.schema.Unique)"><B>getUniqueConstraintSQL(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the declaration SQL for the given unique constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getUniqueForeignKey(org.apache.openjpa.jdbc.schema.Table)"><B>getUniqueForeignKey(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>If the given table has a single unique foreign key or a foreign
 key that matches the primary key, return it.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html#getUniqueName(java.lang.Class)"><B>getUniqueName(Class)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html" title="class in org.apache.openjpa.datacache">DataCachePCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#getUniqueName(java.lang.Class)"><B>getUniqueName(Class)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Creates a unique name for the given type's pcdata implementation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getUniques()"><B>getUniques()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#getUniques(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>getUniques(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#getUniques()"><B>getUniques()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Return the table's unique constraints.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getUnloaded(org.apache.openjpa.kernel.FetchConfiguration)"><B>getUnloaded(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getUnloaded(org.apache.openjpa.kernel.FetchConfiguration)"><B>getUnloaded(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getUnloaded(org.apache.openjpa.kernel.FetchConfiguration)"><B>getUnloaded(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getUnloaded(org.apache.openjpa.kernel.FetchConfiguration)"><B>getUnloaded(FetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return a mutable mask of the unloaded fields that need loading based
 on the given fetch configuration.
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#getUnloaded()"><B>getUnloaded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>Return the currently-loaded fields that will be unloaded after rollback.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getUnloaded(org.apache.openjpa.kernel.FetchConfiguration)"><B>getUnloaded(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#getUnproxyable()"><B>getUnproxyable()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return a mutable view of class names we know cannot be proxied  
 correctly by this manager.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getUnsupportedOptions()"><B>getUnsupportedOptions()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns a set of option names that this store manager does
 not support.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#getUnsupportedOptions()"><B>getUnsupportedOptions()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#getUpdateAction()"><B>getUpdateAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Return the update action for the key.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getUpdateCount()"><B>getUpdateCount()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getUpdateCount()"><B>getUpdateCount()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getUpdateCount()"><B>getUpdateCount()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getUpdatedClasses()"><B>getUpdatedClasses()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getUpdatedClasses()"><B>getUpdatedClasses()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return the set of classes for objects that have been modified
 in the current transaction.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getUpdatedObjectIds()"><B>getUpdatedObjectIds()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>When the event type is not PAYLOAD_EXTENTS, return the set of
 object IDs for updated objects.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#getUpdatedTypeNames()"><B>getUpdatedTypeNames()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>When the event type is PAYLOAD_EXTENTS, return the set of class
 names for the classes of updated objects.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#getUpdatedTypes()"><B>getUpdatedTypes()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Return the unmodifiable the set of classes of
 persistence capable objects that were modified in the transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getUpdatedTypes()"><B>getUpdatedTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getUpdatedTypes()"><B>getUpdatedTypes()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getUpdatedTypes()"><B>getUpdatedTypes()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return the set of classes for objects that have been modified
 in the current transaction.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#getUpdateFields(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>getUpdateFields(OpenJPAStateManager)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Returns the fields of the state that require an update.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getUpdateManager()"><B>getUpdateManager()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>UpdateManager</CODE></A> to use for managing SQL updates.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getUpdateManager()"><B>getUpdateManager()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#getUpdateManagerInstance()"><B>getUpdateManagerInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>UpdateManager</CODE></A> for runtime data store interaction.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#getUpdateManagerInstance()"><B>getUpdateManagerInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#getUpdates()"><B>getUpdates()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#getUpdates()"><B>getUpdates()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Return all updated primary rows.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getUpdates(org.apache.openjpa.kernel.StoreQuery)"><B>getUpdates(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#getUpdates()"><B>getUpdates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#getUpdates()"><B>getUpdates()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>If this query is a bulk update, return a map of the
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta"><CODE>FieldMetaData</CODE></A>s to <A HREF="./org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Constant</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#getUpdates()"><B>getUpdates()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#getUpdates(org.apache.openjpa.kernel.StoreQuery)"><B>getUpdates(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return a map of <A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta"><CODE>FieldMetaData</CODE></A> to update
 <A HREF="./org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Constant</CODE></A>s, in cases where this query is for a bulk update.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getUpdateStrategy()"><B>getUpdateStrategy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The strategy to use when updating the field.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getURL(int)"><B>getURL(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getURL(java.lang.String)"><B>getURL(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getURL()"><B>getURL()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getURL(int)"><B>getURL(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getURL(java.lang.String)"><B>getURL(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#getUseAliases()"><B>getUseAliases()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Whether to use type alises for primary key values in place of class
 names.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getUseBuiltinIdentityClass()"><B>getUseBuiltinIdentityClass()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use built in identity classes when possible.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getUseClassCriteria()"><B>getUseClassCriteria()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getUseClassCriteria()"><B>getUseClassCriteria()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Whether to use class criteria when joining to related type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getUseClassCriteria()"><B>getUseClassCriteria()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#getUseClassCriteria()"><B>getUseClassCriteria()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Whether to use class criteria when joining to related type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getUseDataStoreIdentity()"><B>getUseDataStoreIdentity()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use datastore identity when possible.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getUseForeignKeyName()"><B>getUseForeignKeyName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return whether the foreign key name will be used to generate
 relation names.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getUseGenericCollections()"><B>getUseGenericCollections()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use generic collections on one-to-many and many-to-many
 relations instead of untyped collections.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#getUsePCRegistry()"><B>getUsePCRegistry()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Whether to attempt to use the information from registered classes
 to populate metadata defaults.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getUserName()"><B>getUserName()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Get the value for the specified key from the map of user objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Get the value for the specified key from the map of user objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getUserObject()"><B>getUserObject()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Arbitrary user object associated with the edge.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Get the value for the specified key from the map of user objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#getUserObject(java.lang.Object)"><B>getUserObject(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Get the value for the specified key from the map of user objects.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getUseSchemaName()"><B>getUseSchemaName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return true if the schema name will be included in the generated
 class name for each table.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getValidate()"><B>getValidate()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The metadata validation level.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getValidateFalseReturnsHollow()"><B>getValidateFalseReturnsHollow()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to return hollow instances to broker lookups with a
 <code>validate</code> parameter of false.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#getValidateTrueChecksStore()"><B>getValidateTrueChecksStore()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to check the datastore for the existence of a nontransactional
 cached object in broker lookups with a <code>validate</code> parameter
 of true.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidColumnName(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getValidColumnName(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given column name to make it valid
 for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidForeignKeyName(java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>getValidForeignKeyName(String, Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given foreign key name to make it
 valid for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidIndexName(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getValidIndexName(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given index name to make it valid
 for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidPrimaryKeyName(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getValidPrimaryKeyName(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given primary key name to make it
 valid for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidSequenceName(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>getValidSequenceName(String, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given sequence name to make it valid
 for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidTableName(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>getValidTableName(String, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given table name to make it valid
 for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getValidUniqueName(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>getValidUniqueName(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Make any necessary changes to the given unique constraint name to make
 it valid for the current DB.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#getVals()"><B>getVals()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getValue()"><B>getValue()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>If this is a constant, return its value, else return null.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#getValue(java.lang.Object[])"><B>getValue(Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#getValue(java.lang.Object[])"><B>getValue(Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>The discriminator value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>Raw discriminator value string.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#getValue(org.apache.openjpa.jdbc.meta.Discriminator, boolean)"><B>getValue(Discriminator, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>Return the discriminator value as an object of the right type.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Constant.html#getValue(java.lang.Object[])"><B>getValue(Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps">Constant</A>
<DD>Return the value for this constant given the specified parameters.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#getValue()"><B>getValue()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>The value of this literal.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getValue(java.lang.String)"><B>getValue(String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return the <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> for the given property, or null if none.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getValue(java.lang.String)"><B>getValue(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>MetaData about the field value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getValueColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getValueColumns(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Return the columns holding data for a map value for the given value
 mapping from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentKeyMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentKeyMappings(boolean)</CODE></A> or
 <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentValueMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentValueMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#getValueColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getValueColumns(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#getValueColumns(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>getValueColumns(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getValueIndex()"><B>getValueIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getValueIndex()"><B>getValueIndex()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Index on this value's columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getValueIndex()"><B>getValueIndex()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getValueInfo()"><B>getValueInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getValueInfo()"><B>getValueInfo()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Raw mapping data.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getValueInfo()"><B>getValueInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValueMappedBy()"><B>getValueMappedBy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getValueMappedBy()"><B>getValueMappedBy()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The field that this value shares a mapping with.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getValueMappedBy()"><B>getValueMappedBy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getValueMappedByMapping()"><B>getValueMappedByMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getValueMappedByMapping()"><B>getValueMappedByMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getValueMappedByMetaData()"><CODE>ValueMetaData.getValueMappedByMetaData()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getValueMappedByMapping()"><B>getValueMappedByMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValueMappedByMetaData()"><B>getValueMappedByMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#getValueMappedByMetaData()"><B>getValueMappedByMetaData()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The field that this value shares a mapping with.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#getValueMappedByMetaData()"><B>getValueMappedByMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getValueMapping()"><B>getValueMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Convenience method to perform cast from <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValue()"><CODE>FieldMetaData.getValue()</CODE></A>
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.Action.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.Action.html" title="class in org.apache.openjpa.ant">MetaDataToolTask.Action</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.Action.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.Action.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask.Action</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.SchemaAction.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.SchemaAction.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask.SchemaAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.AccessType.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.AccessType.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask.AccessType</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.Level.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.Level.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask.Level</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.Action.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.Action.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask.Action</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Arguments.html#getValues()"><B>getValues()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Arguments.html" title="interface in org.apache.openjpa.kernel.exps">Arguments</A>
<DD>Return the values that make up the arguments.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#getValues()"><B>getValues()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return the set of all <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#getValues()"><B>getValues()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Returns null.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Returns a <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A> for the generated values of the specified
 field, or null if the field is not generated.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><B>getValueSequence(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return a sequence that generates values for the given field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValueSequenceMetaData()"><B>getValueSequenceMetaData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Metadata for the value sequence.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValueSequenceName()"><B>getValueSequenceName()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The value sequence name, or null for none.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#getValueStrategy()"><B>getValueStrategy()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The strategy to use for insert value generation.
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#getValueType()"><B>getValueType()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Returns the type of the property that this Value represents.
<DT><A HREF="./org/apache/openjpa/util/ProxyMap.html#getValueType()"><B>getValueType()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMap.html" title="interface in org.apache.openjpa.util">ProxyMap</A>
<DD>The map value type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#getValueUnique()"><B>getValueUnique()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#getValueUnique()"><B>getValueUnique()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Unique constraint on this value's columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#getValueUnique()"><B>getValueUnique()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#getVariable(java.lang.String, boolean)"><B>getVariable(String, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Returns a value for the given id.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#getVariable(java.lang.String, boolean)"><B>getVariable(String, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>Identification variables in JPQL are case insensitive, so lower-case
 all variables we are going to bind.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Returns the optimistic version for this instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The version indicator.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#getVersion(java.lang.Object)"><B>getVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#getVersion(java.lang.Object)"><B>getVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return the current version indicator for this instance.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Returns the current version object that this data was loaded from.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#getVersion(java.lang.Object)"><B>getVersion(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Returns the current version indicator for <code>o</code>.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#getVersion(java.lang.Object)"><B>getVersion(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#getVersion(java.lang.Object)"><B>getVersion(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Returns the current version indicator for <code>o</code>.
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Get the version number of the object.
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#getVersionCheckOnReadLock()"><B>getVersionCheckOnReadLock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Whether or not we should force a version check at commit
 time when a read lock is requested in order to verify read
 consistency.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getVersionColumn(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>getVersionColumn(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return version column name
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getVersionColumnName()"><B>getVersionColumnName()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for version identity columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#getVersionColumns(java.lang.String, java.lang.String, java.lang.String)"><B>getVersionColumns(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getVersionField()"><B>getVersionField()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return the version field for this class, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#getVersionFieldMapping()"><B>getVersionFieldMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Convenience method to perform cast from
 <A HREF="./org/apache/openjpa/meta/ClassMetaData.html#getVersionField()"><CODE>ClassMetaData.getVersionField()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#getVersionSpecificClass(java.lang.Class)"><B>getVersionSpecificClass(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Returns a version-specific instance of the specified class
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#getVersionSpecificClass(java.lang.String)"><B>getVersionSpecificClass(String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Obtains a subclass of the specific base class that is
 specific to the current version of Java in use.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#getVersionStrategy()"><B>getVersionStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default version strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#getVersionStrategy()"><B>getVersionStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Default version strategy for base class mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#getVersionStrategy()"><B>getVersionStrategy()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#getVersionUpdateOnWriteLock()"><B>getVersionUpdateOnWriteLock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Whether or not we should force an update to the version at commit
 time when a write lock is requested.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#getWaitingThreads(org.apache.openjpa.lib.util.concurrent.Condition)"><B>getWaitingThreads(Condition)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns a collection containing those threads that may be
 waiting on the given condition associated with this lock.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#getWaitingThreads()"><B>getWaitingThreads()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#getWaitQueueLength(org.apache.openjpa.lib.util.concurrent.Condition)"><B>getWaitQueueLength(Condition)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns an estimate of the number of threads waiting on the
 given condition associated with this lock.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#getWarningAction()"><B>getWarningAction()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>What to do with SQL warnings.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#getWarningHandler()"><B>getWarningHandler()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>What to do with SQL warnings.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#getWarnings()"><B>getWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#getWarnings()"><B>getWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#getWarnings()"><B>getWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#getWarnings()"><B>getWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#getWarnings()"><B>getWarnings()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#getWeight()"><B>getWeight()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return the weight of the edge.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#getWhere(org.apache.openjpa.jdbc.sql.Select, boolean)"><B>getWhere(Select, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the WHERE portion of the select statement, or null if no where
 conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#getWhere()"><B>getWhere()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#getWhere(org.apache.openjpa.jdbc.schema.Column)"><B>getWhere(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Return the value set for where on the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#getWhere()"><B>getWhere()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return the WHERE clause, minus any necessary end joins.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#getWhere()"><B>getWhere()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#getWrapIndent()"><B>getWrapIndent()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#getWrapper(int)"><B>getWrapper(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>get the wrapper for the given <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> constant.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#getWrapper(java.lang.Class)"><B>getWrapper(Class)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Get the wrapper for the given type.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getWriteLockLevel()"><B>getWriteLockLevel()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The default write lock level to use during non-optimistic transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getWriteLockLevel()"><B>getWriteLockLevel()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#getWriteLockLevel()"><B>getWriteLockLevel()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#getWriteLockLevel()"><B>getWriteLockLevel()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The lock level to use for locking dirtied objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#getWriteLockLevel()"><B>getWriteLockLevel()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#getWriteLockLevelConstant()"><B>getWriteLockLevelConstant()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The numeric write lock level.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#getWriteLockLevelConstant()"><B>getWriteLockLevelConstant()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#getWriteLockMode()"><B>getWriteLockMode()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The lock level to use for locking dirtied objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#getWriteLockMode()"><B>getWriteLockMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#getWriter()"><B>getWriter()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The writer to write source to, or null to write to default file.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#getWriter()"><B>getWriter()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>The stream to write to for the creation of SQL scripts.
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#getWriter(java.lang.String, java.lang.ClassLoader)"><B>getWriter(String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Return a writer to the stream(stdout or stderr) or file named by the
 given string.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#getWriter()"><B>getWriter()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The writer to generate metadata to.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getXMLAnnotationParser()"><B>getXMLAnnotationParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Return JAXB XML annotation parser, 
 creating it if it does not already exist.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getXmlMapping()"><B>getXmlMapping()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>If this is an XPath, return XML mapping metadata,
 else return null;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Path.html#getXmlMapping()"><B>getXmlMapping()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Path.html" title="interface in org.apache.openjpa.kernel.exps">Path</A>
<DD>Return the current XPath's xmlmapping metadata.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#getXMLMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>getXMLMetaData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Return XML metadata for a given field metadata
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getXmlname()"><B>getXmlname()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getXmlname()"><B>getXmlname()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getXmlname()"><B>getXmlname()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return xml element tag name or xml attribute name.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getXmlnamespace()"><B>getXmlnamespace()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getXmlnamespace()"><B>getXmlnamespace()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getXmlnamespace()"><B>getXmlnamespace()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return xml namespace.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#getXMLParser()"><B>getXMLParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Return XML metadata parser, creating it if it does not already exist.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#getXmltype()"><B>getXmltype()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#getXmltype()"><B>getXmltype()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#getXmltype()"><B>getXmltype()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return xmltype
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#getXPath()"><B>getXPath()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>If this is an XPath, return it,
 else return null;
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph"><B>Graph</B></A> - Class in <A HREF="./org/apache/openjpa/lib/graph/package-summary.html">org.apache.openjpa.lib.graph</A><DD>Graph representation using the adjacency list form.<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#Graph()"><B>Graph()</B></A> - 
Constructor for class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html" title="interface in org.apache.openjpa.lib.graph"><B>GraphVisitor</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/graph/package-summary.html">org.apache.openjpa.lib.graph</A><DD>A helper interface that allows third parties to be notified of
 graph events during graph traversals<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#greaterThan(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>greaterThan(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#greaterThan(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>greaterThan(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#greaterThan(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>greaterThan(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#greaterThanEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>greaterThanEqual(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#greaterThanEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>greaterThanEqual(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#greaterThanEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>greaterThanEqual(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#group(org.apache.openjpa.kernel.exps.QueryExpressions, java.util.List, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>group(QueryExpressions, List, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>Group the list of matches into a list of lists.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#GROUP_ALL"><B>GROUP_ALL</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Fetch group representing all fields.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#GROUP_DEFAULT"><B>GROUP_DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The default fetch group.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#groupBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>groupBy(Select, ExpContext, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#groupBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>groupBy(Select, ExpContext, ExpState)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Group by this value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>groupBy(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(java.lang.String)"><B>groupBy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(String, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.schema.Column)"><B>groupBy(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.schema.Column[])"><B>groupBy(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>groupBy(ClassMapping, int, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#groupBy(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.schema.Column)"><B>groupBy(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Group by the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Group by the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.schema.Column[])"><B>groupBy(Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Group by the given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(Column[], Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Group by the given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>groupBy(SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add a GROUP BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(SQLBuffer, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add a GROUP BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(java.lang.String)"><B>groupBy(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add a GROUP BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(String, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add a GROUP BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>groupBy(ClassMapping, int, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Group by the columns of the given mapping, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#groupBy(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Group by the columns of the given mapping, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>groupBy(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(java.lang.String)"><B>groupBy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(String, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.schema.Column)"><B>groupBy(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.schema.Column[])"><B>groupBy(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>groupBy(ClassMapping, int, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#groupBy(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>groupBy(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html#groupByPackage(java.util.Collection)"><B>groupByPackage(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataSerializer</A>
<DD>Helper method to group objects by package.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#grouping"><B>grouping</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#grouping"><B>grouping</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#groupingClauses"><B>groupingClauses</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>H2Dictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Support for the H2 database (<CODE>http://www.h2database.com</CODE>).<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#H2Dictionary()"><B>H2Dictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#haltOnError"><B>haltOnError</B></A> - 
Variable in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Throws a <A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><CODE>StoreException</CODE></A> by default.
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#handleCheckedException(java.lang.Exception)"><B>handleCheckedException(Exception)</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Any checked exceptions that are thrown will be passed to this method.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#handlerCollectionStrategy(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.meta.ValueHandler, boolean)"><B>handlerCollectionStrategy(FieldMapping, ValueHandler, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the collection strategy for the given element handler, or null
 if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>HandlerFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for a single-valued field that delegates to a <A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>ValueHandler</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#HandlerFieldStrategy()"><B>HandlerFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#handlerMapStrategy(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.meta.ValueHandler, org.apache.openjpa.jdbc.meta.ValueHandler, boolean, boolean, boolean)"><B>handlerMapStrategy(FieldMapping, ValueHandler, ValueHandler, boolean, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the map strategy for the given key and value handlers / relations,
 or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>HandlerStrategies</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Utility methods for strategies using value handlers.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#HandlerStrategies()"><B>HandlerStrategies()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#handleUnknownClassAnnotation(org.apache.openjpa.meta.ClassMetaData, java.lang.annotation.Annotation)"><B>handleUnknownClassAnnotation(ClassMetaData, Annotation)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Allow subclasses to handle unknown annotations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#handleUnknownClassMappingAnnotation(org.apache.openjpa.jdbc.meta.ClassMapping, java.lang.annotation.Annotation)"><B>handleUnknownClassMappingAnnotation(ClassMapping, Annotation)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Allow subclasses to handle unknown annotations.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#handleUnknownMemberAnnotation(org.apache.openjpa.meta.FieldMetaData, java.lang.annotation.Annotation)"><B>handleUnknownMemberAnnotation(FieldMetaData, Annotation)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Allow subclasses to handle unknown annotations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#handleUnknownMemberMappingAnnotation(org.apache.openjpa.jdbc.meta.FieldMapping, java.lang.annotation.Annotation)"><B>handleUnknownMemberMappingAnnotation(FieldMapping, Annotation)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Allow subclasses to handle unknown annotations.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#handleUnknownPackageAnnotation(java.lang.Package, java.lang.annotation.Annotation)"><B>handleUnknownPackageAnnotation(Package, Annotation)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Allow subclasses to handle unknown annotations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#handleUnknownPackageMappingAnnotation(java.lang.Package, java.lang.annotation.Annotation)"><B>handleUnknownPackageMappingAnnotation(Package, Annotation)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Allow subclasses to handle unknown annotations.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#handleWarning(java.sql.SQLWarning)"><B>handleWarning(SQLWarning)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Implementation of the
 <CODE>LoggingConnectionDecorator.SQLWarningHandler</CODE> interface
 that allows customization of the actions to perform when a
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLWarning.html" title="class or interface in java.sql"><CODE>SQLWarning</CODE></A> occurs at any point on a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A>,
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A>, or <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html" title="class or interface in java.sql"><CODE>ResultSet</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.SQLWarningHandler.html#handleWarning(java.sql.SQLWarning)"><B>handleWarning(SQLWarning)</B></A> - 
Method in interface org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.SQLWarningHandler.html" title="interface in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator.SQLWarningHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#HARD"><B>HARD</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>Hard reference marker.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#HARD"><B>HARD</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>Hard reference marker.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html#HARD"><B>HARD</B></A> - 
Static variable in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util">ReferenceMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html#has(java.lang.Object)"><B>has(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html" title="class in org.apache.openjpa.jdbc.meta.strats">LRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#has(java.lang.Object)"><B>has(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>Return whether the collection contains the given element.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasAttachListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasAttachListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#hasAutoAssignConstraints()"><B>hasAutoAssignConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#hasAutoAssignConstraints()"><B>hasAutoAssignConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Whether any primary rows have auto-assign constraints.
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#hasBeginListeners()"><B>hasBeginListeners()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>Whether there are any begin transaction listeners.
<DT><A HREF="./org/apache/openjpa/event/LifecycleCallbacks.html#hasCallback(java.lang.Object, int)"><B>hasCallback(Object, int)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleCallbacks.html" title="interface in org.apache.openjpa.event">LifecycleCallbacks</A>
<DD>Return whether the given instance has a callback for the given
 event type.
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#hasCallback(java.lang.Object, int)"><B>hasCallback(Object, int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#hasClassConditions(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>hasClassConditions(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html#hasClassConditions(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>hasClassConditions(ClassMapping, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">DiscriminatorStrategy</A>
<DD>Whether any class conditions are necessary.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#hasClassConditions(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>hasClassConditions(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#hasClassConditions(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>hasClassConditions(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#hasClassConditions(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>hasClassConditions(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html#hasClassConditions(org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>hasClassConditions(ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasClearListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasClearListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#hasComponents()"><B>hasComponents()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#hasConnection()"><B>hasConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#hasConnection()"><B>hasConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#hasConnection()"><B>hasConnection()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether the broker has a dedicated connection based on the configured
 connection retain mode and transaction status.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasDeleteListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasDeleteListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasDetachListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasDetachListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasDirtyListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasDirtyListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#hasEager(java.util.List, org.apache.openjpa.jdbc.meta.FieldMapping)"><B>hasEager(List, FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Return true if the mapped result contains eager data for the given
 field at the given path.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#hasEagerJoin(boolean)"><B>hasEagerJoin(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#hasEagerJoin(boolean)"><B>hasEagerJoin(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Whether this select has an eager join of the specified type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#hasEagerJoin(boolean)"><B>hasEagerJoin(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#hasEndListeners()"><B>hasEndListeners()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>Whether there are any end transaction listeners.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#hasExtension(java.lang.String)"><B>hasExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return true if the extension with the given key exists.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#hasExtension(java.lang.String, java.lang.String)"><B>hasExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return true if the extension with the given key exists.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#hasFetchGroup(java.lang.String)"><B>hasFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#hasFetchGroup(java.lang.String)"><B>hasFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return true if the given fetch group has been added.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#hasFetchGroup(java.lang.String)"><B>hasFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#hasFetchInnerJoin(java.lang.String)"><B>hasFetchInnerJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#hasFetchInnerJoin(java.lang.String)"><B>hasFetchInnerJoin(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Return true if the given fully-qualified inner fetch join has been added.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#hasFetchInnerJoin(java.lang.String)"><B>hasFetchInnerJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#hasField(java.lang.String)"><B>hasField(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#hasField(java.lang.String)"><B>hasField(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return true if the given fully-qualified field has been added.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#hasField(java.lang.String)"><B>hasField(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#hasField(java.lang.String)"><B>hasField(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Return true if the given field has been added.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#hasField(java.lang.Class, java.lang.String)"><B>hasField(Class, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Return true if the given field has been added.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#hasField(java.lang.String)"><B>hasField(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#hasField(java.lang.Class, java.lang.String)"><B>hasField(Class, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#hasFlushListeners()"><B>hasFlushListeners()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>Whether there are any flush transaction listeners.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#hasGrouping(org.apache.openjpa.kernel.StoreQuery)"><B>hasGrouping(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#hasGrouping()"><B>hasGrouping()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#hasGrouping()"><B>hasGrouping()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return true if the query uses grouping.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#hasGrouping()"><B>hasGrouping()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#hasGrouping(org.apache.openjpa.kernel.StoreQuery)"><B>hasGrouping(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Whether the compiled query has grouping.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Define a hashing algorithm corresponding to the <A HREF="./org/apache/openjpa/datacache/QueryKey.html#equals(java.lang.Object)"><CODE>QueryKey.equals(java.lang.Object)</CODE></A>
 method defined above.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Computes hash code based on the properties returned from
 <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#toProperties(boolean)"><CODE>ConfigurationImpl.toProperties(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Generate the hashcode for this Id.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#hasJoin(java.lang.String)"><B>hasJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#hasJoin(java.lang.String)"><B>hasJoin(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Return true if the given fully-qualified join has been added.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#hasJoin(java.lang.String)"><B>hasJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#hasJoin(boolean)"><B>hasJoin(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#hasJoin(boolean)"><B>hasJoin(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Whether this select has a join of the specified type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#hasJoin(boolean)"><B>hasJoin(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#hasKey(java.lang.Object)"><B>hasKey(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>Return whether the given key exists in the map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#hasListener(java.lang.Object)"><B>hasListener(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Return whether the given instance is in the list of listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html#hasListener(java.lang.Object)"><B>hasListener(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A>
<DD>Return whether the given instance is in the list of listeners.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html#hasListeners(int)"><B>hasListeners(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html" title="class in org.apache.openjpa.event">LifecycleEventManager.ListenerList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#hasListeners()"><B>hasListeners()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Return true if there are any registered listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html#hasListeners()"><B>hasListeners()</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A>
<DD>Return true if there are any registered listeners.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasLoadListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasLoadListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html" title="interface in org.apache.openjpa.lib.meta">MetaDataIterator</A>
<DD>Return whether there is another resource to iterate over.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">URLMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html#hasNext()"><B>hasNext()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop">ResultObjectProviderIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html#hasNoCycles()"><B>hasNoCycles()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph">DepthFirstAnalysis</A>
<DD>Test, if the analysis didn't find cycles.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#hasNodes()"><B>hasNodes()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#hasNotNullColumns()"><B>hasNotNullColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Checks for non-nullable local columns.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#hasParameter(java.lang.String)"><B>hasParameter(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Return true if the given parameter has been given a value.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasPersistListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasPersistListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#hasPositionalParameters()"><B>hasPositionalParameters()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Whether this query has positional parameters.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#hasPositionalParameters()"><B>hasPositionalParameters()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#hasPrevious()"><B>hasPrevious()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#hasPrevious()"><B>hasPrevious()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#hasQueuedThread(java.lang.Thread)"><B>hasQueuedThread(Thread)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Queries whether the given thread is waiting to acquire this
 lock.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#hasQueuedThreads()"><B>hasQueuedThreads()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Queries whether any threads are waiting to acquire this lock.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#hasSchemaComponents()"><B>hasSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#hasSchemaComponents()"><B>hasSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#hasSchemaComponents()"><B>hasSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Return true if this info has columns, foreign key information, index
 information, etc.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasStoreListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasStoreListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Whether the extent includes subclasses.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Whether query results will include subclasses of the candidate class.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>Whether the extent includes subclasses.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Whether subclasses are included in the query results.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#hasSubclasses()"><B>hasSubclasses()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Whether this oid might be for a subclass of the given type.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#hasUpdateListeners(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>hasUpdateListeners(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Return whether there are listeners or callbacks for the given source.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#hasValue(java.lang.Object)"><B>hasValue(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>Return whether the given value exists in the map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#hasWaiters(org.apache.openjpa.lib.util.concurrent.Condition)"><B>hasWaiters(Condition)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Queries whether any threads are waiting on the given condition
 associated with this lock.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#having"><B>having</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#having(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>having(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#having(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>having(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#having(java.lang.String)"><B>having(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#having(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>having(String, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#having(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>having(SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given having conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#having(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>having(SQLBuffer, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given having conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#having(java.lang.String)"><B>having(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given having conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#having(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>having(String, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given having conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#having(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>having(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#having(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>having(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#having(java.lang.String)"><B>having(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#having(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>having(String, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#having"><B>having</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#hc(java.lang.Object)"><B>hc(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Obtain the hashcode of an object.
<DT><A HREF="./org/apache/openjpa/kernel/QueryHints.html#HINT_RESULT_COUNT"><B>HINT_RESULT_COUNT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryHints.html" title="interface in org.apache.openjpa.kernel">QueryHints</A>
<DD>Hint to specify the number of rows to optimize for.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#HINT_RESULT_COUNT"><B>HINT_RESULT_COUNT</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Hint key for specifying the number of rows to optimize for.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#hints"><B>hints</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#hintToAggregateListener(java.lang.Object, java.lang.ClassLoader)"><B>hintToAggregateListener(Object, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Convert the user-given hint value to an aggregate listener.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#hintToAggregateListeners(java.lang.Object, java.lang.ClassLoader)"><B>hintToAggregateListeners(Object, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Convert the user-given hint value to an array of aggregate listeners.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#hintToFilterListener(java.lang.Object, java.lang.ClassLoader)"><B>hintToFilterListener(Object, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Convert the user-given hint value to a filter listener.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#hintToFilterListeners(java.lang.Object, java.lang.ClassLoader)"><B>hintToFilterListeners(Object, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Convert the user-given hint value to an array of filter listeners.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#hintToGetter(java.lang.Object, java.lang.String)"><B>hintToGetter(Object, String)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Return the value of the property named by the hint key.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#hintToSetter(java.lang.Object, java.lang.String, java.lang.Object)"><B>hintToSetter(Object, String, Object)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Set the value of the property named by the hint key.
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#HOLLOW"><B>HOLLOW</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Hollow; exists in data store
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#HOURS"><B>HOURS</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>HSQLDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Hypersonic SQL database.<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#HSQLDictionary()"><B>HSQLDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#id"><B>id</B></A> - 
Variable in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util"><B>Id</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Datastore identity type.<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.String)"><B>Id(String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Create an id from the result of a <A HREF="./org/apache/openjpa/util/OpenJPAId.html#toString()"><CODE>OpenJPAId.toString()</CODE></A> call on another
 instance.
<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.String, org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.ClassLoader)"><B>Id(String, OpenJPAConfiguration, ClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Create an id from the result of an <A HREF="./org/apache/openjpa/util/OpenJPAId.html#toString()"><CODE>OpenJPAId.toString()</CODE></A> call on another
 instance.
<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.String, java.lang.ClassLoader)"><B>Id(String, ClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Create an id from the result of an <A HREF="./org/apache/openjpa/util/OpenJPAId.html#toString()"><CODE>OpenJPAId.toString()</CODE></A> call on another
 instance.
<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.Class, java.lang.String)"><B>Id(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Construct from the result of a <A HREF="./org/apache/openjpa/util/OpenJPAId.html#toString()"><CODE>OpenJPAId.toString()</CODE></A> call on another
 instance.
<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.Class, java.lang.Long)"><B>Id(Class, Long)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Construct from key value.
<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.Class, long)"><B>Id(Class, long)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Construct from key value.
<DT><A HREF="./org/apache/openjpa/util/Id.html#Id(java.lang.Class, long, boolean)"><B>Id(Class, long, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Construct from key value.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ID_APPLICATION"><B>ID_APPLICATION</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Application identity type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ID_DATASTORE"><B>ID_DATASTORE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Datastore identity type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#ID_UNKNOWN"><B>ID_UNKNOWN</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Unkonwn identity type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#identityClassSuffix"><B>identityClassSuffix</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#identityColumnName"><B>identityColumnName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>If <A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#createIdentityColumn"><CODE>SybaseDictionary.createIdentityColumn</CODE></A> is true, then the
 <code>identityColumnName</code> will be the name of the
 additional unique column that will be created.
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Id.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util">ObjectId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Compare the id to the id of the given instance.
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html#idEquals(org.apache.openjpa.util.OpenJPAId)"><B>idEquals(OpenJPAId)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Id.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util">ObjectId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Return the id's hash code.
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html#idHash()"><B>idHash()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html#IGNORE"><B>IGNORE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta">UpdateStrategies</A>
<DD>Ignore updates; field is always considered clean.
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#IGNORE_HIGH"><B>IGNORE_HIGH</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#IGNORE_LOW"><B>IGNORE_LOW</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#IGNORE_NONE"><B>IGNORE_NONE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#ignoreChanges"><B>ignoreChanges</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#ignoreContent(boolean)"><B>ignoreContent(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Ignore all content below the current element.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#ignoreErrors"><B>ignoreErrors</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#ignoreErrors"><B>ignoreErrors</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#ignoreErrors"><B>ignoreErrors</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#ignoreLoaded(org.apache.openjpa.meta.FieldMetaData)"><B>ignoreLoaded(FieldMetaData)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>Ignore if the field is not dirty but loaded
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ImmutableValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for simple type and string values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html#ImmutableValueHandler()"><B>ImmutableValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ImmutableValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#IMPL_CLASS_TABLE"><B>IMPL_CLASS_TABLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><CODE>ClassTableJDBCSeq</CODE></A> alias.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#IMPL_NATIVE"><B>IMPL_NATIVE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Default plugin alias name; every back end should have some 'native'
 sequence implementation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#IMPL_TABLE"><B>IMPL_TABLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><CODE>TableJDBCSeq</CODE></A> alias.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#IMPL_TIME"><B>IMPL_TIME</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Time-based sequence values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#IMPL_VALUE_TABLE"><B>IMPL_VALUE_TABLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><CODE>ValueTableJDBCSeq</CODE></A> alias.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#implementsDec(int)"><B>implementsDec(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util"><B>ImplHelper</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Helper for OpenJPA back-ends.<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#ImplHelper()"><B>ImplHelper()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#importColumn(org.apache.openjpa.jdbc.schema.Column)"><B>importColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Import a column from another table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#importForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>importForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Import a foreign key; column names must match columns of this table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#importIndex(org.apache.openjpa.jdbc.schema.Index)"><B>importIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Import an index; column names must match columns of this table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.ImportExport.html#importMappings(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.Class[], java.lang.String[], boolean, org.apache.openjpa.lib.log.Log, java.lang.ClassLoader)"><B>importMappings(JDBCConfiguration, Class[], String[], boolean, Log, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.ImportExport.html" title="interface in org.apache.openjpa.jdbc.meta">MappingTool.ImportExport</A>
<DD>Import mappings for the given classes based on the given arguments.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#importPrimaryKey(org.apache.openjpa.jdbc.schema.PrimaryKey)"><B>importPrimaryKey(PrimaryKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Import a primary key; column names must match columns of this table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#importSchema(org.apache.openjpa.jdbc.schema.Schema)"><B>importSchema(Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Import a schema from another group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#importSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>importSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Import a sequence from another schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#importTable(org.apache.openjpa.jdbc.schema.Table)"><B>importTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Import a table from another schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#importUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>importUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Import a constraint; column names must match columns of this table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#inClauseLimit"><B>inClauseLimit</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#includes(java.lang.String, boolean)"><B>includes(String, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Affirms if given fetch group is included by this receiver.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#INCREMENT"><B>INCREMENT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>"increment" value strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema"><B>Index</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a database index.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html#Index()"><B>Index()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema">Index</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html#Index(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>Index(String, Table)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema">Index</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/Index.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>Index</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Index definition.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#indexes"><B>indexes</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#indexes"><B>indexes</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#indexOf(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>indexOf(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractDB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#indexOf()"><B>indexOf()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Invoke this database's indexOf function.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html" title="class in org.apache.openjpa.jdbc.sql">JDataStoreDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#indexOf()"><B>indexOf()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#indexOf()"><B>indexOf()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PointbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#indexOf(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>indexOf(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#indexOf()"><B>indexOf()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>The index of the select within the UNION that the current row
 corresponds to, or 0.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#indexOf()"><B>indexOf()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>The index of this select within the UNION, or 0.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#indexOf()"><B>indexOf()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#indexOf(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>indexOf(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#indexOf(int)" title="class or interface in java.lang"><CODE>String.indexOf(int)</CODE></A> function on
 the given target with the given args.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#indexOf(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>indexOf(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#indexOf(java.lang.Object, int)"><B>indexOf(Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#indexOfAlias(java.lang.Object)"><B>indexOfAlias(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Return the index of the given alias.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html#indicatesNull(java.lang.Object)"><B>indicatesNull(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbeddedClassStrategy</A>
<DD>Return whether the given null indicator value means the object is null.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#INFO"><B>INFO</B></A> - 
Static variable in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#INFO"><CODE>Log.INFO</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#INFO"><CODE>Log.INFO</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#info(java.lang.Object)"><B>info(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#info(java.lang.Object, java.lang.Throwable)"><B>info(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#INFO_STR"><B>INFO_STR</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>InformixDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Informix database.<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#InformixDictionary()"><B>InformixDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/InheritanceComparator.html" title="class in org.apache.openjpa.meta"><B>InheritanceComparator</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Comparator that keeps classes in inheritance order.<DT><A HREF="./org/apache/openjpa/meta/InheritanceComparator.html#InheritanceComparator()"><B>InheritanceComparator()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/InheritanceComparator.html" title="class in org.apache.openjpa.meta">InheritanceComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#initCause(java.lang.Throwable, java.lang.Throwable)"><B>initCause(Throwable, Throwable)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Set the cause of the given throwable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#initDBDictionary(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>initDBDictionary(DBDictionary)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Initialize self and dictionary once available.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#initDBDictionary(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>initDBDictionary(DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#initializationMillis"><B>initializationMillis</B></A> - 
Variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The time at which this factory was initialized.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#initializationSQL"><B>initializationSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>This method is invoked when OpenJPA needs to load an object whose
 identity is known but which has not yet been loaded from the data
 store.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Initialize any resources associated with the given
 <A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCacheManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManager.html#initialize(org.apache.openjpa.conf.OpenJPAConfiguration, org.apache.openjpa.lib.conf.ObjectValue, org.apache.openjpa.lib.conf.ObjectValue)"><B>initialize(OpenJPAConfiguration, ObjectValue, ObjectValue)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache">DataCacheManager</A>
<DD>Initialize the manager, supplying the cache configuration.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html#initialize(org.apache.openjpa.conf.OpenJPAConfiguration, org.apache.openjpa.lib.conf.ObjectValue, org.apache.openjpa.lib.conf.ObjectValue)"><B>initialize(OpenJPAConfiguration, ObjectValue, ObjectValue)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheManagerImpl.html" title="class in org.apache.openjpa.datacache">DataCacheManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#initialize(org.apache.openjpa.datacache.DataCacheManager)"><B>initialize(DataCacheManager)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Initialize any resources associated with the given
 <A HREF="./org/apache/openjpa/datacache/DataCacheManager.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCacheManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#initialize()"><B>initialize()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Ensure object capacity
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)"><B>initialize(Select, ExpContext, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)"><B>initialize(Select, ExpContext, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)"><B>initialize(Select, ExpContext, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)"><B>initialize(Select, ExpContext, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Initialize the value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#initialize()"><B>initialize()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Perform caching and other initialization operations.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#initialize(org.apache.openjpa.kernel.AbstractBrokerFactory, org.apache.openjpa.kernel.DelegatingStoreManager, boolean, int)"><B>initialize(AbstractBrokerFactory, DelegatingStoreManager, boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Initialize the persistence manager.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#initialize(org.apache.openjpa.kernel.StateManagerImpl, boolean, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(StateManagerImpl, boolean, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Initialize a newly-constructed state manager.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)"><B>initialize(Class, PCState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)"><B>initialize(Class, PCState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)"><B>initialize(Class, PCState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)"><B>initialize(Class, PCState)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Initialize the state manager with a new instance of the given
 persistence capable type and the proper lifecycle state.
<DT><A HREF="./org/apache/openjpa/kernel/PCResultObjectProvider.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCResultObjectProvider.html" title="interface in org.apache.openjpa.kernel">PCResultObjectProvider</A>
<DD>Initializes the state manager.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)"><B>initialize(Class, PCState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#initialize(org.apache.openjpa.enhance.PersistenceCapable, org.apache.openjpa.kernel.PCState)"><B>initialize(PersistenceCapable, PCState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Initialize with the given instance and state.
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Initialize the given state manager.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>initialize(OpenJPAStateManager, PCState, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#initializeMapping()"><B>initializeMapping()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#initializeMapping()"><B>initializeMapping()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Initialize mapping.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#initialSequence()"><B>initialSequence()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Return the initial sequence value for this proxy.
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#initialSequence()"><B>initialSequence()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps"><B>InMemoryExpressionFactory</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Expression factory implementation that can be used to execute queries
 in memory.<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#InMemoryExpressionFactory()"><B>InMemoryExpressionFactory()</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html" title="class in org.apache.openjpa.kernel"><B>InMemorySavepointManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A <A HREF="./org/apache/openjpa/kernel/SavepointManager.html" title="interface in org.apache.openjpa.kernel"><CODE>SavepointManager</CODE></A> implementation which stores all data in memory.<DT><A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html#InMemorySavepointManager()"><B>InMemorySavepointManager()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html" title="class in org.apache.openjpa.kernel">InMemorySavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#innerIdentityClasses"><B>innerIdentityClasses</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#innerJoinClause"><B>innerJoinClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html#INSERT"><B>INSERT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager.CustomMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Set values for the mapping into the proper rows.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.sql.Row)"><B>insert(OpenJPAStateManager, OpenJPAStateManager, JDBCStore, RowManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>Insert an embedded object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#insert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>insert(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#insert(org.apache.openjpa.lib.util.concurrent.WaitQueue.WaitNode)"><B>insert(WaitQueue.WaitNode)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#insertAlias(int, java.lang.Object, java.lang.Object)"><B>insertAlias(int, Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Insert an alias before the given index, using negative indexes
 to count backwards.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#insertPlaceholder(java.lang.String, int)"><B>insertPlaceholder(String, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Insert a placeholder at the given index; use a negative index
 to count from the back of the select list.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#insertRow()"><B>insertRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#insertsAreDetected(int)"><B>insertsAreDetected(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html#installDBDictionary(org.apache.openjpa.jdbc.sql.DBDictionary, org.apache.openjpa.lib.jdbc.DecoratingDataSource, org.apache.openjpa.jdbc.conf.JDBCConfiguration, boolean)"><B>installDBDictionary(DBDictionary, DecoratingDataSource, JDBCConfiguration, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema">DataSourceFactory</A>
<DD>Install things deferred until the DBDictionary instance is available.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#installPrimaryKey(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table)"><B>installPrimaryKey(FieldMapping, Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>If desired, install a primary key on the given secondary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#installPrimaryKey(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table)"><B>installPrimaryKey(FieldMapping, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#installPrimaryKey(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table)"><B>installPrimaryKey(FieldMapping, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>installStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">MappingStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>installStrategy(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">MappingStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>installStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">MappingStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>installStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">MappingStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>installStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">NoneStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>installStrategy(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">NoneStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>installStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">NoneStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>installStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">NoneStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>installStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RefreshStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>installStrategy(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RefreshStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>installStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RefreshStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>installStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RefreshStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>installStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RuntimeStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>installStrategy(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RuntimeStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>installStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RuntimeStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>installStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RuntimeStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>installStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>Install a strategy on the given mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>installStrategy(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>Install a strategy on the given mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>installStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>Install a strategy on the given mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#installStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>installStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>Install a strategy on the given mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel"><B>InstanceResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Object provider implementation wrapped around a <A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Select</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.html#InstanceResultObjectProvider(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>InstanceResultObjectProvider(SelectExecutor, ClassMapping, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">InstanceResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#instantiate(java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>instantiate(Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>Override to keep decorators out of transport configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#instantiate(java.lang.Class, org.apache.openjpa.lib.conf.Configuration)"><B>instantiate(Class, Configuration)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>Instantiate the object as an instance of the given class.
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#instantiate(java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>instantiate(Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>Instantiate the object as an instance of the given class.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#instantiate(java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>instantiate(Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>Instantiate the plugins as instances of the given class.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#instantiate(java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>instantiate(Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>Instantiate the plugin as an instance of the given class.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#instantiate(java.lang.ClassLoader)"><B>instantiate(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Create a new uninitialized instance of this sequence.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#instantiateAll()"><B>instantiateAll()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#instantiateAll()"><B>instantiateAll()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Call the instantiating get methods for all values.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#instantiateAll()"><B>instantiateAll()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#instantiateClassStrategy(java.lang.String, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>instantiateClassStrategy(String, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Return the strategy for the given name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#instantiateDiscriminatorStrategy(java.lang.String, org.apache.openjpa.jdbc.meta.Discriminator)"><B>instantiateDiscriminatorStrategy(String, Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given discriminator strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html#instantiateMetaDataFactory(org.apache.openjpa.lib.conf.Configuration, org.apache.openjpa.lib.conf.PluginValue, java.lang.String)"><B>instantiateMetaDataFactory(Configuration, PluginValue, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingFactoryValue</A>
<DD>Intantiate a <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> responsible for both metadata and
 mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html#instantiateMetaDataFactory(org.apache.openjpa.lib.conf.Configuration, org.apache.openjpa.lib.conf.PluginValue, java.lang.String, boolean)"><B>instantiateMetaDataFactory(Configuration, PluginValue, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingFactoryValue</A>
<DD>Intantiate a <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> responsible for both metadata and
 mapping.
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#instantiateProvider(org.apache.openjpa.lib.conf.Configuration)"><B>instantiateProvider(Configuration)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>Instantiate the provider.
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#instantiateProvider(org.apache.openjpa.lib.conf.Configuration, boolean)"><B>instantiateProvider(Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>Instantiate the provider.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#instantiateVersionStrategy(java.lang.String, org.apache.openjpa.jdbc.meta.Version)"><B>instantiateVersionStrategy(String, Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given version strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#instantiateVersionStrategy(java.lang.Class, org.apache.openjpa.jdbc.meta.Version, java.lang.String)"><B>instantiateVersionStrategy(Class, Version, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given version strategy.
<DT><A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance"><B>InstrumentationFactory</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Factory for obtaining an <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/Instrumentation.html" title="class or interface in java.lang.instrument"><CODE>Instrumentation</CODE></A> instance.<DT><A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html#InstrumentationFactory()"><B>InstrumentationFactory()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance">InstrumentationFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#INT"><B>INT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#INT_OBJ"><B>INT_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#integerTypeName"><B>integerTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>InterbaseDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Borland Interbase.<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#InterbaseDictionary()"><B>InterbaseDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#INTERNAL"><B>INTERNAL</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util"><B>InternalException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type for internal errors.<DT><A HREF="./org/apache/openjpa/util/InternalException.html#InternalException()"><B>InternalException()</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html#InternalException(java.lang.String)"><B>InternalException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html#InternalException(org.apache.openjpa.lib.util.Localizer.Message)"><B>InternalException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html#InternalException(java.lang.Throwable)"><B>InternalException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html#InternalException(java.lang.String, java.lang.Throwable)"><B>InternalException(String, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InternalException.html#InternalException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>InternalException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InternalException.html" title="class in org.apache.openjpa.util">InternalException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util"><B>IntId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for int fields.<DT><A HREF="./org/apache/openjpa/util/IntId.html#IntId(java.lang.Class, java.lang.Integer)"><B>IntId(Class, Integer)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#IntId(java.lang.Class, java.lang.String)"><B>IntId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#IntId(java.lang.Class, int)"><B>IntId(Class, int)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#IntId(java.lang.Class, int, boolean)"><B>IntId(Class, int, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf"><B>IntValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>An int <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#IntValue(java.lang.String)"><B>IntValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#INVALID_STATE"><B>INVALID_STATE</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#invalidateCompilation()"><B>invalidateCompilation()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#invalidateCompilation()"><B>invalidateCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#invalidateCompilation()"><B>invalidateCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#invalidateCompilation()"><B>invalidateCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#invalidateCompilation()"><B>invalidateCompilation()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Invalidate any internal compilation state.
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence"><B>InvalidStateException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Extended <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html" title="class or interface in java.lang"><CODE>IllegalStateException</CODE></A>.<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#InvalidStateException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable[], java.lang.Object, boolean)"><B>InvalidStateException(Localizer.Message, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#InvalidStateException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>InvalidStateException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InvalidStateException.html" title="class in org.apache.openjpa.util"><B>InvalidStateException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type thrown when attempting to execute an operation that
 is not allowed by the current state.<DT><A HREF="./org/apache/openjpa/util/InvalidStateException.html#InvalidStateException(org.apache.openjpa.lib.util.Localizer.Message)"><B>InvalidStateException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InvalidStateException.html" title="class in org.apache.openjpa.util">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/InvalidStateException.html#InvalidStateException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Object)"><B>InvalidStateException(Localizer.Message, Object)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/InvalidStateException.html" title="class in org.apache.openjpa.util">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>InValueDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Base discriminator strategy that determines the class of database
 records using a column holding a value mapped to a class, and limits
 SELECTs using an IN (...) statement.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#InValueDiscriminatorStrategy()"><B>InValueDiscriminatorStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InverseLogical.html" title="annotation in org.apache.openjpa.persistence"><B>InverseLogical</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Declares the logical inverse of a field.<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel"><B>InverseManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Class which manages inverse relations before flushing
 to the datastore.<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#InverseManager()"><B>InverseManager()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#inverseManagerPlugin"><B>inverseManagerPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#inverseRelations"><B>inverseRelations</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>InvocationManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>Implementation of the <A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> interface that uses
 a static method call to find the TransactionManager.<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#InvocationManagedRuntime()"><B>InvocationManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isAccessibleField(java.lang.String)"><B>isAccessibleField(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Return whether the given name represents a managed or static field of
 this class, including superclass fields.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#isAccessPathDirty(org.apache.openjpa.kernel.Broker, org.apache.openjpa.meta.ClassMetaData[])"><B>isAccessPathDirty(Broker, ClassMetaData[])</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isActive()"><B>isActive()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isActive()"><B>isActive()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isActive()"><B>isActive()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether a logical transaction is active.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isActive()"><B>isActive()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html#isAdapting()"><B>isAdapting()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">MappingStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html#isAdapting()"><B>isAdapting()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RefreshStrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#isAdapting()"><B>isAdapting()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>Return whether this installer adapts the given mapping data and
 schema, vs requiring that all information be supplied correctly.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#isAfterLast()"><B>isAfterLast()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return true if this is an aggregate select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#isAggregate(org.apache.openjpa.kernel.StoreQuery)"><B>isAggregate(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>Whether this is an aggregate results.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Return true if this value is an aggregate.
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Return true if the query is an aggregate.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#isAggregate()"><B>isAggregate()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#isAggregate(org.apache.openjpa.kernel.StoreQuery)"><B>isAggregate(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return true if the compiled query is an aggregate.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#isAliasListComprehensive()"><B>isAliasListComprehensive()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Whether or not the alias list defines all possible settings for this
 value.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAllInsertable(int, boolean)"><B>isAllInsertable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether all columns up to but excluding the given index are insertable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAllInsertable(org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>isAllInsertable(Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Equivalent to <code>isAllInsertable (cols.length, nullValue)</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAllInsertable(org.apache.openjpa.jdbc.schema.ForeignKey, boolean)"><B>isAllInsertable(ForeignKey, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Return true if all columns for the given key are insertable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAllUpdatable(int, boolean)"><B>isAllUpdatable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether all columns up to but excluding the given index are updatable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAllUpdatable(org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>isAllUpdatable(Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Equivalent to <code>isAllUpdatable (cols.length, nullValue)</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAllUpdatable(org.apache.openjpa.jdbc.schema.ForeignKey, boolean)"><B>isAllUpdatable(ForeignKey, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Return true if all columns for the given key are updatable.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#isAlreadyRedefined()"><B>isAlreadyRedefined()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether the type that this instance is enhancing has already been
 redefined.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#isAlreadySubclassed()"><B>isAlreadySubclassed()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether the type that this instance is enhancing has already been
 subclassed in this instance's environment classloader.
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#isAnnotation(java.lang.Class)"><B>isAnnotation(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Return true if the given type is an annotation.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html#isAnnotationPresentAction(java.lang.reflect.AnnotatedElement, java.lang.Class)"><B>isAnnotationPresentAction(AnnotatedElement, Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html" title="class in org.apache.openjpa.lib.util">J2DoPriv5Helper</A>
<DD>Return a PrivilegeAction object for
   AnnotatedElement.isAnnotationPresent().
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAnyInsertable(int, boolean)"><B>isAnyInsertable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether any column up to but excluding the given index is insertable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAnyInsertable(org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>isAnyInsertable(Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Equivalent to <code>isAnyInsertable (cols.length, nullValue)</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAnyInsertable(org.apache.openjpa.jdbc.schema.ForeignKey, boolean)"><B>isAnyInsertable(ForeignKey, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Return true if any columns for the given key are insertable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAnyUpdatable(int, boolean)"><B>isAnyUpdatable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether any column up to but excluding the given index is updatable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAnyUpdatable(org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>isAnyUpdatable(Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Equivalent to <code>isAnyUpdatable (cols.length, nullValue)</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isAnyUpdatable(org.apache.openjpa.jdbc.schema.ForeignKey, boolean)"><B>isAnyUpdatable(ForeignKey, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Return true if any columns for the given key are updatable.
<DT><A HREF="./org/apache/openjpa/meta/Order.html#isAscending()"><B>isAscending()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Order.html" title="interface in org.apache.openjpa.meta">Order</A>
<DD>Order direction.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#isAssignable(java.lang.Class, java.lang.Class)"><B>isAssignable(Class, Class)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Returns true if the referenced "to" class is assignable to the "from"
 class.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isAutoAssigned()"><B>isAutoAssigned()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether this column is auto-assigned a value on insert.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#isBaseTable(org.apache.openjpa.jdbc.schema.Table)"><B>isBaseTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return whether the given table is a base class table.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#isBeforeFirst()"><B>isBeforeFirst()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#isBound(org.apache.openjpa.kernel.exps.Value)"><B>isBound(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Return true if the given variable has been bound.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#isCaching()"><B>isCaching()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether parsed resource names are cached to avoid duplicate parsing.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#isCatalogAtStart()"><B>isCatalogAtStart()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#isClassElementName(java.lang.String)"><B>isClassElementName(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>The name of the class element.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#isClassElementName(java.lang.String)"><B>isClassElementName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Returns true if this broker factory is closed.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#isClosed()"><B>isClosed()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether the broker is closed.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#isClosed()"><B>isClosed()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Returns true if this broker factory is closed.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultList.html" title="interface in org.apache.openjpa.lib.rop">ResultList</A>
<DD>Returns true if the list has been closed.
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#isClosed()"><B>isClosed()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#isCloseInvoked()"><B>isCloseInvoked()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether <A HREF="./org/apache/openjpa/kernel/Broker.html#close()"><CODE>Broker.close()</CODE></A> has been invoked, though the broker might 
 remain open until the current managed transaction completes.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isCloseInvoked()"><B>isCloseInvoked()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isCloseInvoked()"><B>isCloseInvoked()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#isCompatible(int, int)"><B>isCompatible(int, int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Return true if the given field type and storage type are compatible.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isCompatible(int, java.lang.String, int, int)"><B>isCompatible(int, String, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return true if this column is compatible with the given JDBC type
 from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Types.html" title="class or interface in java.sql"><CODE>Types</CODE></A> and size.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#isConnectionFactoryModeManaged()"><B>isConnectionFactoryModeManaged()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether connections are automatically enlisted in global transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#isConnectionFactoryModeManaged()"><B>isConnectionFactoryModeManaged()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#isConstant()"><B>isConstant()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Return true if this value represents a literal or parameter.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#isCustom(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustom(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#isCustom(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustom(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#isCustom(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustom(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#isCustom(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustom(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Return <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#FALSE" title="class or interface in java.lang"><CODE>Boolean.FALSE</CODE></A> if this mapping does not customize the
 delete process, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#TRUE" title="class or interface in java.lang"><CODE>Boolean.TRUE</CODE></A> if it does, or null if it does
 customize the delete, but also relies on the standard delete method
 being called.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#isCustomDelete(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomDelete(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Return <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#FALSE" title="class or interface in java.lang"><CODE>Boolean.FALSE</CODE></A> if this mapping does not customize the
 insert process, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#TRUE" title="class or interface in java.lang"><CODE>Boolean.TRUE</CODE></A> if it does, or null if it does
 customize the insert, but also relies on the standard insert method
 being called.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#isCustomInsert(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomInsert(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Return <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#FALSE" title="class or interface in java.lang"><CODE>Boolean.FALSE</CODE></A> if this mapping does not customize the
 update process, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#TRUE" title="class or interface in java.lang"><CODE>Boolean.TRUE</CODE></A> if it does, or null if it does
 customize the update, but also relies on the standard update method
 being called.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#isCustomUpdate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>isCustomUpdate(OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#isDataStoreObjectIdFieldUnwrapped()"><B>isDataStoreObjectIdFieldUnwrapped()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#isDataStoreObjectIdFieldUnwrapped()"><B>isDataStoreObjectIdFieldUnwrapped()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Whether the field in the object id class corresponding to a 
 datastore id persistence-capable primary key field is the simple 
 datastore id value of the related instance.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#isDataStoreObjectIdFieldUnwrapped()"><B>isDataStoreObjectIdFieldUnwrapped()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#isDB2ISeriesV5R3OrEarlier()"><B>isDB2ISeriesV5R3OrEarlier()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#isDB2ISeriesV5R4OrLater()"><B>isDB2ISeriesV5R4OrLater()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#isDB2UDBV81OrEarlier()"><B>isDB2UDBV81OrEarlier()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#isDB2UDBV82OrLater()"><B>isDB2UDBV82OrLater()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#isDB2ZOSV8xOrLater()"><B>isDB2ZOSV8xOrLater()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#isDeclaredInterfacePersistent()"><B>isDeclaredInterfacePersistent()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#isDeclaredInterfacePersistent()"><B>isDeclaredInterfacePersistent()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Whether declared interfaces of a class are treated as persistent
 types.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#isDeclaredInterfacePersistent()"><B>isDeclaredInterfacePersistent()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isDeclaredTypePC()"><B>isDeclaredTypePC()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#isDeclaredTypePC()"><B>isDeclaredTypePC()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Whether the type is a persistence capable instance.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#isDeclaredTypePC()"><B>isDeclaredTypePC()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#isDeclaredVariable(java.lang.String)"><B>isDeclaredVariable(String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Returns whether the specified variable name has been explicitly
 declared.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#isDeclaredVariable(java.lang.String)"><B>isDeclaredVariable(String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isDefaultFetchGroupExplicit()"><B>isDefaultFetchGroupExplicit()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether the default fetch group setting is explicit.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#isDefaultPersistent(org.apache.openjpa.meta.ClassMetaData, java.lang.reflect.Member, java.lang.String)"><B>isDefaultPersistent(ClassMetaData, Member, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Return true if the given member is persistent by default.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#isDefaultPersistent(org.apache.openjpa.meta.ClassMetaData, java.lang.reflect.Member, java.lang.String)"><B>isDefaultPersistent(ClassMetaData, Member, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isDefaultValue(int)"><B>isDefaultValue(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isDefaultValue(int)"><B>isDefaultValue(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isDefaultValue(int)"><B>isDefaultValue(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isDefaultValue(int)"><B>isDefaultValue(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return true if the given field has a default value.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isDefaultValue(int)"><B>isDefaultValue(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#isDeferred()"><B>isDeferred()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return true if this is a deferred constraint.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#isDeleted()"><B>isDeleted()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Whether the instance is deleted in this transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isDeleted(java.lang.Object)"><B>isDeleted(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isDeleted(java.lang.Object)"><B>isDeleted(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isDeleted()"><B>isDeleted()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isDeleted()"><B>isDeleted()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isDeleted()"><B>isDeleted()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isDeleted()"><B>isDeleted()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isDeleted(java.lang.Object)"><B>isDeleted(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return whether the given object is deleted.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#isDependent()"><B>isDependent()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Mark this row as dependent on some other row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#isDependent()"><B>isDependent()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Secondary rows cannot be dependent.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isDetachable()"><B>isDetachable()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether instances are detachable.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicPCHelper.html#isDetached(java.lang.Object)"><B>isDetached(Object)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicPCHelper.html" title="class in org.apache.openjpa.enhance">DynamicPCHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#isDetached()"><B>isDetached()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Whether the instance is detached (i.e.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#isDetached(java.lang.Object)"><B>isDetached(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Returns <code>true</code> if <code>obj</code> is a detached object
 (one that can be reattached to a <A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel"><CODE>Broker</CODE></A> via a call to
 <A HREF="./org/apache/openjpa/kernel/Broker.html#attach(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><CODE>Broker.attach(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)</CODE></A>); otherwise returns <code>false</code>.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isDetached(java.lang.Object)"><B>isDetached(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isDetached(java.lang.Object)"><B>isDetached(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isDetached()"><B>isDetached()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isDetached()"><B>isDetached()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isDetached()"><B>isDetached()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isDetached()"><B>isDetached()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isDetached(java.lang.Object)"><B>isDetached(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isDetached(java.lang.Object)"><B>isDetached(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Returns <code>true</code> if <code>pc</code> is a detached object
 (one that can be reattached to a <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html" title="class or interface in javax.persistence"><CODE>EntityManager</CODE></A> via a call
 to <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html#merge(T)" title="class or interface in javax.persistence"><CODE>EntityManager.merge(T)</CODE></A>); otherwise returns
 <code>false</code>.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#isDetachedNew()"><B>isDetachedNew()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to treat relations to detached instances during persist
 operations as new or as pseudo-hollow instances.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isDetachedNew()"><B>isDetachedNew()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isDetachedNew()"><B>isDetachedNew()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#ISDETACHEDSTATEDEFINITIVE"><B>ISDETACHEDSTATEDEFINITIVE</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#isDetachedStateTransient()"><B>isDetachedStateTransient()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to use transient detached state.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#isDirected()"><B>isDirected()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return whether the edge is directed.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#isDirectoryAction(java.io.File)"><B>isDirectoryAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.isDirectory().
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#isDirty()"><B>isDirty()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Whether the instance has been modified in this transaction.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isDirty(java.lang.Object)"><B>isDirty(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isDirty(java.lang.Object)"><B>isDirty(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isDirty(java.lang.Object)"><B>isDirty(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return whether the given object is dirty.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isDirty(java.lang.Object)"><B>isDirty(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isDirty(java.lang.Object)"><B>isDirty(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return whether the given object is dirty.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#isDistinct()"><B>isDistinct()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#isDistinct()"><B>isDistinct()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#isDistinct()"><B>isDistinct()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether this is a SELECT DISTINCT / UNION ALL.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isDistinct()"><B>isDistinct()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#isDynamic(java.lang.String)"><B>isDynamic(String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Affirms if the given property can be modified <em>dynamically</em> i.e.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#isDynamic(java.lang.String)"><B>isDynamic(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isEagerSelectToMany()"><B>isEagerSelectToMany()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#isEagerSelectToMany()"><B>isEagerSelectToMany()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Whether the eager joins or selects used by this field are to-many.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#isEagerSelectToMany()"><B>isEagerSelectToMany()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#isEagerSelectToMany()"><B>isEagerSelectToMany()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return true if this instance has an owner, meaning it is an embedded
 value.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>This attribute is a hint to the implementation to store this value
 in the same structure as the class, rather than as a separate datastore
 structure.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#isEmbedded()"><B>isEmbedded()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isEmbeddedOnly()"><B>isEmbeddedOnly()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type can only be used as an embedded object.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isEmbeddedPC()"><B>isEmbeddedPC()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#isEmbeddedPC()"><B>isEmbeddedPC()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Whether this is an embedded persistence capable value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#isEmbeddedPC()"><B>isEmbeddedPC()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#isEmpty(org.apache.openjpa.kernel.exps.Value)"><B>isEmpty(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Whether we have any joins.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Return true if the buffer is emtpy.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#isEmpty(org.apache.openjpa.kernel.exps.Value)"><B>isEmpty(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#isEmpty(org.apache.openjpa.kernel.exps.Value)"><B>isEmpty(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns <tt>true</tt> if this map contains no key-value mappings.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Returns <tt>true</tt> if this queue contains no elements.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns true if this Map contains no key-value mappings.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns <tt>true</tt> if this set contains no elements.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Return true if there are no internal class laoders.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return true if there are no keys for any vendor.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#isEnabled(short)"><B>isEnabled(short)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>Check to see if the specified logging level is enabled.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#isEnabled(short)"><B>isEnabled(short)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#isEnumeration(java.lang.Class)"><B>isEnumeration(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Return true if the given type is an enumeration.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Returns if the <A HREF="./org/apache/openjpa/lib/log/Log.html#ERROR"><CODE>Log.ERROR</CODE></A> log level is enabled.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#isErrorEnabled()"><B>isErrorEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isExplicit()"><B>isExplicit()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is explicitly declared in the metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html#isExtent()"><B>isExtent()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SelectConstructor</A>
<DD>Return true if we know the select to have on criteria; to be an extent.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isExternalized()"><B>isExternalized()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether the field is externalized.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#isFailFast()"><B>isFailFast()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Whether to fail after first exception when firing events to listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#isFailFast()"><B>isFailFast()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Whether to fail after the first exception thrown by any listener.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#isFair()"><B>isFair()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns true if this lock has fairness set true.
<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf">BootstrapException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#isFatal()"><B>isFatal()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>Whether this error is fatal.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#isFatal()"><B>isFatal()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Whether this error is fatal.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Returns if the <A HREF="./org/apache/openjpa/lib/log/Log.html#FATAL"><CODE>Log.FATAL</CODE></A> log level is enabled.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#isFatalEnabled()"><B>isFatalEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#isFieldEqual(int, java.lang.Object)"><B>isFieldEqual(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>Compare the given field.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#isFileAction(java.io.File)"><B>isFileAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.isFile().
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#isFinal"><B>isFinal</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>Whether the owning class is final.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#isFirst()"><B>isFirst()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isFlushed()"><B>isFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isFlushed()"><B>isFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isFlushed()"><B>isFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isFlushed()"><B>isFlushed()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return whether this object has been flushed to the datastore in this
 transaction.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isFlushed()"><B>isFlushed()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isFlushedDirty()"><B>isFlushedDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isFlushedDirty()"><B>isFlushedDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isFlushedDirty()"><B>isFlushedDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isFlushedDirty()"><B>isFlushedDirty()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return whether this object has been flushed, then dirtied again.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isFlushedDirty()"><B>isFlushedDirty()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#isForeignKeyInversed()"><B>isForeignKeyInversed()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#isForeignKeyObjectId(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>isForeignKeyObjectId(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return whether the columns of the given foreign key to this mapping
 can be used to construct an object id for this type.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#isFrom(java.lang.Object)"><B>isFrom(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return true if this edge links from the given node.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#isFull()"><B>isFull()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#isFull()"><B>isFull()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#isFull()"><B>isFull()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#isFull()"><B>isFull()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/SizedMap.html#isFull()"><B>isFull()</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/SizedMap.html" title="interface in org.apache.openjpa.lib.util">SizedMap</A>
<DD>Whether the map is full.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#isHeldByCurrentThread()"><B>isHeldByCurrentThread()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Queries if this lock is held by the current thread.
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#isImage(java.lang.Object)"><B>isImage(Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>Return true if the given version object appears to be an array state
 image.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isImplDataCacheable()"><B>isImplDataCacheable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isImplDataCacheable(int)"><B>isImplDataCacheable(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isImplDataCacheable()"><B>isImplDataCacheable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isImplDataCacheable(int)"><B>isImplDataCacheable(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isImplDataCacheable()"><B>isImplDataCacheable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isImplDataCacheable(int)"><B>isImplDataCacheable(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isImplDataCacheable()"><B>isImplDataCacheable()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Whether the instance-level impl data can be shared among instances
 in different contexts if L2 caching is enabled.
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isImplDataCacheable(int)"><B>isImplDataCacheable(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Whether the field's impl data is loaded and can be shared among
 instances in different contexts if L2 caching is enabled.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isImplDataCacheable()"><B>isImplDataCacheable()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isImplDataCacheable(int)"><B>isImplDataCacheable(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isInDefaultFetchGroup()"><B>isInDefaultFetchGroup()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is in the default fetch group.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isInFetchGroup(java.lang.String)"><B>isInFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is in the given fetch group.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Returns if the <A HREF="./org/apache/openjpa/lib/log/Log.html#INFO"><CODE>Log.INFO</CODE></A> log level is enabled.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#isInfoEnabled()"><B>isInfoEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#isInnerClass()"><B>isInnerClass()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Returns true if the application identity class should be an inner class.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isInsertable(int, boolean)"><B>isInsertable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether the column at the given index is insertable in this context.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isInsertable(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>isInsertable(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Equivalent to <code>isInsertable (0, nullValue)</code>, but returns
 false if the given column is null.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#isInstance(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>isInstance(Value, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#isInstance(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>isInstance(Value, Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return whether the first value is an instance of the given class.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#isInstance(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>isInstance(Value, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isIntercepting()"><B>isIntercepting()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Whether or not data access in this instance is intercepted.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isIntercepting()"><B>isIntercepting()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type's fields are actively intercepted, either by
 redefinition or enhancement.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#isInvalidProperty(java.lang.String)"><B>isInvalidProperty(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#isInvalidProperty(java.lang.String)"><B>isInvalidProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Returns true if the specified property name should raise a warning
 if it is not found in the list of known properties.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#isJDBCEnabled()"><B>isJDBCEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>Return true if JDBC logging is enabled.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#isJoinedSubclass()"><B>isJoinedSubclass()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Whether there is a join to the superclass table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isJoinOuter()"><B>isJoinOuter()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Whether to use an outer join from the class' primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#isJoinOuter()"><B>isJoinOuter()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Whether the field's table is joined to the class table through an
 outer join.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#isKnownSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>isKnownSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return true if the given sequence is known to exist.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#isKnownSequence(java.lang.String)"><B>isKnownSequence(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return true if the given sequence is known to exist.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#isKnownTable(org.apache.openjpa.jdbc.schema.Table)"><B>isKnownTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#isKnownTable(java.lang.String)"><B>isKnownTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#isKnownTable(org.apache.openjpa.jdbc.schema.Table)"><B>isKnownTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return true if the given table is known to exist.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#isKnownTable(java.lang.String)"><B>isKnownTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return true if the given table is known to exist.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#isLast()"><B>isLast()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#isLoaded(int)"><B>isLoaded(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#isLoaded(int)"><B>isLoaded(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#isLoaded(int)"><B>isLoaded(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Whether the given field index has stored data.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#isLoaded(int)"><B>isLoaded(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isLob()"><B>isLob()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether this column is a LOB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#isLob()"><B>isLob()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#isLob()"><B>isLob()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return true if this select includes a LOB.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isLob()"><B>isLob()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#isLocked()"><B>isLocked()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Queries if this lock is held by any thread.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#isLocking()"><B>isLocking()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#isLocking()"><B>isLocking()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#isLocking()"><B>isLocking()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>If true, then any results loaded from this Result
 will be locked in the database.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#isLogical()"><B>isLogical()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Return whether this constraint is a logical constraint only; i.e.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#isLogical()"><B>isLogical()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html#isLogical()"><B>isLogical()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema">Index</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html#isLogical()"><B>isLogical()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema">PrimaryKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Unique.html#isLogical()"><B>isLogical()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Unique.html" title="class in org.apache.openjpa.jdbc.schema">Unique</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#isLRS()"><B>isLRS()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#isLRS()"><B>isLRS()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#isLRS()"><B>isLRS()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether the result of this select should be treated as a large
 result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isLRS()"><B>isLRS()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isLRS()"><B>isLRS()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is backed by a large result set.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#isLRU()"><B>isLRU()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Whether this cache map uses LRU eviction.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#isManageable(java.lang.Object)"><B>isManageable(Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Returns true if the specified instance is manageable.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isManaged()"><B>isManaged()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isManaged()"><B>isManaged()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isManaged()"><B>isManaged()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether this context is using managed transactions.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isManaged()"><B>isManaged()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isManaged()"><B>isManaged()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether this entity manager is using managed transactions.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isManagedInterface()"><B>isManagedInterface()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type is a managed interface.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#isManagedType(javax.persistence.EntityManager, java.lang.Class)"><B>isManagedType(EntityManager, Class)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>Returns true if the specified class is an entity or embeddable type.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#isManagedType(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class)"><B>isManagedType(OpenJPAConfiguration, Class)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Returns true if the specified class is a type that can be managed by
 OpenJPA.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#isMapped()"><B>isMapped()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Returns true if this class does not use the "none" strategy (including
 if it has a null strategy, and therefore is probably in the process of
 being mapped).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isMapped()"><B>isMapped()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Returns true if field class does not use the "none" strategy (including
 if it has a null strategy, and therefore is probably in the process of
 being mapped).
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isMapped()"><B>isMapped()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether this class is mapped to the datastore.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isMapped()"><B>isMapped()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return whether this field is mapped to the datastore.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#isMappingMode()"><B>isMappingMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getMode()"><CODE>AnnotationPersistenceMetaDataParser.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#isMappingMode()"><B>isMappingMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getMode()"><CODE>AnnotationPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#isMappingMode(org.apache.openjpa.meta.ClassMetaData)"><B>isMappingMode(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getMode()"><CODE>AnnotationPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#isMappingMode(org.apache.openjpa.meta.ValueMetaData)"><B>isMappingMode(ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getMode()"><CODE>AnnotationPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#isMappingMode()"><B>isMappingMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getMode()"><CODE>XMLPersistenceMetaDataParser.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#isMappingMode()"><B>isMappingMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getMode()"><CODE>XMLPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#isMappingMode(org.apache.openjpa.meta.ClassMetaData)"><B>isMappingMode(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getMode()"><CODE>XMLPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#isMappingMode(org.apache.openjpa.meta.ValueMetaData)"><B>isMappingMode(ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getMode()"><CODE>XMLPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#isMappingOnlyFactory()"><B>isMappingOnlyFactory()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return true if this factory deals only with mapping data, and relies
 on a separate factory for metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#isMappingOverrideMode()"><B>isMappingOverrideMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Returns true if we're in mapping mode or in metadata mode with
 mapping overide enabled.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#isMappingOverrideMode()"><B>isMappingOverrideMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Returns true if we're in mapping mode or in metadata mode with
 mapping override enabled.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#isMetaDataAction()"><B>isMetaDataAction()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether the action works on metadata as well as mappings.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#isMetaDataMode()"><B>isMetaDataMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getMode()"><CODE>AnnotationPersistenceMetaDataParser.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#isMetaDataMode()"><B>isMetaDataMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getMode()"><CODE>AnnotationPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#isMetaDataMode()"><B>isMetaDataMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getMode()"><CODE>XMLPersistenceMetaDataParser.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#isMetaDataMode()"><B>isMetaDataMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getMode()"><CODE>XMLPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html#isNameTaken(java.lang.String)"><B>isNameTaken(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html" title="class in org.apache.openjpa.jdbc.schema">NameSet</A>
<DD>Return true if the given name is in use already.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#isNew()"><B>isNew()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Whether the instance is newly-persisted in this transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isNew(java.lang.Object)"><B>isNew(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isNew(java.lang.Object)"><B>isNew(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isNew()"><B>isNew()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isNew()"><B>isNew()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isNew()"><B>isNew()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isNew()"><B>isNew()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isNew(java.lang.Object)"><B>isNew(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return whether the given object is a newly-created instance registered
 with <code>broker</code>.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isNewlyPersistent(java.lang.Object)"><B>isNewlyPersistent(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isNewlyPersistent(java.lang.Object)"><B>isNewlyPersistent(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return whether the given object was made persistent in the current
 transaction.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#isNotEmpty(org.apache.openjpa.kernel.exps.Value)"><B>isNotEmpty(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#isNotEmpty(org.apache.openjpa.kernel.exps.Value)"><B>isNotEmpty(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#isNotEmpty(org.apache.openjpa.kernel.exps.Value)"><B>isNotEmpty(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isNotNull()"><B>isNotNull()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return true if this is a NOT NULL column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isNotNullExplicit()"><B>isNotNullExplicit()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether the not-null property has been set.
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#isNullOnNoLocator()"><B>isNullOnNoLocator()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isObjectIdTypeShared()"><B>isObjectIdTypeShared()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether this type uses an application identity class that is shared
 with other classes, and is therefore wrapped in an <A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util"><CODE>ObjectId</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#isolate"><B>isolate</B></A> - 
Variable in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>IsolationLevel</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Isolation levels for use in <A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setIsolation(org.apache.openjpa.persistence.jdbc.IsolationLevel)"><CODE>JDBCFetchPlan.setIsolation(org.apache.openjpa.persistence.jdbc.IsolationLevel)</CODE></A>.<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#isOpen()"><B>isOpen()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isOpen()"><B>isOpen()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#isOpenJPAIdentity()"><B>isOpenJPAIdentity()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether this type uses OpenJPA identity.
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#isOrdered()"><B>isOrdered()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>Whether the underlying collection is ordered.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#isOrdered(java.lang.Class)"><B>isOrdered(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return whether the given collection type maintains an artificial 
 ordering.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#isOuter()"><B>isOuter()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Whether this joins path results in outer joins.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isOuter()"><B>isOuter()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#isOuter()"><B>isOuter()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxies.html#isOwner(org.apache.openjpa.util.Proxy, org.apache.openjpa.kernel.OpenJPAStateManager, int)"><B>isOwner(Proxy, OpenJPAStateManager, int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util">Proxies</A>
<DD>Used by proxy types to check if the given owners and field names
 are equivalent.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#isPackageElementName(java.lang.String)"><B>isPackageElementName(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>The name of the package element.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#isPacking(org.apache.openjpa.kernel.StoreQuery)"><B>isPacking(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#isPacking(org.apache.openjpa.kernel.StoreQuery)"><B>isPacking(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Return true if this executor packs projections into the result
 class itself.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#isParseTopDown()"><B>isParseTopDown()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Whether to parse classes top down.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#isPath()"><B>isPath()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Return true if this value represents a persistent field traversal,
 such as 'this', 'address.street', or 'projectVariable.title'.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isPendingTransactional()"><B>isPendingTransactional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#isPersistent()"><B>isPersistent()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Whether the instance is persistent.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isPersistent(java.lang.Object)"><B>isPersistent(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isPersistent(java.lang.Object)"><B>isPersistent(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isPersistent()"><B>isPersistent()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isPersistent()"><B>isPersistent()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isPersistent()"><B>isPersistent()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isPersistent()"><B>isPersistent()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isPersistent(java.lang.Object)"><B>isPersistent(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return whether the given object is persistent.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isPersistent(java.lang.Object)"><B>isPersistent(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isPersistent(java.lang.Object)"><B>isPersistent(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return whether the given object is persistent.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#isPostLoad()"><B>isPostLoad()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Whether loading this fetch group causes a post-load callback on the
 loaded instance.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#isPostLoadExplicit()"><B>isPostLoadExplicit()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Whether the post-load value is declared for this group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isPrimaryKey()"><B>isPrimaryKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Return true if this column belongs to the table's primary key.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isPrimaryKey()"><B>isPrimaryKey()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this is a primary key field.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#isPrimaryKeyAutoAssigned()"><B>isPrimaryKeyAutoAssigned()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Whether the primary key columns of this key are auto-incrementing, or
 whether they themselves are members of a foreign key who's primary key
 is auto-incrementing (recursing to arbitrary depth).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Return true if the this class' primary key columns correspond to the
 base class' primary key columns used to construct oid values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbeddedClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FlatClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#isPrimaryKeyObjectId(boolean)"><B>isPrimaryKeyObjectId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultList.html" title="interface in org.apache.openjpa.lib.rop">ResultList</A>
<DD>Returns true if the provider backing this list is open.
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#isProviderOpen()"><B>isProviderOpen()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isProvisional()"><B>isProvisional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isProvisional()"><B>isProvisional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isProvisional()"><B>isProvisional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isProvisional()"><B>isProvisional()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Return whether this object is provisionally persistent.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isProvisional()"><B>isProvisional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#isQueryMode()"><B>isQueryMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#getMode()"><CODE>AnnotationPersistenceMetaDataParser.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#isQueryMode()"><B>isQueryMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#getMode()"><CODE>AnnotationPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#isQueryMode()"><B>isQueryMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#getMode()"><CODE>XMLPersistenceMetaDataParser.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#isQueryMode()"><B>isQueryMode()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Convenience method for interpreting <A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#getMode()"><CODE>XMLPersistenceMetaDataSerializer.getMode()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Whether the query has been marked read-only.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Return true if this configuration is immutable.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Whether the query has been marked read-only.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#isRegistered(java.lang.Class)"><B>isRegistered(Class)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Returns <code>true</code> if <code>cls</code> is already registered.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isRelationId()"><B>isRelationId()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether this column stores some form of serialized identity value for
 a related record.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isRemoved(java.lang.Object)"><B>isRemoved(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isRemoved(java.lang.Object)"><B>isRemoved(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return whether the given object is deleted.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#isRemovedFromGraph()"><B>isRemovedFromGraph()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Returns if this edge is (still) part of the graph.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#isReservedFieldName(java.lang.String)"><B>isReservedFieldName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Returns true if the given field name is reserved for unmanaged fields.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#isRuntime()"><B>isRuntime()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Return whether we're running the parser at runtime.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#isSeendVariable(java.lang.String)"><B>isSeendVariable(String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#isSeenVariable(java.lang.String)"><B>isSeenVariable(String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Return whether the given id has been used as a variable.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#isSelect(java.lang.String)"><B>isSelect(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Determine whether the provided <code>sql</code> may be treated as a 
 select statement on this database.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#isSelected(org.apache.openjpa.jdbc.schema.Table)"><B>isSelected(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#isSelected(org.apache.openjpa.jdbc.schema.Table)"><B>isSelected(Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return whether the given table is being used in this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#isSelected(org.apache.openjpa.jdbc.schema.Table)"><B>isSelected(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isSerialized()"><B>isSerialized()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#isSerialized()"><B>isSerialized()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Whether this value is serialized when stored.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#isSerialized()"><B>isSerialized()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#isSetter(java.lang.reflect.Method)"><B>isSetter(Method)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return whether the given method is a setter.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#isSingleton()"><B>isSingleton()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>Whether this value is a singleton.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#isSQLEnabled()"><B>isSQLEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>Return true if SQL logging is enabled.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isStoreActive()"><B>isStoreActive()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isStoreActive()"><B>isStoreActive()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isStoreActive()"><B>isStoreActive()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether a data store transaction is active.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isStoreActive()"><B>isStoreActive()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isStoreActive()"><B>isStoreActive()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether a store transaction is active.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#isSystemIndex(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>isSystemIndex(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>This method is used to filter system indexes from database metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#isSystemIndex(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>isSystemIndex(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#isSystemIndex(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>isSystemIndex(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#isSystemIndex(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>isSystemIndex(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#isSystemIndex(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>isSystemIndex(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#isSystemSequence(java.lang.String, java.lang.String, boolean)"><B>isSystemSequence(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>This method is used to filter system sequences from database metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#isSystemSequence(java.lang.String, java.lang.String, boolean)"><B>isSystemSequence(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#isSystemSequence(java.lang.String, java.lang.String, boolean)"><B>isSystemSequence(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#isSystemTable(java.lang.String, java.lang.String, boolean)"><B>isSystemTable(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>This method is used to filter system tables from database metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#isSystemTable(java.lang.String, java.lang.String, boolean)"><B>isSystemTable(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCData.html#isTimedOut()"><B>isTimedOut()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCData.html" title="interface in org.apache.openjpa.datacache">DataCachePCData</A>
<DD>Whether this data is timed out.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#isTimedOut()"><B>isTimedOut()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryResult.html#isTimedOut()"><B>isTimedOut()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A>
<DD>Whether this data is timed out.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#isTo(java.lang.Object)"><B>isTo(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Return true if this edge links to the given node.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Returns if the <A HREF="./org/apache/openjpa/lib/log/Log.html#TRACE"><CODE>Log.TRACE</CODE></A> log level is enabled.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#isTraceEnabled()"><B>isTraceEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isTrackChangesByType()"><B>isTrackChangesByType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isTrackChangesByType()"><B>isTrackChangesByType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isTrackChangesByType()"><B>isTrackChangesByType()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether memory usage is reduced during this transaction at the expense
 of tracking changes at the type level instead of the instance level,
 resulting in more aggressive cache invalidation.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isTrackChangesByType()"><B>isTrackChangesByType()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isTrackChangesByType()"><B>isTrackChangesByType()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether memory usage is reduced during this transaction at the expense
 of tracking changes at the type level instead of the instance level,
 resulting in more aggressive cache invalidation.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#isTracking()"><B>isTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#isTracking()"><B>isTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#isTracking()"><B>isTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#isTracking()"><B>isTracking()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>Return true if this tracker has an up-to-date view of all the changes
 to the container it is managing.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#isTransactional()"><B>isTransactional()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Whether the instance is transactional.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#isTransactional(java.lang.Object)"><B>isTransactional(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#isTransactional(java.lang.Object)"><B>isTransactional(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isTransactional()"><B>isTransactional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isTransactional()"><B>isTransactional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isTransactional()"><B>isTransactional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isTransactional()"><B>isTransactional()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#isTransactional(java.lang.Object)"><B>isTransactional(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Return whether the given object is transactional.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#isTransactional(java.lang.Object)"><B>isTransactional(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#isTransactional(java.lang.Object)"><B>isTransactional(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Return whether the given object is transactional.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#isTransactionModeManaged()"><B>isTransactionModeManaged()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return whether managed transactions are being used.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#isTransactionModeManaged()"><B>isTransactionModeManaged()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isTransient()"><B>isTransient()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return whether this is a transient field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isTypePC()"><B>isTypePC()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#isTypePC()"><B>isTypePC()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Whether the type is a persistence capable instance.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#isTypePC()"><B>isTypePC()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#isUnion()"><B>isUnion()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.html#isUnion()"><B>isUnion()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Union.html" title="interface in org.apache.openjpa.jdbc.sql">Union</A>
<DD>Whether this is a true UNION, rather than a logical combination of
 independent selects.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#isUnique(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>isUnique(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Return whether the given foreign key is unique.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html#isUnique()"><B>isUnique()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema">Index</A>
<DD>Return true if this is a UNIQUE index.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#isUnique()"><B>isUnique()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#isUnique()"><B>isUnique()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>The unique flag.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#isUnique()"><B>isUnique()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#isUnproxyable(java.lang.Class)"><B>isUnproxyable(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return whether the given type is known to be unproxyable.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isUpdatable(int, boolean)"><B>isUpdatable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether the column at the given index is updatable in this context.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#isUpdatable(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>isUpdatable(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Equivalent to <code>isUpdatable (0, nullValue)</code>, but returns
 false if the given column is null.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#isUserDefined(java.lang.Class)"><B>isUserDefined(Class)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Helper method; returns true if the given class appears to be
 user-defined.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#isValid()"><B>isValid()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Whether this row has information set on it.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#isValid()"><B>isValid()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#isValidating()"><B>isValidating()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether this is a validating parser.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isValueGenerated()"><B>isValueGenerated()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#isVariable()"><B>isVariable()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#isVariable()"><B>isVariable()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#isVariable()"><B>isVariable()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Return true if this value is a variable.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#isVerbose()"><B>isVerbose()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Whether this serialization is in verbose mode.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#isVersion()"><B>isVersion()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field holds optimistic version information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Return true if this field can be used as part of a state image for
 optimistic locking.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#isVersionable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>isVersionable(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html#isVersionable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>isVersionable(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ImmutableValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#isVersionable()"><B>isVersionable()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#isVersionable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>isVersionable(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#isVersionable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>isVersionable(ValueMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Return whether the values managed by this handler can be used in
 state image versioning.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isVersionCheckRequired()"><B>isVersionCheckRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isVersionCheckRequired()"><B>isVersionCheckRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isVersionCheckRequired()"><B>isVersionCheckRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isVersionCheckRequired()"><B>isVersionCheckRequired()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Returns true if this state needs to issue a version check at flush time.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isVersionCheckRequired()"><B>isVersionCheckRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Returns whether this instance needs a version check.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#isVersionUpdateRequired()"><B>isVersionUpdateRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#isVersionUpdateRequired()"><B>isVersionUpdateRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#isVersionUpdateRequired()"><B>isVersionUpdateRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#isVersionUpdateRequired()"><B>isVersionUpdateRequired()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Returns true if this state needs to issue a version update, possibly
 as a result of being locked.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#isVersionUpdateRequired()"><B>isVersionUpdateRequired()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Returns whether this instance needs a version update.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#isWaiting(java.lang.Thread)"><B>isWaiting(Thread)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Returns if the <A HREF="./org/apache/openjpa/lib/log/Log.html#WARN"><CODE>Log.WARN</CODE></A> log level is enabled.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#isWarnEnabled()"><B>isWarnEnabled()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#isXML()"><B>isXML()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether this column is an XML type.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#isXmlAttribute()"><B>isXmlAttribute()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#isXmlAttribute()"><B>isXmlAttribute()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#isXmlAttribute()"><B>isXmlAttribute()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return true if mapping on an XmlAttribute.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#isXmlElement()"><B>isXmlElement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#isXmlElement()"><B>isXmlElement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#isXmlElement()"><B>isXmlElement()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return true if mapping on an XmlElement.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#isXmlRootElement()"><B>isXmlRootElement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#isXmlRootElement()"><B>isXmlRootElement()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#isXmlRootElement()"><B>isXmlRootElement()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Return true if mapping on an XmlRootElement.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#isXPath()"><B>isXPath()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#isXPath()"><B>isXPath()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Return true if this value is an XML Path.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#iterator()"><B>iterator()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Return an iterator over the extent members.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Returns an iterator over the elements in this queue in proper sequence.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns an iterator over the elements contained in this set
 in the order in which these elements were added.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html#itr()"><B>itr()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html" title="class in org.apache.openjpa.jdbc.meta.strats">LRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#itr(int)"><B>itr(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>Implement this method and <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html#size()" title="class or interface in java.util"><CODE>List.size()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#itr(int)"><B>itr(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#itr()"><B>itr()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>Implement this method to return an iterator over the contents of the
 collection.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#itr()"><B>itr()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>Implement this method to return an iterator over the entries
 in the map.
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#IV_DUPLICATE_OID"><B>IV_DUPLICATE_OID</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#IV_MIXED"><B>IV_MIXED</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#IV_REFERENCE"><B>IV_REFERENCE</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#IV_UNIQUE"><B>IV_UNIQUE</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#IV_UNKNOWN"><B>IV_UNKNOWN</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_J_"><!-- --></A><H2>
<B>J</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html" title="class in org.apache.openjpa.lib.util"><B>J2DoPriv5Helper</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Helper class to obtain the Privilege(Exception)Action object to perform
 Java 2 doPrivilege security sensitive function call in the following
 methods:
 
 AnnotatedElement.getAnnotations
 AnnotatedElement.getDeclaredAnnotations
 AnnotatedElement.isAnnotationPresent
 <DT><A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html#J2DoPriv5Helper()"><B>J2DoPriv5Helper()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPriv5Helper.html" title="class in org.apache.openjpa.lib.util">J2DoPriv5Helper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util"><B>J2DoPrivHelper</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Helper class to obtain the Privilege(Exception)Action object to perform
 Java 2 doPrivilege security sensitive function call in the following
 methods:
 
 AccessibleObject.setAccessible
 Class.forName
 Class.getClassLoader
 Class.getDeclaredField
 Class.getDeclaredFields
 Class.getDeclaredMethod
 Class.getDeclaredMethods
 Class.getResource
 Class.newInstance
 ClassLoader.getParent
 ClassLoader.getResource
 ClassLoader.getResources
 ClassLoader.getSystemClassLoader
 File.delete
 File.exists
 File.getAbsoluteFile
 File.getAbsolutePath
 File.getCanonicalPath
 File.listFiles
 File.length
 File.isDirectory
 File.mkdirs
 File.renameTo
 File.toURL
 FileInputStream new
 FileOutputStream new
 System.getProperties
 InetAddress.getByName
 MultiClassLoader new
 ServerSocket new
 Socket new
 Socket.accept
 System.getProperty
 Thread.getContextClassLoader
 Thread new
 TemporaryClassLoader new
 URL.openStream
 URLConnection.getContent
 ZipFile new
 serp.bytecode.Code new
 serp.bytecode.BCClassLoader new
 serp.bytecode.BCClass.write
 serp.bytecode.BCClass.getFields
 serp.bytecode.FieldInstruction.getField
 serp.bytecode.Project.loadClass
 
 
 If these methods are used, the following sample usage patterns should be
 followed to ensure proper privilege is granted:
 <xmp>
 1) No security risk method call.<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#J2DoPrivHelper()"><B>J2DoPrivHelper()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#javaObjectTypeName"><B>javaObjectTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta"><B>JavaSQLTypes</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Java SQL type constants.<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#JavaSQLTypes()"><B>JavaSQLTypes()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><B>JavaTypes</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Type constants for managed fields.<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#JavaTypes()"><B>JavaTypes()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util"><B>JavaVersions</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Utilities for dealing with different Java spec versions.<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#JavaVersions()"><B>JavaVersions()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>JDataStoreDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Borland JDataStore<DT><A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html#JDataStoreDictionary()"><B>JDataStoreDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html" title="class in org.apache.openjpa.jdbc.sql">JDataStoreDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>JDBC3SavepointManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD><CODE>SavepointManager</CODE> implementation that uses JDBC 3 savepoints
 to store state.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html#JDBC3SavepointManager()"><B>JDBC3SavepointManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBC3SavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#JDBC_DEFAULT"><B>JDBC_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCAggregateListener.html" title="interface in org.apache.openjpa.jdbc.kernel.exps"><B>JDBCAggregateListener</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>JDBC extension to the <A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>AggregateListener</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel"><B>JDBCBrokerFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>BrokerFactory type for use with the JDBC runtime.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#JDBCBrokerFactory(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>JDBCBrokerFactory(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>Construct the factory with the given option settings; however, the
 factory construction methods are recommended.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf"><B>JDBCConfiguration</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Configuration that defines the properties necessary to configure
 runtime and connect to a JDBC DataSource.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf"><B>JDBCConfigurationImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Default implementation of the <A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf"><CODE>JDBCConfiguration</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#JDBCConfigurationImpl()"><B>JDBCConfigurationImpl()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#JDBCConfigurationImpl(boolean)"><B>JDBCConfigurationImpl(boolean)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#JDBCConfigurationImpl(boolean, boolean)"><B>JDBCConfigurationImpl(boolean, boolean)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#JDBCConfigurationImpl(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>JDBCConfigurationImpl(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>Copy constructor
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc"><B>JDBCEvent</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>A JDBC event.<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html#JDBCEvent(java.sql.Connection, short, org.apache.openjpa.lib.jdbc.JDBCEvent, java.sql.Statement, java.lang.String)"><B>JDBCEvent(Connection, short, JDBCEvent, Statement, String)</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc"><B>JDBCEventConnectionDecorator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Manages the firing of <A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>JDBCEvent</CODE></A>s.<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html#JDBCEventConnectionDecorator()"><B>JDBCEventConnectionDecorator()</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/JDBCEventConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">JDBCEventConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>JDBCExpressionFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Expression factory implementation that can be used to execute queries
 via SQL.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#JDBCExpressionFactory(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>JDBCExpressionFactory(ClassMapping)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>JDBCFetchConfiguration</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>JDBC extensions to OpenJPA's <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel"><B>JDBCFetchConfigurationImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>JDBC extensions to OpenJPA's <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#JDBCFetchConfigurationImpl()"><B>JDBCFetchConfigurationImpl()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc"><B>JDBCFetchPlan</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>JDBC extensions to the fetch plan.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc"><B>JDBCFetchPlanImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>JDBC extensions to the fetch plan.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#JDBCFetchPlanImpl(org.apache.openjpa.kernel.FetchConfiguration)"><B>JDBCFetchPlanImpl(FetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCFilterListener.html" title="interface in org.apache.openjpa.jdbc.kernel.exps"><B>JDBCFilterListener</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>JDBC extension to the <A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>FilterListener</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc"><B>JDBCListener</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>A listener for all <A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>JDBCEvent</CODE></A>s that occur.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#jdbcListenerPlugins"><B>jdbcListenerPlugins</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCLockManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>JDBCLockManager</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Extension of the <A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel"><CODE>LockManager</CODE></A> interface with methods for
 datastore locking during the select and load process.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc"><B>JDBCPersistenceProductDerivation</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Sets JDBC-specific JPA specification defaults.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html#JDBCPersistenceProductDerivation()"><B>JDBCPersistenceProductDerivation()</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCPersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html" title="class in org.apache.openjpa.jdbc.conf"><B>JDBCProductDerivation</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Sets JDBC as default store.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html#JDBCProductDerivation()"><B>JDBCProductDerivation()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html" title="class in org.apache.openjpa.jdbc.conf">JDBCProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCSeq.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>JDBCSeq</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Specialization of the the <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A> interface to provide information
 on the schema needed by this sequence.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCSeqValue.html" title="class in org.apache.openjpa.jdbc.conf"><B>JDBCSeqValue</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Adds additional aliases to base <A HREF="./org/apache/openjpa/conf/SeqValue.html" title="class in org.apache.openjpa.conf"><CODE>SeqValue</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCSeqValue.html#JDBCSeqValue(java.lang.String)"><B>JDBCSeqValue(String)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCSeqValue.html" title="class in org.apache.openjpa.jdbc.conf">JDBCSeqValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>JDBCStore</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Represents the JDBC store.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>JDBCStoreManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>StoreManager plugin that uses JDBC to store persistent data in a
 relational data store.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#JDBCStoreManager()"><B>JDBCStoreManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel"><B>JDBCStoreManager.RefCountConnection</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Connection wrapper that keeps an internal ref count so that it knows
 when to really close.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#JDBCStoreManager.RefCountConnection(java.sql.Connection)"><B>JDBCStoreManager.RefCountConnection(Connection)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel"><B>JDBCStoreQuery</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>JDBC query implementation.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#JDBCStoreQuery(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.kernel.exps.ExpressionParser)"><B>JDBCStoreQuery(JDBCStore, ExpressionParser)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCStringContains.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>JDBCStringContains</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD><B>Deprecated.</B>&nbsp;<I>Use <code>matches()</code> instead.</I><DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCStringContains.html#JDBCStringContains()"><B>JDBCStringContains()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCStringContains.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCStringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>JDBCWildcardMatch</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD><B>Deprecated.</B>&nbsp;<I>Use <code>matches()</code> instead.</I><DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html#JDBCWildcardMatch()"><B>JDBCWildcardMatch()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCWildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtAddChild(org.apache.openjpa.kernel.jpql.Node, int)"><B>jjtAddChild(Node, int)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtClose()"><B>jjtClose()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtGetChild(int)"><B>jjtGetChild(int)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtGetNumChildren()"><B>jjtGetNumChildren()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtGetParent()"><B>jjtGetParent()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtOpen()"><B>jjtOpen()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#jjtSetParent(org.apache.openjpa.kernel.jpql.Node)"><B>jjtSetParent(Node)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event"><B>JMSRemoteCommitProvider</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>JMS-based implementation of <A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitProvider</CODE></A> that
 listens for object modifications and propagates those changes to
 other RemoteCommitProviders over a JMS topic.<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#JMSRemoteCommitProvider()"><B>JMSRemoteCommitProvider()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>JNDIManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>Implementation of the <A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> interface that uses JNDI to
 find the TransactionManager.<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html#JNDIManagedRuntime()"><B>JNDIManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee">JNDIManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#join(org.apache.openjpa.jdbc.sql.Select)"><B>join(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Return any joins needed to get from the primary table to this table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>join(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Joins from the owning class' table to the table where this field lies
 using the join foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Join this value to the class table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>join(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>join(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>join(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>join(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>join(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Join to the owning field table for the given element mapping from
 <A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>ContainerFieldStrategy.getIndependentElementMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#join(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>join(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#join(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.schema.Column)"><B>join(Column, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Join a local column to a primary key column of another table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql"><B>Join</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Represents a SQL join.<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#join(org.apache.openjpa.jdbc.schema.ForeignKey, boolean, boolean)"><B>join(ForeignKey, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Join the columns of the given foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#join(org.apache.openjpa.jdbc.schema.ForeignKey, boolean, boolean)"><B>join(ForeignKey, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#join(org.apache.openjpa.jdbc.schema.ForeignKey, boolean, boolean)"><B>join(ForeignKey, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#JOIN_EXPECTED_INVERSE"><B>JOIN_EXPECTED_INVERSE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Inverse join that is marked up as a forward join because the
 backing mapping expects an inverse direction.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#JOIN_FORWARD"><B>JOIN_FORWARD</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#JOIN_FORWARD"><B>JOIN_FORWARD</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Standard forward join.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#JOIN_INVERSE"><B>JOIN_INVERSE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#JOIN_INVERSE"><B>JOIN_INVERSE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Inverse join.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#JOIN_NONE"><B>JOIN_NONE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#JOIN_REL"><B>JOIN_REL</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Initialization flag indicating to join into any relation path.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta"><B>Joinable</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Represents a value that can be joined to.<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#joinConstant(java.lang.Object, org.apache.openjpa.jdbc.schema.Column)"><B>joinConstant(Object, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Join a constant value to a primary key column of another table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#joinConstant(org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>joinConstant(Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Join a constant value to a local column of this table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#joinCount()"><B>joinCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#joinCount()"><B>joinCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#joinElementRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinElementRelation(Joins, ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>Join this value's table to the table for the given element mapping
 from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>LRSCollectionFieldStrategy.getIndependentElementMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#joinElementRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinElementRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#joinElementRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinElementRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#joinElementRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinElementRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#joinElementRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinElementRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#joinElementRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinElementRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Join this value's table to the table for the given element mapping
 from <A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>ContainerFieldStrategy.getIndependentElementMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#joinKey(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinKey(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#joinKey(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinKey(Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Join the key value to the class table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#joinKey(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinKey(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#joinKey(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinKey(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#joinKey(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinKey(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#joinKey(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinKey(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinKeyRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinKeyRelation(Joins, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Join this value's table to the table for the related first class object
 key type, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinKeyRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinKeyRelation(Joins, ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Join this value's table to the table for the given key mapping
 from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentKeyMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentKeyMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinKeyRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>Invokes <A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><CODE>FieldStrategy.joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)</CODE></A> by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinKeyRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#joinKeyRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinKeyRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinRelation(Joins, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Join this value's table to the table for the related first class object
 type, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>joinRelation(Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#joinRelation(java.lang.String, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping, int, boolean, boolean)"><B>joinRelation(String, ForeignKey, ClassMapping, int, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Join the columns of the given foreign key, which represents a relation
 via the given field name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#joinRelation(java.lang.String, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping, int, boolean, boolean)"><B>joinRelation(String, ForeignKey, ClassMapping, int, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#joinRelation(java.lang.String, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping, int, boolean, boolean)"><B>joinRelation(String, ForeignKey, ClassMapping, int, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html#joins"><B>joins</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql"><B>Joins</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Tracks joins made when traversing relations in a select.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#joins()"><B>joins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#joins()"><B>joins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#joinSuperclass(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinSuperclass(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#joinSuperclass(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinSuperclass(Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Join the mapping and its superclass.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#joinSuperclass(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinSuperclass(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#joinSuperclass(org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>joinSuperclass(Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#joinSyntax"><B>joinSyntax</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JoinSyntax.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>JoinSyntax</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Type of join syntax to use.<DT><A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html" title="interface in org.apache.openjpa.jdbc.sql"><B>JoinSyntaxes</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Constants for ways of describing joins in SQL.<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#joinTransaction()"><B>joinTransaction()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#joinValueRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinValueRelation(Joins, ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Join this value's table to the table for the given value mapping
 from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#getIndependentValueMappings(boolean)"><CODE>LRSMapFieldStrategy.getIndependentValueMappings(boolean)</CODE></A> (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#joinValueRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinValueRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>Invokes <A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><CODE>FieldStrategy.joinRelation(org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)</CODE></A> by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#joinValueRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinValueRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#joinValueRelation(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>joinValueRelation(Joins, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence"><B>JPAFacadeHelper</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Helper class for switching between OpenJPA's JPA facade and the underlying
 Broker kernel.<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#JPAFacadeHelper()"><B>JPAFacadeHelper()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql"><B>JPQLExpressionBuilder</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html">org.apache.openjpa.kernel.jpql</A><DD>Builder for JPQL expressions.<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#JPQLExpressionBuilder(org.apache.openjpa.kernel.exps.ExpressionFactory, org.apache.openjpa.kernel.ExpressionStoreQuery, java.lang.Object)"><B>JPQLExpressionBuilder(ExpressionFactory, ExpressionStoreQuery, Object)</B></A> - 
Constructor for class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql"><B>JPQLExpressionBuilder.JPQLNode</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html">org.apache.openjpa.kernel.jpql</A><DD>Base node that will be generated by the JPQLExpressionBuilder; base
 class of the <A HREF="./org/apache/openjpa/kernel/jpql/SimpleNode.html" title="class in org.apache.openjpa.kernel.jpql"><CODE>SimpleNode</CODE></A> that is used by <A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html" title="class in org.apache.openjpa.kernel.jpql"><CODE>JPQLExpressionBuilder.ParsedJPQL</CODE></A>.<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#JPQLExpressionBuilder.JPQLNode(org.apache.openjpa.kernel.jpql.JPQL, int)"><B>JPQLExpressionBuilder.JPQLNode(JPQL, int)</B></A> - 
Constructor for class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html" title="class in org.apache.openjpa.kernel.jpql"><B>JPQLExpressionBuilder.ParsedJPQL</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html">org.apache.openjpa.kernel.jpql</A><DD>Public for unit testing purposes.<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql"><B>JPQLParser</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html">org.apache.openjpa.kernel.jpql</A><DD>Parser for JPQL queries.<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#JPQLParser()"><B>JPQLParser()</B></A> - 
Constructor for class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_K_"><!-- --></A><H2>
<B>K</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html#KEY"><B>KEY</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html" title="class in org.apache.openjpa.conf">BrokerFactoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/BrokerValue.html#KEY"><B>KEY</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerValue.html" title="class in org.apache.openjpa.conf">BrokerValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html#KEY"><B>KEY</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryValue</A>
<DD>Configuration property key.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#KEY_PROVIDER"><B>KEY_PROVIDER</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/KeyDependent.html" title="annotation in org.apache.openjpa.persistence"><B>KeyDependent</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Dependent map key marker.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#keyExpired(java.lang.Object)"><B>keyExpired(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#keyExpired(java.lang.Object)"><B>keyExpired(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html#keyExpired(java.lang.Object)"><B>keyExpired(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util">ReferenceMap</A>
<DD>Overridable callback for when a key reference expires.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#keyRemoved(java.lang.Object, boolean)"><B>keyRemoved(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Invoke when a key is removed from this cache.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#keys(java.lang.Object)"><B>keys(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>Return all keys for the given value.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Return a threadsafe view of the keys in this cache.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns a set view of the keys contained in this map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns a Set view of the keys contained in this HashMap.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#keySet(org.apache.openjpa.util.ProxyMap)"><B>keySet(ProxyMap)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Override for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#keySet()" title="class or interface in java.util"><CODE>Map.keySet()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/KeyType.html" title="annotation in org.apache.openjpa.persistence"><B>KeyType</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Indicates the persistent key type of a map field, if different than the
 declared type.</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#LANG_JPQL"><B>LANG_JPQL</B></A> - 
Static variable in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryLanguages.html#LANG_METHODQL"><B>LANG_METHODQL</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryLanguages.html" title="class in org.apache.openjpa.kernel">QueryLanguages</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryLanguages.html#LANG_SQL"><B>LANG_SQL</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryLanguages.html" title="class in org.apache.openjpa.kernel">QueryLanguages</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#LANGUAGE"><B>LANGUAGE</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Path.html#last()"><B>last()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Path.html" title="interface in org.apache.openjpa.kernel.exps">Path</A>
<DD>Return the last field in the path, or null if the path does not
 not contain a final field.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#last()"><B>last()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#lastGeneratedKeyQuery"><B>lastGeneratedKeyQuery</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#lastIndexOf(java.lang.Object, int)"><B>lastIndexOf(Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop"><B>LazyForwardResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Lazy forward-only result list.<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#LazyForwardResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>LazyForwardResultList(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema"><B>LazySchemaFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Factory that uses database metadata to construct the system schema.<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#LazySchemaFactory()"><B>LazySchemaFactory()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#length(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>length(Select, ExpContext, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#length()"><B>length()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Return the number of SQL elements in this value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#length(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>length(Select, ExpContext, ExpState)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Return the number of SQL elements in this value.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#length()"><B>length()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return the length of the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#lengthAction(java.io.File)"><B>lengthAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.length().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#lessThan(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>lessThan(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#lessThan(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>lessThan(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#lessThan(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>lessThan(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#lessThanEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>lessThanEqual(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#lessThanEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>lessThanEqual(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#lessThanEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>lessThanEqual(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#LEVEL_CLASS"><B>LEVEL_CLASS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#LEVEL_NONE"><B>LEVEL_NONE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#LEVEL_PACKAGE"><B>LEVEL_PACKAGE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleCallbacks.html" title="interface in org.apache.openjpa.event"><B>LifecycleCallbacks</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>A lifecycle listener that responds to callbacks rather than events.<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event"><B>LifecycleEvent</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Lifecycle event on a persistent instance.<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#LifecycleEvent(java.lang.Object, int)"><B>LifecycleEvent(Object, int)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEvent.html#LifecycleEvent(java.lang.Object, java.lang.Object, int)"><B>LifecycleEvent(Object, Object, int)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event">LifecycleEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event"><B>LifecycleEventManager</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Manager that can be used to track and notify listeners on lifecycle events.<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#LifecycleEventManager(org.apache.openjpa.lib.log.Log)"><B>LifecycleEventManager(Log)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerAdapter.html" title="interface in org.apache.openjpa.event"><B>LifecycleEventManager.ListenerAdapter</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Interface that facades to other lifecycle listener interfaces can
 implement to choose which events to respond to based on their delegate.<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html" title="class in org.apache.openjpa.event"><B>LifecycleEventManager.ListenerList</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Extended list that tracks what event types its elements care about.<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html#LifecycleEventManager.ListenerList(int)"><B>LifecycleEventManager.ListenerList(int)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html" title="class in org.apache.openjpa.event">LifecycleEventManager.ListenerList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html#LifecycleEventManager.ListenerList(org.apache.openjpa.event.LifecycleEventManager.ListenerList)"><B>LifecycleEventManager.ListenerList(LifecycleEventManager.ListenerList)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html" title="class in org.apache.openjpa.event">LifecycleEventManager.ListenerList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleListener.html" title="interface in org.apache.openjpa.event"><B>LifecycleListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Interface for listening to all <A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event"><CODE>LifecycleEvent</CODE></A>s.<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta"><B>LifecycleMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Information about lifecycle events for a managed type.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#list()"><B>list()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#list()"><B>list()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Returns a list of all objects represented by this extent.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#list()"><B>list()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#list()"><B>list()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>List the extent contents.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#list()"><B>list()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#listFilesAction(java.io.File)"><B>listFilesAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.listFiles().
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#listIterator()"><B>listIterator()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#listIterator(int)"><B>listIterator(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#listIterator()"><B>listIterator()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#listIterator(int)"><B>listIterator(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#listIterator()"><B>listIterator()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#listIterator(int)"><B>listIterator(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#listIterator()"><B>listIterator()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#listIterator(int)"><B>listIterator(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#listIterator()"><B>listIterator()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#listIterator(int)"><B>listIterator(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#listIterator()"><B>listIterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#listIterator(int)"><B>listIterator(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop"><B>ListResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>A basic <A HREF="./org/apache/openjpa/lib/rop/ResultList.html" title="interface in org.apache.openjpa.lib.rop"><CODE>ResultList</CODE></A> implementation that wraps a normal list.<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#ListResultList(java.util.List)"><B>ListResultList(List)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop"><B>ListResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>A result object provider wrapped around a normal list.<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#ListResultObjectProvider(java.util.List)"><B>ListResultObjectProvider(List)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>Lit</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>A literal value in a filter.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#Lit(java.lang.Object, int)"><B>Lit(Object, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps"><B>Literal</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Interface for any literal value.<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, int, Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>This method is invoked when OpenJPA needs to load additional data
 into an object that has already been at least partially loaded by
 a previous <A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><CODE>AbstractStoreManager.initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)</CODE></A> invocation.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, int, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#load(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.Result)"><B>load(ExpContext, ExpState, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#load(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.Result)"><B>load(ExpContext, ExpState, Result)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Load the data for this value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, int, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.util.BitSet, org.apache.openjpa.jdbc.sql.Result)"><B>load(ClassMapping, JDBCFetchConfiguration, BitSet, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>Load the object in the current row of the given result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Load virtual row data; the given result is not guaranteed to contain
 data for this field, so the field mapping should make sure the
 result contains its needed column data before loading.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Load secondary data using a connection from the store manager.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#load(java.lang.Class, int, java.lang.ClassLoader)"><B>load(Class, int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#load(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>load(Column, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#load(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>load(Column, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Result)"><B>load(OpenJPAStateManager, JDBCStore, Result)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>Load data.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Load a pc object using the given store manager.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Load a pc object using the given store manager.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#load(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>load(ClassMapping, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.FetchConfiguration)"><B>load(OpenJPAStateManager, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Load data from the current input record into the given state
 manager.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#load(org.apache.openjpa.kernel.FetchConfiguration)"><B>load(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#load(org.apache.openjpa.kernel.FetchConfiguration)"><B>load(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#load(org.apache.openjpa.kernel.FetchConfiguration)"><B>load(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#load(org.apache.openjpa.kernel.FetchConfiguration)"><B>load(FetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Load fetch group fields.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>load(OpenJPAStateManager, FetchConfiguration, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Loads all fields that are currently stored in the cache
 into the given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Loads some or all of the marked fields from the cache into the
 given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>load(OpenJPAStateManager, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#load(org.apache.openjpa.kernel.FetchConfiguration)"><B>load(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#load(org.apache.openjpa.kernel.FetchConfiguration, int, java.util.BitSet, java.lang.Object, boolean)"><B>load(FetchConfiguration, int, BitSet, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Load the state of this instance based on the given fetch configuration
 and load mode.
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Load the given state manager.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#load(java.lang.String, java.lang.String, java.lang.ClassLoader)"><B>load(String, String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#load(java.io.File, java.lang.String)"><B>load(File, String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#load(java.lang.String, java.lang.String, java.lang.ClassLoader)"><B>load(String, String, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Load the given given resource into the returned ConfigurationProvider, 
 or return null if it is not a resource this receiver understands.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#load(java.io.File, java.lang.String)"><B>load(File, String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Load given file, or return null if it is not a file this receiver
 understands.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#load(java.lang.String, java.lang.String, java.lang.ClassLoader)"><B>load(String, String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Load the given given resource, or return false if it is not a resource
 this provider understands.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#load(java.io.File, java.lang.String, java.lang.ClassLoader)"><B>load(File, String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Load given file, or return false if it is not a file this provider
 understands.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#load(java.io.InputStream)"><B>load(InputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>Loads the properties in <code>in</code>, according to the rules
 described in <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#load(java.io.InputStream)" title="class or interface in java.util"><CODE>Properties.load(java.io.InputStream)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#load(java.lang.Class, int, java.lang.ClassLoader)"><B>load(Class, int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#load(java.lang.Class, int, java.lang.ClassLoader)"><B>load(Class, int, ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Load metadata for the given class in the given mode(s).
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#load(java.lang.Class, int, java.lang.ClassLoader)"><B>load(Class, int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#load(java.lang.Class, int, java.lang.ClassLoader)"><B>load(Class, int, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#load(javax.persistence.spi.PersistenceUnitInfo, java.util.Map)"><B>load(PersistenceUnitInfo, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>Load configuration from the given persistence unit with the specified
 user properties.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#load(java.lang.String, java.lang.String, java.util.Map)"><B>load(String, String, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>Load configuration from the given resource and unit names, which may
 be null.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#load(java.lang.String, java.lang.String, java.lang.ClassLoader)"><B>load(String, String, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#load(java.io.File, java.lang.String)"><B>load(File, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.FetchConfiguration)"><B>load(OpenJPAStateManager, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Load the data and version information for this object into the
 given state manager.
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Load the data and version information for this object into the
 given state manager.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html#load(org.apache.openjpa.meta.ClassMetaData)"><B>load(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html" title="class in org.apache.openjpa.xmlstore">XMLFileHandler</A>
<DD>Loads all instances of <code>meta</code> into a list of objects.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><B>load(OpenJPAStateManager, BitSet, FetchConfiguration, int, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#LOAD_ALL"><B>LOAD_ALL</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#LOAD_FGS"><B>LOAD_FGS</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#LOAD_REQUIRED"><B>LOAD_REQUIRED</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#LOAD_SERIALIZE"><B>LOAD_SERIALIZE</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadAll(Collection, PCState, int, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>This implementation just delegates to the proper singular
 method (<A HREF="./org/apache/openjpa/kernel/StoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><CODE>StoreManager.initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)</CODE></A> or <A HREF="./org/apache/openjpa/kernel/StoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><CODE>StoreManager.load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)</CODE></A>)
 depending on each state manager's state.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadAll(Collection, PCState, int, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadAll(Collection, PCState, int, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadAll(Collection, PCState, int, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadAll(Collection, PCState, int, FetchConfiguration, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Initialize, load, or validate the existance of all of the given
 objects.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.StoreManager, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadAll(Collection, StoreManager, PCState, int, FetchConfiguration, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>Helper for store manager implementations.
<DT><A HREF="./org/apache/openjpa/util/GeneratedClasses.html#loadBCClass(serp.bytecode.BCClass, java.lang.ClassLoader)"><B>loadBCClass(BCClass, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/GeneratedClasses.html" title="class in org.apache.openjpa.util">GeneratedClasses</A>
<DD>Load the class represented by the given bytecode.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#loadBuildTimeProxy(java.lang.Class, java.lang.ClassLoader)"><B>loadBuildTimeProxy(Class, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Load the proxy class generated at build time for the given type,
 returning null if none exists.
<DT><A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html#loadClass(java.lang.String)"><B>loadClass(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html" title="class in org.apache.openjpa.lib.util">TemporaryClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html#loadClass(java.lang.String, boolean)"><B>loadClass(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html" title="class in org.apache.openjpa.lib.util">TemporaryClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#loadDataStore(org.apache.openjpa.jdbc.meta.ValueMapping, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.schema.Column[])"><B>loadDataStore(ValueMapping, Result, Joins, Column[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Load the datastore value from the given result.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#loadDefaults(java.lang.ClassLoader)"><B>loadDefaults(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#loadDefaults(java.lang.ClassLoader)"><B>loadDefaults(ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Load defaults into the returned ConfigurationProvider, or return null if 
 no defaults are found.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#loadDefaults(java.lang.ClassLoader)"><B>loadDefaults(ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Return a <A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf"><CODE>ConfigurationProvider</CODE></A> that has parsed system defaults.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#loadDefaults(java.lang.ClassLoader)"><B>loadDefaults(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#loadEagerJoin(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>loadEagerJoin(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#loadEagerJoin(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>loadEagerJoin(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Load the joined eager result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#loadEagerJoin(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>loadEagerJoin(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#loadEagerJoin(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>loadEagerJoin(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#loadEagerJoin(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result)"><B>loadEagerJoin(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#loadEagerParallel(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEagerParallel(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#loadEagerParallel(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEagerParallel(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Load the batched eager result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#loadEagerParallel(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEagerParallel(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#loadEagerParallel(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEagerParallel(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#loadEagerParallel(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEagerParallel(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCLockManager.html#loadedForUpdate(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>loadedForUpdate(OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCLockManager.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCLockManager</A>
<DD>Notification that the given instance was loaded via a result set
 produced by a FOR UPDATE select.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html#loadedForUpdate(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>loadedForUpdate(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel">PessimisticLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#loadElement(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadElement(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>Load an element of the collection.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#loadElement(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadElement(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#loadElement(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadElement(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#loadElement(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadElement(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#loadElement(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadElement(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#loadElement(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadElement(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Load an element of the collection.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#loadEmbedded(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEmbedded(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>Load this strategy's field by transforming the given datastore value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#loadEmbedded(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEmbedded(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#loadEmbedded(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEmbedded(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#loadEmbedded(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEmbedded(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#loadEmbedded(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.lang.Object)"><B>loadEmbedded(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#loadFactor()"><B>loadFactor()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns the load factor for this map.
<DT><A HREF="./org/apache/openjpa/persistence/LoadFetchGroup.html" title="annotation in org.apache.openjpa.persistence"><B>LoadFetchGroup</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Fetch group loaded when the annotated field/property is loaded.<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#loadField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>loadField(OpenJPAStateManager, FieldMetaData, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Set field-level information into the given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#loadField(int, int, boolean, boolean)"><B>loadField(int, int, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Load the given field's fetch group; the field itself may already be
 loaded if it is being set by the user.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#loadGlobals(java.lang.ClassLoader)"><B>loadGlobals(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#loadGlobals()"><B>loadGlobals()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Automatically load global values from the system's
 <A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf"><CODE>ProductDerivation</CODE></A>s, and from System properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#loadGlobals(java.lang.ClassLoader)"><B>loadGlobals(ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Load globals into the returned ConfigurationProvider, or return null if 
 no globals are found.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#loadGlobals(java.lang.ClassLoader)"><B>loadGlobals(ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Return a <A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf"><CODE>ConfigurationProvider</CODE></A> that has parsed system globals.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#loadGlobals(java.lang.ClassLoader)"><B>loadGlobals(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#loadImplData(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>loadImplData(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Set impl data information into the given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#loadImplData(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData)"><B>loadImplData(OpenJPAStateManager, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Set field-level impl data into the given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#loadIntermediate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData)"><B>loadIntermediate(OpenJPAStateManager, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Set intermediate information for the given field into the state manager.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#loadKey(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKey(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Load a key from the given result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#loadKey(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKey(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#loadKey(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKey(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#loadKeyProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKeyProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#loadKeyProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKeyProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Load this field's key value using the given result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#loadKeyProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKeyProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#loadKeyProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadKeyProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LoadListener.html" title="interface in org.apache.openjpa.event"><B>LoadListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when state is loaded into a persistent instnace.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#loadObject(org.apache.openjpa.jdbc.meta.ValueMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>loadObject(ValueMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins, Column[], boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Load the Object value from the given result.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#loadPersistentTypes(boolean, java.lang.ClassLoader)"><B>loadPersistentTypes(boolean, ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Load the persistent classes named in configuration.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#loadProjectClassAction(serp.bytecode.Project, java.lang.Class)"><B>loadProjectClassAction(Project, Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for Project.loadClass().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#loadProjectClassAction(serp.bytecode.Project, java.lang.String)"><B>loadProjectClassAction(Project, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for Project.loadClass().
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Load this field value using the given result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#loadProjection(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadProjection(JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#loadSubclasses(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>loadSubclasses(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Makes sure all subclasses of the given type are loaded in the JVM.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#loadSubclasses(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>loadSubclasses(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>Makes sure all subclasses of the given type are loaded in the JVM.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#loadSubclasses(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>loadSubclasses(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html#loadSubclasses(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>loadSubclasses(JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">DiscriminatorStrategy</A>
<DD>Load all subclasses of the owning class mapping into the JVM.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#loadSubclasses(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>loadSubclasses(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>By default, logs a warning that this discriminator cannot calculate
 its list of subclasses on its own.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html#loadSubclasses(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>loadSubclasses(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClassNameDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClassNameDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html#loadSubclasses(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>loadSubclasses(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#loadValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadValue(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Load a value from the given result.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#loadValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadValue(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#loadValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Result, org.apache.openjpa.jdbc.sql.Joins)"><B>loadValue(OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Result, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#loadVersion(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>loadVersion(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Set version information into the given state manager.
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#loadXMLMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>loadXMLMetaData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#loadXMLMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>loadXMLMetaData(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Load XMLClassMetadata for the given class.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#loadXMLMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>loadXMLMetaData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#loadXMLMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>loadXMLMetaData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema"><B>LocalConstraint</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Constraint over local table columns, as opposed to a foreign key which
 spans tables.<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#LocalConstraint()"><B>LocalConstraint()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#LocalConstraint(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>LocalConstraint(String, Table)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#LOCALE"><B>LOCALE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util"><B>Localizer</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>The Localizer provides convenient access to localized
 strings.<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html" title="class in org.apache.openjpa.lib.util"><B>Localizer.Message</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A <code>Message</code> can provide a localized message via the 
 <A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html#getMessage()"><CODE>Localizer.Message.getMessage()</CODE></A> method call, and can also provide the original key,
 package, and substitution array that were used to assemble the message.<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml"><B>Location</B></A> - Class in <A HREF="./org/apache/openjpa/lib/xml/package-summary.html">org.apache.openjpa.lib.xml</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#Location()"><B>Location()</B></A> - 
Constructor for class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#Location(boolean)"><B>Location(boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#locatorsUpdateCopy()"><B>locatorsUpdateCopy()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#lock(java.lang.Object, int, int, org.apache.openjpa.kernel.OpCallbacks)"><B>lock(Object, int, int, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Ensure that the given instance is locked at the given lock level.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#lock(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>lock(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Ensure that the given instance is locked at the current lock level, as
 set in the <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A> for the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#lock()"><B>lock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Synchronizes on an internal lock.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#lock(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>lock(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#lock(java.lang.Object, int, int, org.apache.openjpa.kernel.OpCallbacks)"><B>lock(Object, int, int, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#lock(java.lang.Object, int, int, org.apache.openjpa.kernel.OpCallbacks)"><B>lock(Object, int, int, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#lock(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>lock(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#lock()"><B>lock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Synchronizes on an internal lock.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#lock()"><B>lock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Synchronize on internal lock if multithreaded is true.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#lock(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><B>lock(OpenJPAStateManager, int, int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Obtain a lock on the specified object.
<DT><A HREF="./org/apache/openjpa/kernel/NoneLockManager.html#lock(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><B>lock(OpenJPAStateManager, int, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/NoneLockManager.html" title="class in org.apache.openjpa.kernel">NoneLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#lock()"><B>lock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Synchronize on the query's internal lock.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Lock the state manager if the multithreaded option is set.
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#lock()"><B>lock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Synchronizes on an internal lock if the
 <code>Multithreaded</code> flag is set to true.
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#lock(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><B>lock(OpenJPAStateManager, int, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Delegates to <A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#lockInternal(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><CODE>VersionLockManager.lockInternal(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)</CODE></A> after traversing to owning
 instance (if embedded) and assuring that the instance is persistent,
 is not new, and is not already locked at a higher level.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent"><B>Lock</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD><tt>Lock</tt> implementations provide more extensive locking
 operations than can be obtained using <tt>synchronized</tt> methods
 and statements.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html#lock()"><B>lock()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent">Lock</A>
<DD>Acquires the lock.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#lock()"><B>lock()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Acquires the lock.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lock(java.lang.Object, javax.persistence.LockModeType)"><B>lock(Object, LockModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lock(java.lang.Object)"><B>lock(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lock(java.lang.Object, javax.persistence.LockModeType, int)"><B>lock(Object, LockModeType, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#lock(java.lang.Object, javax.persistence.LockModeType, int)"><B>lock(Object, LockModeType, int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Ensure that the given instance is locked at the given lock level.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#lock(java.lang.Object)"><B>lock(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Ensure that the given instance is locked at the current lock level, as
 set in the <A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence"><CODE>FetchPlan</CODE></A> for the entity manager.
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#LOCK"><B>LOCK</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html#LOCK_DATASTORE_ONLY"><B>LOCK_DATASTORE_ONLY</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel">PessimisticLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockLevels.html#LOCK_NONE"><B>LOCK_NONE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockLevels.html" title="interface in org.apache.openjpa.kernel">LockLevels</A>
<DD>No lock.
<DT><A HREF="./org/apache/openjpa/kernel/LockLevels.html#LOCK_READ"><B>LOCK_READ</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockLevels.html" title="interface in org.apache.openjpa.kernel">LockLevels</A>
<DD>Generic read lock level.
<DT><A HREF="./org/apache/openjpa/kernel/LockLevels.html#LOCK_WRITE"><B>LOCK_WRITE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockLevels.html" title="interface in org.apache.openjpa.kernel">LockLevels</A>
<DD>Generic write lock level.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#lockAll(java.util.Collection, int, int, java.lang.Object)"><B>lockAll(Collection, int, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>Delegates to <A HREF="./org/apache/openjpa/kernel/LockManager.html#lock(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><CODE>LockManager.lock(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)</CODE></A> with each element of the collection
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#lockAll(java.util.Collection, int, int, org.apache.openjpa.kernel.OpCallbacks)"><B>lockAll(Collection, int, int, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Ensure that the given instances are locked at the given lock level.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#lockAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>lockAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Ensure that the given instances are locked at the current lock level, as
 set in the <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A> for the broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#lockAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>lockAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#lockAll(java.util.Collection, int, int, org.apache.openjpa.kernel.OpCallbacks)"><B>lockAll(Collection, int, int, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#lockAll(java.util.Collection, int, int, org.apache.openjpa.kernel.OpCallbacks)"><B>lockAll(Collection, int, int, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#lockAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>lockAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#lockAll(java.util.Collection, int, int, java.lang.Object)"><B>lockAll(Collection, int, int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Obtain locks on the specified objects.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lockAll(java.util.Collection)"><B>lockAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lockAll(java.util.Collection, javax.persistence.LockModeType, int)"><B>lockAll(Collection, LockModeType, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lockAll(java.lang.Object...)"><B>lockAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#lockAll(java.lang.Object[], javax.persistence.LockModeType, int)"><B>lockAll(Object[], LockModeType, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#lockAll(java.util.Collection, javax.persistence.LockModeType, int)"><B>lockAll(Collection, LockModeType, int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Ensure that the given instances are locked at the given lock level.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#lockAll(java.util.Collection)"><B>lockAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Ensure that the given instances are locked at the current lock level,
 as set in the <A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence"><CODE>FetchPlan</CODE></A> for the entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#lockAll(java.lang.Object[], javax.persistence.LockModeType, int)"><B>lockAll(Object[], LockModeType, int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Ensure that the given instances are locked at the given lock level.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#lockAll(java.lang.Object...)"><B>lockAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Ensure that the given instances are locked at the current lock level,
 as set in the <A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence"><CODE>FetchPlan</CODE></A> for the entity manager.
<DT><A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util"><B>LockException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception indicating that locks on one or more objects could not be acquired.<DT><A HREF="./org/apache/openjpa/util/LockException.html#LockException(java.lang.Object)"><B>LockException(Object)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util">LockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LockException.html#LockException(java.lang.Object, int)"><B>LockException(Object, int)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util">LockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html#lockInternal(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><B>lockInternal(OpenJPAStateManager, int, int, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel">PessimisticLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#lockInternal(org.apache.openjpa.kernel.OpenJPAStateManager, int, int, java.lang.Object)"><B>lockInternal(OpenJPAStateManager, int, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Marks the instance's transactional status in accordance with
 the settings of <A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#getVersionCheckOnReadLock()"><CODE>VersionLockManager.getVersionCheckOnReadLock()</CODE></A>
 and <A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#getVersionUpdateOnWriteLock()"><CODE>VersionLockManager.getVersionUpdateOnWriteLock()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html#lockInterruptibly()"><B>lockInterruptibly()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent">Lock</A>
<DD>Acquires the lock unless the current thread is
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#interrupt()" title="class or interface in java.lang"><CODE>interrupted</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#lockInterruptibly()"><B>lockInterruptibly()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Acquires the lock unless the current thread is
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#interrupt()" title="class or interface in java.lang"><CODE>interrupted</CODE></A>.
<DT><A HREF="./org/apache/openjpa/kernel/LockLevels.html" title="interface in org.apache.openjpa.kernel"><B>LockLevels</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Standard object lock levels.<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel"><B>LockManager</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Handles obtaining and releasing locks on objects.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#lockManagerPlugin"><B>lockManagerPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#lockModeEnabled"><B>lockModeEnabled</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>If true, then we will issue a "SET LOCK MODE TO WAIT N"
 statement whenever we create a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A>, in order
 allow waiting on locks.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#lockTimeout"><B>lockTimeout</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#lockTimeout"><B>lockTimeout</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#lockWaitSeconds"><B>lockWaitSeconds</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>If <A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#lockModeEnabled"><CODE>InformixDictionary.lockModeEnabled</CODE></A> is <code>true</code>, then this
 parameter specifies the number of seconds we will wait to
 obtain a lock for inserts and pessimistic locking.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#log"><B>log</B></A> - 
Variable in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>The log to use.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#log"><B>log</B></A> - 
Variable in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>The log to use.
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#log"><B>log</B></A> - 
Variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#log"><B>log</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#log"><B>log</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>Runtime log to write locking messages to.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#log(short, java.lang.String, java.lang.Throwable)"><B>log(short, String, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>Send the specified log message to the handler.
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log"><B>Log</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Logging interface that is independent of other logging frameworks.<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#log(short, java.lang.String, java.lang.Throwable)"><B>log(short, String, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#log"><B>log</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.html" title="class in org.apache.openjpa.lib.log"><B>Log4JLogFactory</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD><A HREF="./org/apache/openjpa/lib/log/LogFactory.html" title="interface in org.apache.openjpa.lib.log"><CODE>LogFactory</CODE></A> implementation that delegates to the Log4J framework.<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.html#Log4JLogFactory()"><B>Log4JLogFactory()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log"><B>Log4JLogFactory.LogAdapter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Adapts a Log4J logger to the <A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log"><CODE>Log</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#LOG_DATACACHE"><B>LOG_DATACACHE</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Name of logger for messages from the data cache:
 <code>openjpa.DataCache</code>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#LOG_ENHANCE"><B>LOG_ENHANCE</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Name of logger for enhancement-related messages:
 <code>openjpa.Enhance</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#LOG_JDBC"><B>LOG_JDBC</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Name of the logger for JDBC-related messages:
 <code>openjpa.jdbc.JDBC</code>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#LOG_METADATA"><B>LOG_METADATA</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Name of logger for metadata-related messages:
 <code>openjpa.MetaData</code>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#LOG_QUERY"><B>LOG_QUERY</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Name of logger for query logging:
 <code>openjpa.Query</code>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#LOG_RUNTIME"><B>LOG_RUNTIME</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Name of logger for messages from the runtime system:
 <code>openjpa.Runtime</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#LOG_SCHEMA"><B>LOG_SCHEMA</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Name of the logger for schema-related messages:
 <code>openjpa.jdbc.Schema</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#LOG_SQL"><B>LOG_SQL</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Name of the logger for SQL execution messages:
 <code>openjpa.jdbc.SQL</code>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#LOG_TOOL"><B>LOG_TOOL</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Name of logger for messages from the development tools:
 <code>openjpa.Tool</code>.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactory.html" title="interface in org.apache.openjpa.lib.log"><B>LogFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Factory for log instances.<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html" title="class in org.apache.openjpa.lib.log"><B>LogFactoryAdapter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Base type that aids in adapting an external log framework to the
 <A HREF="./org/apache/openjpa/lib/log/LogFactory.html" title="interface in org.apache.openjpa.lib.log"><CODE>LogFactory</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html#LogFactoryAdapter()"><B>LogFactoryAdapter()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html" title="class in org.apache.openjpa.lib.log">LogFactoryAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log"><B>LogFactoryImpl</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Default <A HREF="./org/apache/openjpa/lib/log/LogFactory.html" title="interface in org.apache.openjpa.lib.log"><CODE>LogFactory</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#LogFactoryImpl()"><B>LogFactoryImpl()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log"><B>LogFactoryImpl.LogImpl</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>A simple implementation of the <A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log"><CODE>Log</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#LogFactoryImpl.LogImpl()"><B>LogFactoryImpl.LogImpl()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#logFactoryPlugin"><B>logFactoryPlugin</B></A> - 
Variable in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc"><B>LoggingConnectionDecorator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>A <A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>ConnectionDecorator</CODE></A> that creates logging connections and
 <A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>ReportingSQLException</CODE></A>s.<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#LoggingConnectionDecorator()"><B>LoggingConnectionDecorator()</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.SQLWarningHandler.html" title="interface in org.apache.openjpa.lib.jdbc"><B>LoggingConnectionDecorator.SQLWarningHandler</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Interface that allows customization of what to do when
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLWarning.html" title="class or interface in java.sql"><CODE>SQLWarning</CODE></A>s occur.<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql"><B>LogicalUnion</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A logical union made up of multiple distinct selects whose results are
 combined in memory.<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#LogicalUnion(org.apache.openjpa.jdbc.conf.JDBCConfiguration, int)"><B>LogicalUnion(JDBCConfiguration, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#LogicalUnion(org.apache.openjpa.jdbc.conf.JDBCConfiguration, org.apache.openjpa.jdbc.sql.Select[])"><B>LogicalUnion(JDBCConfiguration, Select[])</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>Constructor used to seed the internal selects.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#LogicalUnion(org.apache.openjpa.jdbc.conf.JDBCConfiguration, int, org.apache.openjpa.jdbc.sql.Select[])"><B>LogicalUnion(JDBCConfiguration, int, Select[])</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>Delegate constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.Selector.html" title="interface in org.apache.openjpa.jdbc.sql"><B>LogicalUnion.Selector</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A callback used to create the selects in a SQL union.<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql"><B>LogicalUnion.UnionSelect</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A select that is part of a logical union.<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#LogicalUnion.UnionSelect(org.apache.openjpa.jdbc.sql.SelectImpl, int)"><B>LogicalUnion.UnionSelect(SelectImpl, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#logJDBC(java.lang.String, java.sql.Connection)"><B>logJDBC(String, Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>Log a JDBC message on behalf of the given connection.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#logJDBC(java.lang.String, long, java.sql.Connection)"><B>logJDBC(String, long, Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>Log a JDBC message on behalf of the given connection.
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event"><B>LogOrphanedKeyAction</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Log a message when an orphaned key is discovered.<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#LogOrphanedKeyAction()"><B>LogOrphanedKeyAction()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogOutputStream.html" title="class in org.apache.openjpa.lib.log"><B>LogOutputStream</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>Many standard components log to <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/OutputStream.html" title="class or interface in java.io"><CODE>OutputStream</CODE></A>s.<DT><A HREF="./org/apache/openjpa/lib/log/LogOutputStream.html#LogOutputStream(org.apache.openjpa.lib.log.Log, int)"><B>LogOutputStream(Log, int)</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogOutputStream.html" title="class in org.apache.openjpa.lib.log">LogOutputStream</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#logSQL(java.lang.String, java.sql.Connection)"><B>logSQL(String, Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>Log a SQL message on behalf of the given connection.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#logSQL(java.lang.String, long, java.sql.Connection)"><B>logSQL(String, long, Connection)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>Log a SQL message on behalf of the given connection.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#LONG"><B>LONG</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#LONG_OBJ"><B>LONG_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util"><B>LongId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for long fields.<DT><A HREF="./org/apache/openjpa/util/LongId.html#LongId(java.lang.Class, java.lang.Long)"><B>LongId(Class, Long)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#LongId(java.lang.Class, java.lang.String)"><B>LongId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#LongId(java.lang.Class, long)"><B>LongId(Class, long)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LongId.html#LongId(java.lang.Class, long, boolean)"><B>LongId(Class, long, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LongId.html" title="class in org.apache.openjpa.util">LongId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#longVarbinaryTypeName"><B>longVarbinaryTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#longVarcharTypeName"><B>longVarcharTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#lookup(java.lang.String)"><B>lookup(String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Looks up the given name in JNDI.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html#lrs"><B>lrs</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/LRS.html" title="annotation in org.apache.openjpa.persistence"><B>LRS</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Large result set field marker.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats"><B>LRSCollectionFieldStrategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Interface implemented by collection strategies so that they can
 support large result set collections.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats"><B>LRSMapFieldStrategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Interface implemented by map strategies so that they can
 support large result set maps.<DT><A HREF="./org/apache/openjpa/util/LRSProxy.html" title="interface in org.apache.openjpa.util"><B>LRSProxy</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Marker interface for large result set proxies.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>LRSProxyCollection</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Large result set collection.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html#LRSProxyCollection(org.apache.openjpa.jdbc.meta.strats.LRSCollectionFieldStrategy)"><B>LRSProxyCollection(LRSCollectionFieldStrategy)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSProxyCollection.html" title="class in org.apache.openjpa.jdbc.meta.strats">LRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#lrsSize"><B>lrsSize</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/LRSSizeAlgorithm.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>LRSSizeAlgorithm</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Algorithm to use for computing the size of an LRS relation.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>LRSSizes</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Ways of calculating the size of large result sets.<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util"><B>LRUMap</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Extension of the commons <code>LRUMap</code> that can change its
 maximum size.<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#LRUMap()"><B>LRUMap()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#LRUMap(int)"><B>LRUMap(int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#LRUMap(int, float)"><B>LRUMap(int, float)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#LRUMap(java.util.Map)"><B>LRUMap(Map)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Usage: java org.apache.openjpa.enhance.ApplicationIdTool [option]*
 &lt;class name | .java file | .class file | .jdo file&gt;+
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Usage: java org.apache.openjpa.enhance.PCEnhancer [option]*
 &lt;class name | .java file | .class file | .jdo file&gt;+
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Usage: java org.apache.openjpa.jdbc.kernel.ClassTableJDBCSeq [option]*
 -action/-a &lt;add | drop | get | set&gt;
 [class name | .java file | .class file | .jdo file] [value]
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>Usage: java org.apache.openjpa.jdbc.schema.NativeJDBCSequence [option]*
 -action/-a &lt;add | drop | get&gt;
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Usage: java org.apache.openjpa.jdbc.schema.TableJDBCSequence [option]*
 -action/-a &lt;add | drop | get | set&gt; [value]
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>Usage: java org.apache.openjpa.jdbc.kernel.ValueTableJDBCSeq [option]*
 -action/-a &lt;add | drop | get | set&gt; [primary key value] [value]
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Usage: java org.apache.openjpa.jdbc.meta.MappingTool [option]* 
 [-action/-a &lt;refresh | add | buildSchema | drop | validate | import 
 | export&gt;] &lt;class name | .java file | .class file | .jdo file&gt;*
 Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Usage: java org.apache.openjpa.jdbc.meta.ReverseMappingTool
 [option]* &lt;.schema file or resource&gt;*
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Usage: java org.apache.openjpa.jdbc.schema.SchemaTool [option]*
 [-action/-a &lt;add | retain | drop | refresh | createDB | dropDB
 | build | reflect | import | export&gt;]
 &lt;.schema file or resource&gt;*
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Usage: java org.apache.openjpa.jdbc.schema.TableSchemaFactory
 [option]* -action/-a &lt;add | drop&gt;
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>Prints product derivation information.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Usage: java org.apache.openjpa.meta.MetaDataTool [option]*
 [-action/-a &lt;add | drop&gt;]
 &lt;class name | .java file | .class file&gt;+
  Where the following options are recognized.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Usage: java org.apache.openjpa.util.proxy.ProxyManagerImpl [option]*
 &lt;class name&gt;+<br />
 Where the following options are recognized:
  
 <i>-utils/-u &lt;number&gt;</i>: Generate proxies for the standard
 java.util collection, map, date, and calendar classes of the given Java
 version.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#maj"><B>maj</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#MAJOR_RELEASE"><B>MAJOR_RELEASE</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html#makeCallback(java.lang.Object, java.lang.Object, int)"><B>makeCallback(Object, Object, int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html" title="class in org.apache.openjpa.event">BeanLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LifecycleCallbacks.html#makeCallback(java.lang.Object, java.lang.Object, int)"><B>makeCallback(Object, Object, int)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleCallbacks.html" title="interface in org.apache.openjpa.event">LifecycleCallbacks</A>
<DD>Invoke the callback for the given event type on the given instance.
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#makeCallback(java.lang.Object, java.lang.Object, int)"><B>makeCallback(Object, Object, int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#makeNameValid(java.lang.String, org.apache.openjpa.jdbc.schema.NameSet, int, int)"><B>makeNameValid(String, NameSet, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Shortens the given name to the given maximum length, then checks that
 it is not a reserved word.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#makeReadOnly()"><B>makeReadOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Freezes the configuration of this factory.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#MANAGE_NONE"><B>MANAGE_NONE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying the management level of a field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#MANAGE_PERSISTENT"><B>MANAGE_PERSISTENT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying the management level of a field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#MANAGE_TRANSACTIONAL"><B>MANAGE_TRANSACTIONAL</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying the management level of a field.
<DT><A HREF="./org/apache/openjpa/enhance/ManagedClassSubclasser.html" title="class in org.apache.openjpa.enhance"><B>ManagedClassSubclasser</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Redefines the method bodies of existing unenhanced classes to make them
 notify state managers of mutations.<DT><A HREF="./org/apache/openjpa/enhance/ManagedClassSubclasser.html#ManagedClassSubclasser()"><B>ManagedClassSubclasser()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ManagedClassSubclasser.html" title="class in org.apache.openjpa.enhance">ManagedClassSubclasser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ManagedInstanceProvider.html" title="interface in org.apache.openjpa.enhance"><B>ManagedInstanceProvider</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Instances of this interface can provide an underlying instance.<DT><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><B>ManagedRuntime</B></A> - Interface in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>This interface must be implemented by concrete plugins to application
 servers in order to integrate the OpenJPA runtime in a managed environment.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#managedRuntimePlugin"><B>managedRuntimePlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html#map(java.util.List, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>map(List, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping.PCResult</A>
<DD>Map the given request onto a result id.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Map the owning mapping using this strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/BlobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">BlobValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ByteArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayStreamValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ClobValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ClobValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbeddedClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbeddedClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean, java.util.List, java.util.List)"><B>map(ValueMapping, String, ColumnIO, boolean, List, List)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedValueHandler</A>
<DD>Maps embedded value and gathers columns and arguments into given lists.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FlatClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FlatClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Map the given value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ImmutableValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdClassStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">XMLValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#map(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>map(ValueMapping, String, ColumnIO, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Map the given value and return all mapped columns, or simply return an
 array of unmapped default columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#map(boolean)"><B>map(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#MAP"><B>MAP</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util"><B>MapChangeTracker</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Change tracker that can be used for maps.<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util"><B>MapChangeTrackerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Default <A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util"><CODE>MapChangeTracker</CODE></A>.<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#MapChangeTrackerImpl(java.util.Map)"><B>MapChangeTrackerImpl(Map)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>Constructor; supply delegate map.
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf"><B>MapConfigurationProvider</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Simple configuration provider that sets configuration based on a
 provided map.<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#MapConfigurationProvider()"><B>MapConfigurationProvider()</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>Construct with null properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#MapConfigurationProvider(java.util.Map)"><B>MapConfigurationProvider(Map)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>Constructor; supply properties map.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#mapConstraints(java.lang.String, boolean)"><B>mapConstraints(String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#mapConstraints(java.lang.String, boolean)"><B>mapConstraints(String, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Map indexes and constraints for this value, using the current
 <A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>ValueMappingInfo</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#mapConstraints(java.lang.String, boolean)"><B>mapConstraints(String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#mapJoin(boolean, boolean)"><B>mapJoin(boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Map this field to its table, optionally requiring that it be
 in another table.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#MAPPED_BY_PK"><B>MAPPED_BY_PK</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Marker to set on <A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setValueMappedBy(java.lang.String)"><CODE>ValueMetaData.setValueMappedBy(java.lang.String)</CODE></A> to denote that the map key
 is mapped by the primary key field of the value.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#mapPersistentTypeNames(java.lang.Object, java.lang.String[])"><B>mapPersistentTypeNames(Object, String[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Implement this method to map metadata resources to the persistent
 types contained within them.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#mapPersistentTypeNames(java.lang.Object, java.lang.String[])"><B>mapPersistentTypeNames(Object, String[])</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#mapping"><B>mapping</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html#mapping"><B>mapping</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html" title="class in org.apache.openjpa.jdbc.kernel">ConnectionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><B>MappingDefaults</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Generates default names for tables, columns, indexes, constraints, etc.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta"><B>MappingDefaultsImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Default implementation of <A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>MappingDefaults</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#MappingDefaultsImpl()"><B>MappingDefaultsImpl()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#mappingDefaultsPlugin"><B>mappingDefaultsPlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#mappingFactoryPlugin"><B>mappingFactoryPlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html" title="class in org.apache.openjpa.jdbc.conf"><B>MappingFactoryValue</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Handles the complex logic of creating a <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> for
 combined metadata and mapping.<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html#MappingFactoryValue(java.lang.String)"><B>MappingFactoryValue(String)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingFactoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><B>MappingInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Base class storing raw mapping information; defines utility methods for
 converting raw mapping information to full mapping to the schema.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#MappingInfo()"><B>MappingInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.ForeignKeyDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><B>MappingInfo.ForeignKeyDefaults</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Supplies default foreign key information.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.TableDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><B>MappingInfo.TableDefaults</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Supplies default table information.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/MappingOverride.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>MappingOverride</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows override of complex embedded or superclass mappings.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/MappingOverrides.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>MappingOverrides</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows override of complex embedded or superclass mappings.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta"><B>MappingRepository</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Repository of object/relational mapping information.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#MappingRepository()"><B>MappingRepository()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingRepositoryValue.html" title="class in org.apache.openjpa.jdbc.conf"><B>MappingRepositoryValue</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html">org.apache.openjpa.jdbc.conf</A><DD>Handles the complex logic of creating a <A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingRepository</CODE></A> for
 a given configuration.<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingRepositoryValue.html#MappingRepositoryValue(java.lang.String)"><B>MappingRepositoryValue(String)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingRepositoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingRepositoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#mappings"><B>mappings</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta"><B>MappingStrategyInstaller</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Installer used during mapping that attempts to use the given mapping
 information (if any), and fails if it does not work.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html#MappingStrategyInstaller(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>MappingStrategyInstaller(MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">MappingStrategyInstaller</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta"><B>MappingTool</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Tool for manipulating class mappings and associated schema.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#MappingTool(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String, boolean)"><B>MappingTool(JDBCConfiguration, String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta"><B>MappingTool.Flags</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Run flags.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#MappingTool.Flags()"><B>MappingTool.Flags()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.ImportExport.html" title="interface in org.apache.openjpa.jdbc.meta"><B>MappingTool.ImportExport</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Helper used to import and export mapping data.<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant"><B>MappingToolTask</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>Executes the <A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingTool</CODE></A> on the specified files.<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#MappingToolTask()"><B>MappingToolTask()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.Action.html" title="class in org.apache.openjpa.jdbc.ant"><B>MappingToolTask.Action</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.Action.html#MappingToolTask.Action()"><B>MappingToolTask.Action()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.Action.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask.Action</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.SchemaAction.html" title="class in org.apache.openjpa.jdbc.ant"><B>MappingToolTask.SchemaAction</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.SchemaAction.html#MappingToolTask.SchemaAction()"><B>MappingToolTask.SchemaAction()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.SchemaAction.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask.SchemaAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#mappingWriter"><B>mappingWriter</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#mapPrimaryKey(boolean)"><B>mapPrimaryKey(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Maps the primary key on the secondary table for this field, if the
 user's defaults create one.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#mapRelationToUnmappedPC(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, boolean)"><B>mapRelationToUnmappedPC(ValueMapping, String, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>Map a logical foreign key to an unmapped base class relation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>MapTableFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Base class for map mappings.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#MapTableFieldStrategy()"><B>MapTableFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#mapTypeNames(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>mapTypeNames(MetaDataIterator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Return a mapping of each metadata resource to an array of its contained
 class names.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#mapTypes(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>mapTypes(MetaDataIterator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Return a mapping of each metadata resource to an array of its
 contained classes.
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#mark(int)"><B>mark(int)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#markSupported()"><B>markSupported()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#matches(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.String, java.lang.String, java.lang.String)"><B>matches(Value, Value, String, String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#matches(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.String, java.lang.String, java.lang.String)"><B>matches(Value, Value, String, String, String)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return whether the string matches the matching pattern.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#matches(org.apache.openjpa.kernel.exps.QueryExpressions, org.apache.openjpa.meta.ClassMetaData, boolean, java.lang.Object, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>matches(QueryExpressions, ClassMetaData, boolean, Object, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>Tests whether the given candidate matches the given type and this
 expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#matches(org.apache.openjpa.kernel.exps.QueryExpressions, java.util.Collection, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>matches(QueryExpressions, Collection, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>Return true if the given group matches the having expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#matches(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.String, java.lang.String, java.lang.String)"><B>matches(Value, Value, String, String, String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html#matches(org.apache.openjpa.lib.meta.MetaDataFilter.Resource)"><B>matches(MetaDataFilter.Resource)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">ClassAnnotationMetaDataFilter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.html#matches(org.apache.openjpa.lib.meta.MetaDataFilter.Resource)"><B>matches(MetaDataFilter.Resource)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.html" title="interface in org.apache.openjpa.lib.meta">MetaDataFilter</A>
<DD>Return whether the given resource passes the filter.
<DT><A HREF="./org/apache/openjpa/lib/meta/SuffixMetaDataFilter.html#matches(org.apache.openjpa.lib.meta.MetaDataFilter.Resource)"><B>matches(MetaDataFilter.Resource)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SuffixMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">SuffixMetaDataFilter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/SimpleRegex.html#matches(java.lang.String)"><B>matches(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/SimpleRegex.html" title="class in org.apache.openjpa.lib.util">SimpleRegex</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#mathFunction(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.String, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>mathFunction(SQLBuffer, String, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Append the numeric parts of a mathematical function.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#max(org.apache.openjpa.kernel.exps.Value)"><B>max(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html#max"><B>max</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq.Status</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#max(org.apache.openjpa.kernel.exps.Value)"><B>max(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the max of the given value for all matches.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#max(org.apache.openjpa.kernel.exps.Value)"><B>max(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxAutoAssignNameLength"><B>maxAutoAssignNameLength</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxColumnNameLength"><B>maxColumnNameLength</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxConstraintNameLength"><B>maxConstraintNameLength</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>MaxEmbeddedBlobFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for serialized fields on a dictionary that has a maximum embedded
 BLOB size.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#MaxEmbeddedBlobFieldStrategy()"><B>MaxEmbeddedBlobFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxEmbeddedBlobSize"><B>maxEmbeddedBlobSize</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>MaxEmbeddedByteArrayFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for byte array fields on a dictionary that has a maximum embedded
 BLOB size.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#MaxEmbeddedByteArrayFieldStrategy()"><B>MaxEmbeddedByteArrayFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>MaxEmbeddedCharArrayFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for CLOB character array on a dictionary that has a maximum
 embedded CLOB size.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#MaxEmbeddedCharArrayFieldStrategy()"><B>MaxEmbeddedCharArrayFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>MaxEmbeddedClobFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for CLOB string on a dictionary that has a maximum embedded
 CLOB size.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#MaxEmbeddedClobFieldStrategy()"><B>MaxEmbeddedClobFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxEmbeddedClobSize"><B>maxEmbeddedClobSize</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#maxFetchDepth"><B>maxFetchDepth</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#maxFetchDepth"><B>maxFetchDepth</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxIndexesPerTable"><B>maxIndexesPerTable</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxIndexNameLength"><B>maxIndexNameLength</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#maxSize()"><B>maxSize()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#maxTableNameLength"><B>maxTableNameLength</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#maybePC(org.apache.openjpa.meta.FieldMetaData)"><B>maybePC(FieldMetaData)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Return true if the (possibly unresolved) field or its elements might be
 persistence capable objects.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#maybePC(org.apache.openjpa.meta.ValueMetaData)"><B>maybePC(ValueMetaData)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Return true if the (possibly unresolved) value might be a first class
 object.
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#MEDIATE_READ"><B>MEDIATE_READ</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#MEDIATE_WRITE"><B>MEDIATE_WRITE</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html#memory"><B>memory</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html" title="class in org.apache.openjpa.kernel">QueryImpl.Compilation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#merge(T)"><B>merge(T)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#mergeAll(java.lang.Object...)"><B>mergeAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#mergeAll(java.util.Collection)"><B>mergeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#mergeAll(java.lang.Object...)"><B>mergeAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Merge the specified objects into the entity manager.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#mergeAll(java.util.Collection)"><B>mergeAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Merge the specified detached objects into the entity manager.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#mergeColumn(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column, boolean, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.schema.Table, boolean, boolean)"><B>mergeColumn(MetaDataContext, String, Column, boolean, Column, Table, boolean, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Merge the given columns if possible.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql"><B>MergedResult</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Result that merges multiple result delegates.<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#MergedResult(org.apache.openjpa.jdbc.sql.Result[])"><B>MergedResult(Result[])</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>Constructor; supply delegates.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#MergedResult(org.apache.openjpa.jdbc.sql.Result[], org.apache.openjpa.jdbc.sql.MergedResult.ResultComparator)"><B>MergedResult(Result[], MergedResult.ResultComparator)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>Constructor; supply delegates and comparator for ordering results.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.ResultComparator.html" title="interface in org.apache.openjpa.jdbc.sql"><B>MergedResult.ResultComparator</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Comparator for ordering result rows.<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop"><B>MergedResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>A result object provider that merges multiple result object provider
 delegates.<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#MergedResultObjectProvider(org.apache.openjpa.lib.rop.ResultObjectProvider[])"><B>MergedResultObjectProvider(ResultObjectProvider[])</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#MergedResultObjectProvider(org.apache.openjpa.lib.rop.ResultObjectProvider[], java.util.Comparator)"><B>MergedResultObjectProvider(ResultObjectProvider[], Comparator)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#meta"><B>meta</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#METADATA"><B>METADATA</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataContext.html" title="interface in org.apache.openjpa.meta"><B>MetaDataContext</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Allows us to access configuration through metadata in a generic way.<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta"><B>MetaDataDefaults</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Populates new metadata with default values.<DT><A HREF="./org/apache/openjpa/util/MetaDataException.html" title="class in org.apache.openjpa.util"><B>MetaDataException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type reserved for missing or invalid metadata.<DT><A HREF="./org/apache/openjpa/util/MetaDataException.html#MetaDataException()"><B>MetaDataException()</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MetaDataException.html" title="class in org.apache.openjpa.util">MetaDataException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MetaDataException.html#MetaDataException(java.lang.String)"><B>MetaDataException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MetaDataException.html" title="class in org.apache.openjpa.util">MetaDataException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MetaDataException.html#MetaDataException(org.apache.openjpa.lib.util.Localizer.Message)"><B>MetaDataException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MetaDataException.html" title="class in org.apache.openjpa.util">MetaDataException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MetaDataException.html#MetaDataException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>MetaDataException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MetaDataException.html" title="class in org.apache.openjpa.util">MetaDataException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><B>MetaDataFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>The <A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta"><CODE>MetaDataRepository</CODE></A> uses implementations of this interface
 to load and store metadata.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#metaDataFile"><B>metaDataFile</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.html" title="interface in org.apache.openjpa.lib.meta"><B>MetaDataFilter</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Filters metadata resources.<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataFilter.Resource.html" title="interface in org.apache.openjpa.lib.meta"><B>MetaDataFilter.Resource</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Information about a metadata resource.<DT><A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html" title="class in org.apache.openjpa.meta"><B>MetaDataInheritanceComparator</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Comparator that keeps metadatas in inheritance order.<DT><A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html#MetaDataInheritanceComparator()"><B>MetaDataInheritanceComparator()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html" title="class in org.apache.openjpa.meta">MetaDataInheritanceComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html" title="interface in org.apache.openjpa.lib.meta"><B>MetaDataIterator</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over metadata resources.<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta"><B>MetaDataIteratorChain</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Metadata iterator that combines several iterators.<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#MetaDataIteratorChain()"><B>MetaDataIteratorChain()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#MetaDataIteratorChain(org.apache.openjpa.lib.meta.MetaDataIterator, org.apache.openjpa.lib.meta.MetaDataIterator)"><B>MetaDataIteratorChain(MetaDataIterator, MetaDataIterator)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>Combine two iterators.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#metaDataLevel"><B>metaDataLevel</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta"><B>MetaDataModes</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Mode constants used to track the initialization status of metadata.<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta"><B>MetaDataParser</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Interface for metadata parsers.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta"><B>MetaDataPlusMappingFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Combines two internal <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> instances -- one for
 metadata, one for mappings -- into a single <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> facade.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#MetaDataPlusMappingFactory(org.apache.openjpa.meta.MetaDataFactory, org.apache.openjpa.meta.MetaDataFactory)"><B>MetaDataPlusMappingFactory(MetaDataFactory, MetaDataFactory)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>Constructor; supply delegates.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta"><B>MetaDataRepository</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Repository of and factory for persistent metadata.<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#MetaDataRepository()"><B>MetaDataRepository()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#metaDataRepositoryAvailable()"><B>metaDataRepositoryAvailable()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Returns true if a metaDataRepository has been created for this 
 configuration.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#metaDataRepositoryAvailable()"><B>metaDataRepositoryAvailable()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta"><B>MetaDataSerializer</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Interface for meta data serializers.<DT><A HREF="./org/apache/openjpa/persistence/MetaDataTag.html" title="enum in org.apache.openjpa.persistence"><B>MetaDataTag</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Set of metadata tags used in JPA.<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta"><B>MetaDataTool</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Tool for generating default metadata.<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#MetaDataTool(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String)"><B>MetaDataTool(OpenJPAConfiguration, String)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html" title="class in org.apache.openjpa.meta"><B>MetaDataTool.Flags</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Run flags.<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html#MetaDataTool.Flags()"><B>MetaDataTool.Flags()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html" title="class in org.apache.openjpa.meta">MetaDataTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant"><B>MetaDataToolTask</B></A> - Class in <A HREF="./org/apache/openjpa/ant/package-summary.html">org.apache.openjpa.ant</A><DD>Executes the metadata tool on the specified files.<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#MetaDataToolTask()"><B>MetaDataToolTask()</B></A> - 
Constructor for class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.Action.html" title="class in org.apache.openjpa.ant"><B>MetaDataToolTask.Action</B></A> - Class in <A HREF="./org/apache/openjpa/ant/package-summary.html">org.apache.openjpa.ant</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.Action.html#MetaDataToolTask.Action()"><B>MetaDataToolTask.Action()</B></A> - 
Constructor for class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.Action.html" title="class in org.apache.openjpa.ant">MetaDataToolTask.Action</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#metaFactoryPlugin"><B>metaFactoryPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#metaRepository"><B>metaRepository</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#metaRepositoryPlugin"><B>metaRepositoryPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event"><B>MethodLifecycleCallbacks</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Callback adapter that invokes a callback method via reflection.<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#MethodLifecycleCallbacks(java.lang.Class, java.lang.String, boolean)"><B>MethodLifecycleCallbacks(Class, String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#MethodLifecycleCallbacks(java.lang.reflect.Method, boolean)"><B>MethodLifecycleCallbacks(Method, boolean)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel"><B>MethodStoreQuery</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A query that is executed by a user-defined method.<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#MethodStoreQuery()"><B>MethodStoreQuery()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#MICRO"><B>MICRO</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#MICROSECONDS"><B>MICROSECONDS</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#MILLI"><B>MILLI</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#MILLISECONDS"><B>MILLISECONDS</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#min(org.apache.openjpa.kernel.exps.Value)"><B>min(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#min"><B>min</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#min(org.apache.openjpa.kernel.exps.Value)"><B>min(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the max of the given value for all matches.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#min(org.apache.openjpa.kernel.exps.Value)"><B>min(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#MINOR_RELEASE"><B>MINOR_RELEASE</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#MINUTES"><B>MINUTES</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#mkdirsAction(java.io.File)"><B>mkdirsAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.mkdirs().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#mod(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>mod(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#mod(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>mod(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the first value mod'd by the second one.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#mod(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>mod(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#mod(java.lang.Object, java.lang.Class, java.lang.Object, java.lang.Class)"><B>mod(Object, Class, Object, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Mod the given values.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html#MODE_ANN_MAPPING"><B>MODE_ANN_MAPPING</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html#MODE_MAPPING"><B>MODE_MAPPING</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html#MODE_MAPPING_INIT"><B>MODE_MAPPING_INIT</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html#MODE_META"><B>MODE_META</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html#MODE_NONE"><B>MODE_NONE</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataModes.html#MODE_QUERY"><B>MODE_QUERY</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#modifyDynamic(java.lang.String, java.lang.Object)"><B>modifyDynamic(String, Object)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Modifies a <em>dynamic</em> property of this receiver even when 
 <A HREF="./org/apache/openjpa/lib/conf/Configuration.html#setReadOnly(boolean)"><CODE>frozen</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#modifyDynamic(java.lang.String, java.lang.Object)"><B>modifyDynamic(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#moveToCurrentRow()"><B>moveToCurrentRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#moveToInsertRow()"><B>moveToInsertRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util"><B>MultiClassLoader</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Class loader type that can be configured to delegate to multiple
 internal class loaders.<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#MultiClassLoader()"><B>MultiClassLoader()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Constructor; initializes the loader with an empty list of delegates.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#MultiClassLoader(org.apache.openjpa.lib.util.MultiClassLoader)"><B>MultiClassLoader(MultiClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Construct with the class loaders of another multi loader.
<DT><A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html" title="class in org.apache.openjpa.util"><B>MultiLoaderClassResolver</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>A simple <A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util"><CODE>ClassResolver</CODE></A> that uses multiple class loaders to
 resolve classes.<DT><A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html#MultiLoaderClassResolver()"><B>MultiLoaderClassResolver()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html" title="class in org.apache.openjpa.util">MultiLoaderClassResolver</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html#MultiLoaderClassResolver(java.lang.ClassLoader[])"><B>MultiLoaderClassResolver(ClassLoader[])</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MultiLoaderClassResolver.html" title="class in org.apache.openjpa.util">MultiLoaderClassResolver</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log"><B>MultiLogFactory</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>A LogFactory implementation to pass events through multiple
 LogFactory implementations(such as log4j and LogPanelFactory).<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#MultiLogFactory(org.apache.openjpa.lib.log.LogFactory, org.apache.openjpa.lib.log.LogFactory)"><B>MultiLogFactory(LogFactory, LogFactory)</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>Create an instance with the given delegates.
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#MultiLogFactory(org.apache.openjpa.lib.log.LogFactory, org.apache.openjpa.lib.log.LogFactory, org.apache.openjpa.lib.log.LogFactory)"><B>MultiLogFactory(LogFactory, LogFactory, LogFactory)</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>Create an instance with the given delegates.
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#MultiLogFactory(org.apache.openjpa.lib.log.LogFactory[])"><B>MultiLogFactory(LogFactory[])</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>Create an instance with the given delegates.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#multiply(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>multiply(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#multiply(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>multiply(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the two values multiplied together.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#multiply(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>multiply(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#multiply(java.lang.Object, java.lang.Class, java.lang.Object, java.lang.Class)"><B>multiply(Object, Class, Object, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Multiply the given values.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#multithreaded"><B>multithreaded</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>MySQLDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for MySQL.<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#MySQLDictionary()"><B>MySQLDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_N_"><!-- --></A><H2>
<B>N</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#name"><B>name</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#NAME_ALL"><B>NAME_ALL</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Name of the "all" fetch group.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#NAME_ANY"><B>NAME_ANY</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#NAME_DEFAULT"><B>NAME_DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>The name of the default data cache: <code>default</code>
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#NAME_DEFAULT"><B>NAME_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Name of the default fetch group.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#NAME_DEFAULT"><B>NAME_DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#NAME_SEQUENCE"><B>NAME_SEQUENCE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#NAME_SYSTEM"><B>NAME_SYSTEM</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Sequence name that means to use the system default sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#NAME_TABLE"><B>NAME_TABLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#namedHandler(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>namedHandler(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given value's named handler, or return null if no
 named handler.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#namedSequenceFromOneSchemaSQL"><B>namedSequenceFromOneSchemaSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>SQL statement to load a sequence's schema,name pair from one schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#namedSequencesFromAllSchemasSQL"><B>namedSequencesFromAllSchemasSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>SQL statement to load schema,name pairs for all sequences with a
 certain name from all schemas.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#namedStrategy(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>namedStrategy(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given class' named strategy, or return null if no
 named strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#namedStrategy(org.apache.openjpa.jdbc.meta.FieldMapping, boolean)"><B>namedStrategy(FieldMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given field's named strategy, or return null if no
 named strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#namedStrategy(org.apache.openjpa.jdbc.meta.Discriminator)"><B>namedStrategy(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given discriminator's named strategy, or return null
 if no named strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#namedStrategy(org.apache.openjpa.jdbc.meta.Version)"><B>namedStrategy(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Instantiate the given version's named strategy, or return null
 if no named strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html" title="class in org.apache.openjpa.jdbc.schema"><B>NameSet</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Name sets track what names have been taken, ignoring case.<DT><A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html#NameSet()"><B>NameSet()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html" title="class in org.apache.openjpa.jdbc.schema">NameSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#NANO"><B>NANO</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#NANOSECONDS"><B>NANOSECONDS</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/NanoTimer.html#nanoTime()"><B>nanoTime()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/NanoTimer.html" title="interface in org.apache.openjpa.lib.util.concurrent">NanoTimer</A>
<DD>Returns the current value of the most precise available system timer,
 in nanoseconds.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html#nanoTime()"><B>nanoTime()</B></A> - 
Static method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html" title="class in org.apache.openjpa.lib.util.concurrent">Utils</A>
<DD>Returns the current value of the most precise available system timer,
 in nanoseconds.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/NanoTimer.html" title="interface in org.apache.openjpa.lib.util.concurrent"><B>NanoTimer</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>Interface to specify custom implementation of precise timer.<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#NATIVE"><B>NATIVE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>"native" value strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><B>NativeJDBCSeq</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCSeq.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCSeq</CODE></A> implementation that uses a database sequences
 to generate numbers.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#NativeJDBCSeq()"><B>NativeJDBCSeq()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#nativeSQL(java.lang.String)"><B>nativeSQL(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newAggregate(org.apache.openjpa.kernel.exps.AggregateListener, org.apache.openjpa.kernel.exps.Value)"><B>newAggregate(AggregateListener, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newAggregate(org.apache.openjpa.kernel.exps.AggregateListener, org.apache.openjpa.kernel.exps.Value)"><B>newAggregate(AggregateListener, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the value of the given function.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newAggregate(org.apache.openjpa.kernel.exps.AggregateListener, org.apache.openjpa.kernel.exps.Value)"><B>newAggregate(AggregateListener, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#newAnnotationBuilder(java.lang.Class)"><B>newAnnotationBuilder(Class&lt;? extends Annotation&gt;)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Creates a new annotation builder for the specified annotation type.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html#newAnnotationParser()"><B>newAnnotationParser()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newAnnotationParser()"><B>newAnnotationParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Create a new metadata parser.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#newAnnotationSerializer()"><B>newAnnotationSerializer()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Create a new annotation metadata serializer.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html#newAnnotationSerializer()"><B>newAnnotationSerializer()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newAnnotationSerializer()"><B>newAnnotationSerializer()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Create a new annotation serializer.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newArgumentList(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>newArgumentList(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newArgumentList(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>newArgumentList(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a function argument list consisting of the given values, either
 of which may itself be an argument list.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newArgumentList(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>newArgumentList(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newBCClassLoaderAction(serp.bytecode.Project, java.lang.ClassLoader)"><B>newBCClassLoaderAction(Project, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for new BCClassLoader().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newBCClassLoaderAction(serp.bytecode.Project)"><B>newBCClassLoaderAction(Project)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newBoundVariable(java.lang.String, java.lang.Class)"><B>newBoundVariable(String, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newBoundVariable(java.lang.String, java.lang.Class)"><B>newBoundVariable(String, Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>This method will be called only once per variable bound in a
 <code>contains</code> clause, and the returned value will be reused
 for any further instances of the variable in subexpression of the
 filter string.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newBoundVariable(java.lang.String, java.lang.Class)"><B>newBoundVariable(String, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newBroker()"><B>newBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newBroker(java.lang.String, java.lang.String)"><B>newBroker(String, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newBroker(boolean, int)"><B>newBroker(boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newBroker(java.lang.String, java.lang.String, boolean, int)"><B>newBroker(String, String, boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newBroker(java.lang.String, java.lang.String, boolean, int, boolean)"><B>newBroker(String, String, boolean, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#newBroker()"><B>newBroker()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Return a broker with default settings.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#newBroker(java.lang.String, java.lang.String, boolean, int, boolean)"><B>newBroker(String, String, boolean, int, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Return a broker using the given credentials and in the given
 transaction and connection retain mode, optionally finding
 existing broker in the global transaction.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#newBroker()"><B>newBroker()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#newBroker(java.lang.String, java.lang.String, boolean, int, boolean)"><B>newBroker(String, String, boolean, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Bootstrap.html#newBrokerFactory()"><B>newBrokerFactory()</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Bootstrap.html" title="class in org.apache.openjpa.kernel">Bootstrap</A>
<DD>Return a new factory for the default configuration.
<DT><A HREF="./org/apache/openjpa/kernel/Bootstrap.html#newBrokerFactory(org.apache.openjpa.lib.conf.ConfigurationProvider, java.lang.ClassLoader)"><B>newBrokerFactory(ConfigurationProvider, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Bootstrap.html" title="class in org.apache.openjpa.kernel">Bootstrap</A>
<DD>Return a new factory for the given configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#newBrokerImpl(java.lang.String, java.lang.String)"><B>newBrokerImpl(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newBrokerImpl(java.lang.String, java.lang.String)"><B>newBrokerImpl(String, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Return a broker configured with the proper settings.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#newBrokerInstance(java.lang.String, java.lang.String)"><B>newBrokerInstance(String, String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Create a new broker instance with the configured plugin data.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#newBrokerInstance(java.lang.String, java.lang.String)"><B>newBrokerInstance(String, String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#newBrokerInstance(java.lang.String, java.lang.String)"><B>newBrokerInstance(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#newCacheMap()"><B>newCacheMap()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>Return the map to use as an internal cache; entry expirations must
 invoke <A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#keyRemoved(java.lang.Object, boolean)"><CODE>AbstractDataCache.keyRemoved(java.lang.Object, boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#newCacheMap()"><B>newCacheMap()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>Return the map to use as an internal cache.
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#newCalendarProxy(java.lang.Class, java.util.TimeZone)"><B>newCalendarProxy(Class, TimeZone)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a new calendar proxy.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#newCalendarProxy(java.lang.Class, java.util.TimeZone)"><B>newCalendarProxy(Class, TimeZone)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#newClassArgParser()"><B>newClassArgParser()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#newClassArgParser()"><B>newClassArgParser()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#newClassArgParser()"><B>newClassArgParser()</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Return a properly-configured class arg parser for our expected
 metadata format.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#newClassArgParser()"><B>newClassArgParser()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newClassArgParser()"><B>newClassArgParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#newClassMapping(java.lang.Class, org.apache.openjpa.jdbc.schema.Table)"><B>newClassMapping(Class, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Create a new class to be mapped to a table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newClassMetaData(java.lang.Class)"><B>newClassMetaData(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newClassMetaData(java.lang.Class)"><B>newClassMetaData(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new class metadata instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newClassMetaDataArray(int)"><B>newClassMetaDataArray(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newClassMetaDataArray(int)"><B>newClassMetaDataArray(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new array of the proper class metadata subclass.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newCodeAction()"><B>newCodeAction()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for new serp.bytecode.Code().
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#newCodeFormat()"><B>newCodeFormat()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Return a copy of the internal code format.
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#newCollectionProxy(java.lang.Class, java.lang.Class, java.util.Comparator)"><B>newCollectionProxy(Class, Class, Comparator)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a proxy for the given collection type.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#newCollectionProxy(java.lang.Class, java.lang.Class, java.util.Comparator)"><B>newCollectionProxy(Class, Class, Comparator)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#newColumn(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>newColumn(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newColumn(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>newColumn(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new column with the given name and owner table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newColumn(java.sql.ResultSet)"><B>newColumn(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a new column from the information in the schema metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#newColumn(java.sql.ResultSet)"><B>newColumn(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#newColumn(java.sql.ResultSet)"><B>newColumn(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#newCompilation()"><B>newCompilation()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#newCompilation()"><B>newCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#newCompilation()"><B>newCompilation()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#newCompilation()"><B>newCompilation()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Create a new compilation for this query.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#newCompilationKey()"><B>newCompilationKey()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#newCompilationKey()"><B>newCompilationKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#newCompilationKey()"><B>newCompilationKey()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#newCompilationKey()"><B>newCompilationKey()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Create a new key for caching compiled query information.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html#newCondition()"><B>newCondition()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent">Lock</A>
<DD>Returns a new <A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent"><CODE>Condition</CODE></A> instance that is bound to this
 <tt>Lock</tt> instance.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#newCondition()"><B>newCondition()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns a <A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent"><CODE>Condition</CODE></A> instance for use with this
 <A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent"><CODE>Lock</CODE></A> instance.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Return a new configuration instance for this runtime.
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Implement this method to return a configuration object for the
 product in use.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#newConfiguration()"><B>newConfiguration()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#newContext()"><B>newContext()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>Returns a new <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/Context.html" title="class or interface in javax.naming"><CODE>Context</CODE></A> object for use by this provider.
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#newCustomProxy(java.lang.Object)"><B>newCustomProxy(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a proxy for the given object, or null if this manager cannot
 proxy the object.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#newCustomProxy(java.lang.Object)"><B>newCustomProxy(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newDaemonThreadAction(java.lang.Runnable, java.lang.String)"><B>newDaemonThreadAction(Runnable, String)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedAction object for new Thread().
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html#newDataSource(org.apache.openjpa.jdbc.conf.JDBCConfiguration, boolean)"><B>newDataSource(JDBCConfiguration, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DataSourceFactory.html" title="class in org.apache.openjpa.jdbc.schema">DataSourceFactory</A>
<DD>Create a datasource using the given configuration.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#newDataStoreExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newDataStoreExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#newDataStoreExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newDataStoreExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#newDataStoreExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newDataStoreExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#newDataStoreExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newDataStoreExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#newDataStoreExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newDataStoreExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#newDataStoreExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newDataStoreExecutor(ClassMetaData, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Return an executor for datastore execution of this query.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#newDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>newDataStoreId(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html#newDataStoreId(long, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>newDataStoreId(long, ClassMapping, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStore.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCStore</A>
<DD>Create a new datastore identity object from the given id value and
 mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#newDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>newDataStoreId(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#newDataStoreId(long, org.apache.openjpa.jdbc.meta.ClassMapping, boolean)"><B>newDataStoreId(long, ClassMapping, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#newDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>newDataStoreId(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#newDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>newDataStoreId(Object, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Create a new unique datastore identity for the given type from
 the given oid value (presumably pk, stringified oid, or oid instance).
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#newDateProxy(java.lang.Class)"><B>newDateProxy(Class)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a new date proxy.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#newDateProxy(java.lang.Class)"><B>newDateProxy(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html#newDBDictionary(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String, java.lang.String)"><B>newDBDictionary(JDBCConfiguration, String, String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionaryFactory</A>
<DD>Create the dictionary for the given class name and properties.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html#newDBDictionary(org.apache.openjpa.jdbc.conf.JDBCConfiguration, javax.sql.DataSource, java.lang.String)"><B>newDBDictionary(JDBCConfiguration, DataSource, String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionaryFactory</A>
<DD>Create the dictionary using connection metadata to determine its type.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#newDelegatingFetchConfiguration(org.apache.openjpa.kernel.FetchConfiguration)"><B>newDelegatingFetchConfiguration(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>Create a new exception-translating delegating fetch configuration.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#newDelegatingFetchConfiguration(org.apache.openjpa.kernel.FetchConfiguration)"><B>newDelegatingFetchConfiguration(FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#newDepthFirstAnalysis(org.apache.openjpa.lib.graph.Graph, boolean)"><B>newDepthFirstAnalysis(Graph, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>Create a new <A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph"><CODE>DepthFirstAnalysis</CODE></A> suitable for the given graph
 and auto-assign settings.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newDiscriminator(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>newDiscriminator(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create discriminator metadata for the given class.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#newDriverDataSourceInstance()"><B>newDriverDataSourceInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Create an instance of the <A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>DriverDataSource</CODE></A> to use
 for creating a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html" title="class or interface in javax.sql"><CODE>DataSource</CODE></A> from a JDBC <CODE>Driver</CODE>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#newDriverDataSourceInstance()"><B>newDriverDataSourceInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newEmbeddedClassMetaData(org.apache.openjpa.meta.ValueMetaData)"><B>newEmbeddedClassMetaData(ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newEmbeddedClassMetaData(org.apache.openjpa.meta.ValueMetaData)"><B>newEmbeddedClassMetaData(ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new embedded class metadata instance.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#newEmbeddedPCData(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>newEmbeddedPCData(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#newEmbeddedPCData(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>newEmbeddedPCData(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Create a new pcdata for holding the state of an embedded instance.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#newEmbeddedPCData(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>newEmbeddedPCData(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Return a new <A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><CODE>PCData</CODE></A> implementation of the right type for
 embedded instances.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#newEntityManagerImpl(org.apache.openjpa.kernel.Broker)"><B>newEntityManagerImpl(Broker)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>Create a new entity manager around the given broker.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newExtension(org.apache.openjpa.kernel.exps.FilterListener, org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>newExtension(FilterListener, Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newExtension(org.apache.openjpa.kernel.exps.FilterListener, org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>newExtension(FilterListener, Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the value of the given extension.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newExtension(org.apache.openjpa.kernel.exps.FilterListener, org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>newExtension(FilterListener, Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#newExtent(java.lang.Class, boolean)"><B>newExtent(Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Return an extent of the given class, optionally including subclasses.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newExtent(java.lang.Class, boolean)"><B>newExtent(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#newExtent(java.lang.Class, boolean)"><B>newExtent(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html#newFactory(org.apache.openjpa.kernel.BrokerFactory)"><B>newFactory(BrokerFactory)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryValue.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryValue</A>
<DD>Create a new factory of the configured type.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#newFetchConfiguration()"><B>newFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#newFetchConfiguration()"><B>newFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#newFetchConfiguration()"><B>newFetchConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#newFetchConfiguration()"><B>newFetchConfiguration()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return a fetch configuration suitable for this runtime.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#newFieldMapping(java.lang.String, java.lang.Class, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>newFieldMapping(String, Class, Column, ForeignKey, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Create a field mapping for the given info, or return null if
 customizer rejects.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newFieldMetaData(java.lang.String, java.lang.Class, org.apache.openjpa.meta.ClassMetaData)"><B>newFieldMetaData(String, Class, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newFieldMetaData(java.lang.String, java.lang.Class, org.apache.openjpa.meta.ClassMetaData)"><B>newFieldMetaData(String, Class, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new field metadata instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newFieldMetaDataArray(int)"><B>newFieldMetaDataArray(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newFieldMetaDataArray(int)"><B>newFieldMetaDataArray(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new array of the proper field metadata subclass.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#newFieldProxy(int)"><B>newFieldProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#newFieldProxy(int)"><B>newFieldProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#newFieldProxy(int)"><B>newFieldProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#newFieldProxy(int)"><B>newFieldProxy(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Create a new hollow proxy instance for the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#newFieldProxy(int)"><B>newFieldProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newFileInputStreamAction(java.io.File)"><B>newFileInputStreamAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for new FileInputStream().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newFileOutputStreamAction(java.io.File)"><B>newFileOutputStreamAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for new FileOutputStream().
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newFileOutputStreamAction(java.lang.String, boolean)"><B>newFileOutputStreamAction(String, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for new FileOutputStream().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#newFilterValues(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><B>newFilterValues(Select, ExpContext, ExpState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>Return a filter value for each argument.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newForeignKey(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>newForeignKey(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new foreign key with the given name and owner table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newForeignKey(java.sql.ResultSet)"><B>newForeignKey(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a new foreign key from the information in the schema metadata.
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#newImage(int)"><B>newImage(int)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>Create a new state image for the given number of fields.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newIndex(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>newIndex(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new index with the given name and owner table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newIndex(java.sql.ResultSet)"><B>newIndex(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a new index from the information in the schema metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#newIndex(java.sql.ResultSet)"><B>newIndex(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#newInMemoryExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newInMemoryExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#newInMemoryExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newInMemoryExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#newInMemoryExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newInMemoryExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#newInMemoryExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newInMemoryExecutor(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#newInMemoryExecutor(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>newInMemoryExecutor(ClassMetaData, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Return an executor for in-memory execution of this query.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html#newInstance(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>newInstance(ConfigurationProvider)</B></A> - 
Static method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreBrokerFactory</A>
<DD>Factory method for constructing a <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A>
 from properties.
<DT><A HREF="./org/apache/openjpa/conf/BrokerValue.html#newInstance(java.lang.String, java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>newInstance(String, Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerValue.html" title="class in org.apache.openjpa.conf">BrokerValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html#newInstance(java.lang.String, java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>newInstance(String, Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html" title="class in org.apache.openjpa.conf">QueryCompilationCacheValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#newInstance(org.apache.openjpa.kernel.Query)"><B>newInstance(Query)</B></A> - 
Static method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Return a key for the given query, or null if it is not cacheable.
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#newInstance(org.apache.openjpa.kernel.Query, java.lang.Object[])"><B>newInstance(Query, Object[])</B></A> - 
Static method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Return a key for the given query, or null if it is not cacheable.
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#newInstance(org.apache.openjpa.kernel.Query, java.util.Map)"><B>newInstance(Query, Map)</B></A> - 
Static method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Return a key for the given query, or null if it is not cacheable.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#newInstance()"><B>newInstance()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Factory method for getting new instances of the same definition.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#newInstance(java.lang.Class, org.apache.openjpa.enhance.StateManager, boolean)"><B>newInstance(Class, StateManager, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Create a new instance of the class and assign its state manager.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#newInstance(java.lang.Class, org.apache.openjpa.enhance.StateManager, java.lang.Object, boolean)"><B>newInstance(Class, StateManager, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Create a new instance of the class and assign its state manager and oid.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingRepositoryValue.html#newInstance(java.lang.String, java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>newInstance(String, Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingRepositoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingRepositoryValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#newInstance(org.apache.openjpa.lib.conf.ConfigurationProvider)"><B>newInstance(ConfigurationProvider)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>Factory method for constructing a factory from properties.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#newInstance(org.apache.openjpa.kernel.FetchConfigurationImpl.ConfigurationState)"><B>newInstance(FetchConfigurationImpl.ConfigurationState)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#newInstance(org.apache.openjpa.jdbc.schema.Column[], int)"><B>newInstance(Column[], int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newInstance()"><B>newInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Create a new instance of this class.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#newInstance(org.apache.openjpa.jdbc.schema.Column[], int)"><B>newInstance(Column[], int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#newInstance(org.apache.openjpa.jdbc.schema.Column[], int)"><B>newInstance(Column[], int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Return a new row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#newInstance(org.apache.openjpa.jdbc.schema.Column[], int)"><B>newInstance(Column[], int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#newInstance(java.lang.Class)"><B>newInstance(Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Create a new instance of type <code>cls</code>.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newInstance(java.lang.Class)"><B>newInstance(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#newInstance(java.lang.Class)"><B>newInstance(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#newInstance(org.apache.openjpa.kernel.FetchConfigurationImpl.ConfigurationState)"><B>newInstance(FetchConfigurationImpl.ConfigurationState)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>Return a new hollow instance.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#newInstance(java.lang.String, java.lang.ClassLoader)"><B>newInstance(String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Create the instance with the given class name, using the given
 class loader.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#newInstance(java.lang.String, org.apache.openjpa.lib.conf.Configuration, java.lang.String, java.lang.ClassLoader)"><B>newInstance(String, Configuration, String, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Create and configure an instance with the given class name and
 properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#newInstance(java.lang.String, java.lang.Class, org.apache.openjpa.lib.conf.Configuration, boolean)"><B>newInstance(String, Class, Configuration, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>Allow subclasses to instantiate additional plugins.
<DT><A HREF="./org/apache/openjpa/util/Id.html#newInstance(java.lang.Class, java.lang.Object)"><B>newInstance(Class, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Id.html" title="class in org.apache.openjpa.util">Id</A>
<DD>Create an id from the given type and value; the value might be an
 id instnace, a stringified id, or a primary key value.
<DT><A HREF="./org/apache/openjpa/util/ProxyBean.html#newInstance(java.lang.Object)"><B>newInstance(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyBean.html" title="interface in org.apache.openjpa.util">ProxyBean</A>
<DD>Create a new instance of this proxy type with the same state as the
 given instance.
<DT><A HREF="./org/apache/openjpa/util/ProxyCalendar.html#newInstance()"><B>newInstance()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCalendar.html" title="interface in org.apache.openjpa.util">ProxyCalendar</A>
<DD>Return a new instance of this calendar type.
<DT><A HREF="./org/apache/openjpa/util/ProxyCollection.html#newInstance(java.lang.Class, java.util.Comparator, boolean)"><B>newInstance(Class, Comparator, boolean)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollection.html" title="interface in org.apache.openjpa.util">ProxyCollection</A>
<DD>Create a new instance of this proxy type.
<DT><A HREF="./org/apache/openjpa/util/ProxyDate.html#newInstance()"><B>newInstance()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyDate.html" title="interface in org.apache.openjpa.util">ProxyDate</A>
<DD>Return a new instance of this date type.
<DT><A HREF="./org/apache/openjpa/util/ProxyMap.html#newInstance(java.lang.Class, java.lang.Class, java.util.Comparator, boolean)"><B>newInstance(Class, Class, Comparator, boolean)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMap.html" title="interface in org.apache.openjpa.util">ProxyMap</A>
<DD>Create a new instance of this proxy type.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newInstanceAction(java.lang.Class)"><B>newInstanceAction(Class)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for clazz.newInstance().
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#newInverseManagerInstance()"><B>newInverseManagerInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return a new inverse manager instance using the configured plugin
 settings.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#newInverseManagerInstance()"><B>newInverseManagerInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#newJoins()"><B>newJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Returns a no-op joins object by default.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#newJoins()"><B>newJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#newJoins()"><B>newJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#newJoins()"><B>newJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return a new joins instance to use for traversing to related data.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#newJoins()"><B>newJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return a new instance to use for joining.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#newJoins()"><B>newJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#newJoins()"><B>newJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#newListenerCollection()"><B>newListenerCollection()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Individual query results will be registered as types changed
 listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#newListenerCollection()"><B>newListenerCollection()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Return a new concurrent container for listeners.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newLiteral(java.lang.Object, int)"><B>newLiteral(Object, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newLiteral(java.lang.Object, int)"><B>newLiteral(Object, int)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the given constant, which will be
 a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Number.html" title="class or interface in java.lang"><CODE>Number</CODE></A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang"><CODE>String</CODE></A>, or <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html" title="class or interface in java.lang"><CODE>Boolean</CODE></A> instance.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newLiteral(java.lang.Object, int)"><B>newLiteral(Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#newLockManagerInstance()"><B>newLockManagerInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return a new lock manager instance using the configured plugin settings.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#newLockManagerInstance()"><B>newLockManagerInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.html#newLogAdapter(java.lang.String)"><B>newLogAdapter(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.html#newLogAdapter(java.lang.String)"><B>newLogAdapter(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html#newLogAdapter(java.lang.String)"><B>newLogAdapter(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryAdapter.html" title="class in org.apache.openjpa.lib.log">LogFactoryAdapter</A>
<DD>Return a log adapter for the given channel.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#newLogImpl()"><B>newLogImpl()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>Create a new log.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#newLRSProxy()"><B>newLRSProxy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#newLRSProxy()"><B>newLRSProxy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#newLRSProxy()"><B>newLRSProxy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#newLRSProxy()"><B>newLRSProxy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#newLRSProxy()"><B>newLRSProxy()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Return a large result set proxy for this field.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newManagedObjectCache()"><B>newManagedObjectCache()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Create a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> to be used for the primary managed object cache.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newMappingInfo(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>newMappingInfo(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create raw mapping info for the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newMappingInfo(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>newMappingInfo(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create raw mapping info for the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newMappingInfo(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>newMappingInfo(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create raw mapping info for the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newMappingInfo(org.apache.openjpa.jdbc.meta.Version)"><B>newMappingInfo(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create raw mapping info for the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newMappingInfo(org.apache.openjpa.jdbc.meta.Discriminator)"><B>newMappingInfo(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create raw mapping info for the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#newMappingRepositoryInstance()"><B>newMappingRepositoryInstance()</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Return a new empty mapping repository of the configured type.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#newMappingRepositoryInstance()"><B>newMappingRepositoryInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html#newMapProxy(java.lang.Class, java.lang.Class, java.lang.Class, java.util.Comparator)"><B>newMapProxy(Class, Class, Class, Comparator)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util">ProxyManager</A>
<DD>Return a proxy for the given map type.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#newMapProxy(java.lang.Class, java.lang.Class, java.lang.Class, java.util.Comparator)"><B>newMapProxy(Class, Class, Class, Comparator)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#newMetaDataFactoryInstance()"><B>newMetaDataFactoryInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Create a new <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> to use with a repository.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#newMetaDataFactoryInstance()"><B>newMetaDataFactoryInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#newMetaDataFactoryInstance()"><B>newMetaDataFactoryInstance()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#newMetaDataFilter()"><B>newMetaDataFilter()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Return a metadata filter that identifies metadata resources when
 performing jar and classpath scans.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newMetaDataFilter()"><B>newMetaDataFilter()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#newMetaDataRepositoryInstance()"><B>newMetaDataRepositoryInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Create a new empty metadata repository of the configured type.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#newMetaDataRepositoryInstance()"><B>newMetaDataRepositoryInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newMultiClassLoaderAction()"><B>newMultiClassLoaderAction()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for new MultiClassLoader().
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#newObjectId(java.lang.Class)"><B>newObjectId(Class)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Create a new identity object for the given
 <code>PersistenceCapable</code> class.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#newObjectId(java.lang.Class, java.lang.String)"><B>newObjectId(Class, String)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Create a new identity object for the given
 <code>PersistenceCapable</code> class, using the <code>String</code>
 form of the constructor.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newObjectId(java.lang.Class, java.lang.Object)"><B>newObjectId(Class, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#newObjectId(java.lang.Class, java.lang.Object)"><B>newObjectId(Class, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#newObjectId(java.lang.Class, java.lang.Object)"><B>newObjectId(Class, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Create a new object id instance from the given value.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newOrder(org.apache.openjpa.meta.FieldMetaData, java.lang.String, boolean)"><B>newOrder(FieldMetaData, String, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create an <A HREF="./org/apache/openjpa/meta/Order.html" title="interface in org.apache.openjpa.meta"><CODE>Order</CODE></A> for the given field and declaration.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newOrderArray(int)"><B>newOrderArray(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newOrderArray(int)"><B>newOrderArray(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create an array of orders of the given size.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#newOuterJoins()"><B>newOuterJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#newOuterJoins()"><B>newOuterJoins()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return a new instance to use for outer joining.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#newOuterJoins()"><B>newOuterJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newParameter(java.lang.String, java.lang.Class)"><B>newParameter(String, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newParameter(java.lang.String, java.lang.Class)"><B>newParameter(String, Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing a parameter for the given value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newParameter(java.lang.String, java.lang.Class)"><B>newParameter(String, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#newParser(boolean)"><B>newParser(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Create a new metadata parser.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newParser(boolean)"><B>newParser(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newPath()"><B>newPath()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newPath(org.apache.openjpa.kernel.exps.Value)"><B>newPath(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newPath()"><B>newPath()</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing a path which will consist
 of a chain of 1 or more field names starting in the namespace of the
 candidate class.<br /> Example: <code>parent.address.city</code>
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newPath(org.apache.openjpa.kernel.exps.Value)"><B>newPath(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing a path which will consist
 of a chain of 1 or more field names starting in the namespace of the
 given value.<br /> Example: <code>var.address.city</code>
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newPath()"><B>newPath()</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newPath(org.apache.openjpa.kernel.exps.Value)"><B>newPath(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#newPluginValue(java.lang.String)"><B>newPluginValue(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#newPluginValue(java.lang.String)"><B>newPluginValue(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Create a new plugin value for sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#newPreparedStatementManager(org.apache.openjpa.jdbc.kernel.JDBCStore, java.sql.Connection)"><B>newPreparedStatementManager(JDBCStore, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>Return a new <A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>PreparedStatementManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#newPreparedStatementManager(org.apache.openjpa.jdbc.kernel.JDBCStore, java.sql.Connection)"><B>newPreparedStatementManager(JDBCStore, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html#newPreparedStatementManager(org.apache.openjpa.jdbc.kernel.JDBCStore, java.sql.Connection)"><B>newPreparedStatementManager(JDBCStore, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">OperationOrderUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newPrimaryKey(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>newPrimaryKey(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new primary key with the given name and owner table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newPrimaryKey(java.sql.ResultSet)"><B>newPrimaryKey(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a new primary key from the information in the schema metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#newPrimaryKey(java.sql.ResultSet)"><B>newPrimaryKey(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#newProxy(int)"><B>newProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#newProxy(int)"><B>newProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#newProxy(int)"><B>newProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#newProxy(int)"><B>newProxy(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Create a new hollow proxy instance for the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#newProxy(int)"><B>newProxy(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#newQuery(java.lang.String)"><B>newQuery(String)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#newQuery(java.lang.String)"><B>newQuery(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#newQuery(java.lang.String)"><B>newQuery(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#newQuery(java.lang.String, java.lang.Class, java.lang.Object)"><B>newQuery(String, Class, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Create a new query from the given data, with the given candidate class
 and language.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#newQuery(java.lang.String, java.lang.Object)"><B>newQuery(String, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Create a new query in the given language.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newQuery(java.lang.String, java.lang.Class, java.lang.Object)"><B>newQuery(String, Class, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newQuery(java.lang.String, java.lang.Object)"><B>newQuery(String, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#newQuery(java.lang.String, java.lang.Class, java.lang.Object)"><B>newQuery(String, Class, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#newQuery(java.lang.String, java.lang.Object)"><B>newQuery(String, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#newQuery(java.lang.String)"><B>newQuery(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#newQuery(java.lang.String)"><B>newQuery(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Return a query implementation suitable for this store.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newQueryImpl(java.lang.String, org.apache.openjpa.kernel.StoreQuery)"><B>newQueryImpl(String, StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Create a new query.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newQueryMetaData(java.lang.Class, java.lang.String)"><B>newQueryMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new query metadata instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newRelatedFieldOrder(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData, boolean)"><B>newRelatedFieldOrder(FieldMetaData, FieldMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newRelatedFieldOrder(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData, boolean)"><B>newRelatedFieldOrder(FieldMetaData, FieldMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Order by a field of the related type.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#newRemoteCommitProviderInstance()"><B>newRemoteCommitProviderInstance()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Create a remote commit provider from the configured plugin.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#newRemoteCommitProviderInstance()"><B>newRemoteCommitProviderInstance()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#newRepository()"><B>newRepository()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Create a new metadata repository.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#newResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>newResultList(ResultObjectProvider)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#newResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>newResultList(ResultObjectProvider)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#newResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>newResultList(ResultObjectProvider)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return a new result list for the current fetch configuration.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#newResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>newResultList(ResultObjectProvider)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#newRowManager()"><B>newRowManager()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>Return a new <A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>RowManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#newRowManager()"><B>newRowManager()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html#newRowManager()"><B>newRowManager()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">OperationOrderUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#newRowMap()"><B>newRowMap()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>Override this method to control what kind of map is used for
 the instantiated rows.
<DT><A HREF="./org/apache/openjpa/lib/rop/SoftRandomAccessResultList.html#newRowMap()"><B>newRowMap()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SoftRandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">SoftRandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#newSavepoint(java.lang.String, org.apache.openjpa.kernel.Broker)"><B>newSavepoint(String, Broker)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html#newSavepoint(java.lang.String, org.apache.openjpa.kernel.Broker)"><B>newSavepoint(String, Broker)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html" title="class in org.apache.openjpa.kernel">InMemorySavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SavepointManager.html#newSavepoint(java.lang.String, org.apache.openjpa.kernel.Broker)"><B>newSavepoint(String, Broker)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SavepointManager.html" title="interface in org.apache.openjpa.kernel">SavepointManager</A>
<DD>Return a new savepoint for the given name, which may be null.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newSchema(java.lang.String)"><B>newSchema(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new schema with the given name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html#newSelect()"><B>newSelect()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html" title="interface in org.apache.openjpa.jdbc.sql">SQLFactory</A>
<DD>Select factory.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#newSelect()"><B>newSelect()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#newSelects()"><B>newSelects()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newSequence(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>newSequence(String, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new sequence with the given name and owner schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newSequence(java.sql.ResultSet)"><B>newSequence(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a new sequence from the information in the schema metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newSequenceMetaData(java.lang.String)"><B>newSequenceMetaData(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newSequenceMetaData(java.lang.String)"><B>newSequenceMetaData(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new sequence metadata instance.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#newSerializationComparator()"><B>newSerializationComparator()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Create a new comparator for ordering objects that are to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#newSerializationComparator()"><B>newSerializationComparator()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#newSerializationComparator()"><B>newSerializationComparator()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#newSerializationComparator()"><B>newSerializationComparator()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Create a new comparator for ordering objects that are to be serialized.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#newSerializer()"><B>newSerializer()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Create a new metadata serializer.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newSerializer()"><B>newSerializer()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newServerSocketAction(int)"><B>newServerSocketAction(int)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for new ServerSocket().
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#newSet()"><B>newSet()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Create a new set for storing adds/removes/changes.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newSocketAction(java.net.InetAddress, int)"><B>newSocketAction(InetAddress, int)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for new Socket().
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#newStateManagerImpl(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>newStateManagerImpl(Object, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Create a state manager for the given oid and metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#newStoreException(java.lang.String, java.sql.SQLException[], java.lang.Object)"><B>newStoreException(String, SQLException[], Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newStoreException(java.lang.String, java.sql.SQLException[], java.lang.Object)"><B>newStoreException(String, SQLException[], Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return a new exception that wraps <code>causes</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#newStoreException(java.lang.String, java.sql.SQLException[], java.lang.Object)"><B>newStoreException(String, SQLException[], Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html#newStoreException(java.lang.String, java.sql.SQLException[], java.lang.Object)"><B>newStoreException(String, SQLException[], Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html" title="class in org.apache.openjpa.jdbc.sql">JDataStoreDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html#newStoreManager()"><B>newStoreManager()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreBrokerFactory.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html#newStoreManager()"><B>newStoreManager()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#newStoreManager()"><B>newStoreManager()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Return a new StoreManager for this runtime.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newSubquery(org.apache.openjpa.meta.ClassMetaData, boolean, java.lang.String)"><B>newSubquery(ClassMetaData, boolean, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newSubquery(org.apache.openjpa.meta.ClassMetaData, boolean, java.lang.String)"><B>newSubquery(ClassMetaData, boolean, String)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a subquery.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newSubquery(org.apache.openjpa.meta.ClassMetaData, boolean, java.lang.String)"><B>newSubquery(ClassMetaData, boolean, String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#newTable(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>newTable(String, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newTable(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>newTable(String, Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new table with the given name and owner schema.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#newTable(java.sql.ResultSet)"><B>newTable(ResultSet)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a new table from the information in the schema metadata.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newTemporaryClassLoaderAction(java.lang.ClassLoader)"><B>newTemporaryClassLoaderAction(ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for new TemporaryClassLoader().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#newUnboundVariable(java.lang.String, java.lang.Class)"><B>newUnboundVariable(String, Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#newUnboundVariable(java.lang.String, java.lang.Class)"><B>newUnboundVariable(String, Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an unbound variable.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#newUnboundVariable(java.lang.String, java.lang.Class)"><B>newUnboundVariable(String, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html#newUnion(int)"><B>newUnion(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html" title="interface in org.apache.openjpa.jdbc.sql">SQLFactory</A>
<DD>Union factory.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html#newUnion(org.apache.openjpa.jdbc.sql.Select[])"><B>newUnion(Select[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html" title="interface in org.apache.openjpa.jdbc.sql">SQLFactory</A>
<DD>Union factory.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#newUnion(int)"><B>newUnion(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#newUnion(org.apache.openjpa.jdbc.sql.Select[])"><B>newUnion(Select[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#newUnionSelect(org.apache.openjpa.jdbc.sql.SelectImpl, int)"><B>newUnionSelect(SelectImpl, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>Create a new union select with the given delegate and union position.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#newUnique(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>newUnique(String, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Return a new unique constraint with the given name and owner table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newValueMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>newValueMetaData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newValueMetaData(org.apache.openjpa.meta.FieldMetaData)"><B>newValueMetaData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new value metadata instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newValueOrder(org.apache.openjpa.meta.FieldMetaData, boolean)"><B>newValueOrder(FieldMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newValueOrder(org.apache.openjpa.meta.FieldMetaData, boolean)"><B>newValueOrder(FieldMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Order by the field value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#newVersion(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>newVersion(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Create version metadata for the given class.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newXMLAnnotationParser()"><B>newXMLAnnotationParser()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Create a new JAXB XML annotation parser.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newXMLClassMetaData(java.lang.Class, java.lang.String)"><B>newXMLClassMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new xml class metadata
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newXMLClassMetaDataArray(int)"><B>newXMLClassMetaDataArray(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new array of the proper xml class metadata subclass.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#newXMLFieldMetaData(java.lang.Class, java.lang.String)"><B>newXMLFieldMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Create a new xml field meta, add it to the fieldMap in the given 
     xml class metadata
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html#newXMLParser(boolean)"><B>newXMLParser(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newXMLParser(boolean)"><B>newXMLParser(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Create a new metadata parser.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html#newXMLSerializer()"><B>newXMLSerializer()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#newXMLSerializer()"><B>newXMLSerializer()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Create a new serializer
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#newZipFileAction(java.io.File)"><B>newZipFileAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for new ZipFile().
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>next(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#next()"><B>next()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Advance to the next row, or return false if there are no more rows
 in the result.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Implement this method to advance the input.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>next(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>next(StoreContext, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>Return the next value in the sequence.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>next(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>next(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel">UUIDHexSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)"><B>next(StoreContext, ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel">UUIDStringSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ClassMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/FileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">FileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html#next()"><B>next()</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIterator.html" title="interface in org.apache.openjpa.lib.meta">MetaDataIterator</A>
<DD>Return the next metadata resource.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataIteratorChain.html" title="class in org.apache.openjpa.lib.meta">MetaDataIteratorChain</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">URLMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#next()"><B>next()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Advance the input to the next position.
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop">ResultObjectProviderIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html#next()"><B>next()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html" title="class in org.apache.openjpa.lib.util">UUIDGenerator</A>
<DD>Return a unique UUID value.
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html#next()"><B>next()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence">Generator</A>
<DD>The next sequence value.
<DT><A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html#next()"><B>next()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/GeneratorImpl.html" title="class in org.apache.openjpa.persistence">GeneratorImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html#nextHex()"><B>nextHex()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html" title="class in org.apache.openjpa.lib.util">UUIDGenerator</A>
<DD>Return the next unique uuid value as a 32-character hex string.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#nextIndex()"><B>nextIndex()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#nextIndex()"><B>nextIndex()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#nextInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>nextInternal(JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Return the next sequence object.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#nextInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>nextInternal(JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#nextInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>nextInternal(JDBCStore, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#nextInternal()"><B>nextInternal()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Advance this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#nextInternal()"><B>nextInternal()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#nextInternal()"><B>nextInternal()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#nextSequenceQuery"><B>nextSequenceQuery</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html#nextString()"><B>nextString()</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html" title="class in org.apache.openjpa.lib.util">UUIDGenerator</A>
<DD>Return the next unique uuid value as a 16-character string.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#nextVersion(java.lang.Object)"><B>nextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>Return the next version given the current one, which may be null.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#nextVersion(java.lang.Object)"><B>nextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html#nextVersion(java.lang.Object)"><B>nextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">TimestampVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#NO_RESULT"><B>NO_RESULT</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#NO_TRANSACTION"><B>NO_TRANSACTION</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html#nodeSeen(java.lang.Object)"><B>nodeSeen(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html" title="interface in org.apache.openjpa.lib.graph">GraphVisitor</A>
<DD>May not be called.
<DT><A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html#nodeVisited(java.lang.Object)"><B>nodeVisited(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html" title="interface in org.apache.openjpa.lib.graph">GraphVisitor</A>
<DD>will only be called once per node
<DT><A HREF="./org/apache/openjpa/conf/BrokerValue.html#NON_FINALIZING_ALIAS"><B>NON_FINALIZING_ALIAS</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerValue.html" title="class in org.apache.openjpa.conf">BrokerValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#NON_UNIQUE_RESULT"><B>NON_UNIQUE_RESULT</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#NONE"><B>NONE</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html#NONE"><B>NONE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta">UpdateStrategies</A>
<DD>No update strategy.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#NONE"><B>NONE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>No value strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>NoneClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Strategy for classes that aren't mapped.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>NoneDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op Discriminator strategy.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>NoneFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>An unmapped field.<DT><A HREF="./org/apache/openjpa/kernel/NoneLockManager.html" title="class in org.apache.openjpa.kernel"><B>NoneLockManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A lock manager that does not perform any locking.<DT><A HREF="./org/apache/openjpa/kernel/NoneLockManager.html#NoneLockManager()"><B>NoneLockManager()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/NoneLockManager.html" title="class in org.apache.openjpa.kernel">NoneLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.html" title="class in org.apache.openjpa.lib.log"><B>NoneLogFactory</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>A log factory implementation that does not do any logging, as
 quickly as possible.<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.html#NoneLogFactory()"><B>NoneLogFactory()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log"><B>NoneLogFactory.NoneLog</B></A> - Class in <A HREF="./org/apache/openjpa/lib/log/package-summary.html">org.apache.openjpa.lib.log</A><DD>No-op log.<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#NoneLogFactory.NoneLog()"><B>NoneLogFactory.NoneLog()</B></A> - 
Constructor for class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta"><B>NoneMappingDefaults</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>No-op mapping defaults.<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#NoneMappingDefaults()"><B>NoneMappingDefaults()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta"><B>NoneMetaDataFactory</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>No-op metadata I/O to prevent attempts to load other classes.<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#NoneMetaDataFactory()"><B>NoneMetaDataFactory()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/NoneOrphanedKeyAction.html" title="class in org.apache.openjpa.event"><B>NoneOrphanedKeyAction</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Does nothing when an orphaned key is discovered.<DT><A HREF="./org/apache/openjpa/event/NoneOrphanedKeyAction.html#NoneOrphanedKeyAction()"><B>NoneOrphanedKeyAction()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/NoneOrphanedKeyAction.html" title="class in org.apache.openjpa.event">NoneOrphanedKeyAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta"><B>NoneStrategyInstaller</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Clears all mapping information from classes and installs none strategies.<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html#NoneStrategyInstaller(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>NoneStrategyInstaller(MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">NoneStrategyInstaller</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>NoneVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>No-op version strategy.<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta"><B>NonPersistentMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Metadata about a persistence-aware type.<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#NonPersistentMetaData(java.lang.Class, org.apache.openjpa.meta.MetaDataRepository, int)"><B>NonPersistentMetaData(Class, MetaDataRepository, int)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/Nonpolymorphic.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>Nonpolymorphic</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Indicates that the annotated relation is not entirely polymorphic.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/NonpolymorphicType.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>NonpolymorphicType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Nonpolymorphic settings.<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#nontransactional(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>nontransactional(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#nontransactional(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>nontransactional(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#nontransactional(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>nontransactional(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Make the given object nontransactional.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#nontransactional(java.lang.Object)"><B>nontransactional(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#nontransactional(java.lang.Object)"><B>nontransactional(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the given object nontransactional.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#nontransactionalAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>nontransactionalAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#nontransactionalAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>nontransactionalAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#nontransactionalAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>nontransactionalAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Make the given objects nontransactional.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#nontransactionalAll(java.util.Collection)"><B>nontransactionalAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#nontransactionalAll(java.lang.Object[])"><B>nontransactionalAll(Object[])</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#nontransactionalAll(java.util.Collection)"><B>nontransactionalAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the given objects nontransactional.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#nontransactionalAll(java.lang.Object[])"><B>nontransactionalAll(Object[])</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the given objects nontransactional.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#nontransactionalRead"><B>nontransactionalRead</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#nontransactionalWrite"><B>nontransactionalWrite</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence"><B>NonUniqueResultException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Unique query returned multipl results.<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#NonUniqueResultException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>NonUniqueResultException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NonUniqueResultException.html" title="class in org.apache.openjpa.util"><B>NonUniqueResultException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type thrown when a query was configured to return
 a single result, and multiple results were found.<DT><A HREF="./org/apache/openjpa/util/NonUniqueResultException.html#NonUniqueResultException(org.apache.openjpa.lib.util.Localizer.Message)"><B>NonUniqueResultException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NonUniqueResultException.html" title="class in org.apache.openjpa.util">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NonUniqueResultException.html#NonUniqueResultException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Object)"><B>NonUniqueResultException(Localizer.Message, Object)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NonUniqueResultException.html" title="class in org.apache.openjpa.util">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence"><B>NoResultException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Unique query returned no results.<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#NoResultException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>NoResultException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NoResultException.html" title="class in org.apache.openjpa.util"><B>NoResultException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type thrown when a query was configured to return
 a single result, and no result was found.<DT><A HREF="./org/apache/openjpa/util/NoResultException.html#NoResultException(org.apache.openjpa.lib.util.Localizer.Message)"><B>NoResultException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NoResultException.html" title="class in org.apache.openjpa.util">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NoResultException.html#NoResultException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Object)"><B>NoResultException(Localizer.Message, Object)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NoResultException.html" title="class in org.apache.openjpa.util">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#not(org.apache.openjpa.kernel.exps.Expression)"><B>not(Expression)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#not(org.apache.openjpa.kernel.exps.Expression)"><B>not(Expression)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the inverse of this expression.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#not(org.apache.openjpa.kernel.exps.Expression)"><B>not(Expression)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#notEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>notEqual(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#notEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>notEqual(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#notEqual(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>notEqual(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#notMatches(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.String, java.lang.String, java.lang.String)"><B>notMatches(Value, Value, String, String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#notMatches(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.String, java.lang.String, java.lang.String)"><B>notMatches(Value, Value, String, String, String)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return whether the string does not match the given pattern.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#notMatches(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.String, java.lang.String, java.lang.String)"><B>notMatches(Value, Value, String, String, String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/NoTransactionException.html" title="class in org.apache.openjpa.util"><B>NoTransactionException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type thrown when attempting a transactional operation without
 an active transaction.<DT><A HREF="./org/apache/openjpa/util/NoTransactionException.html#NoTransactionException(org.apache.openjpa.lib.util.Localizer.Message)"><B>NoTransactionException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/NoTransactionException.html" title="class in org.apache.openjpa.util">NoTransactionException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html#NULL"><B>NULL</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>
<DD>State with no joins.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#NULL"><B>NULL</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Null discriminator value marker.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#NULL"><B>NULL</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#NULL"><B>NULL</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#NULL_CMP"><B>NULL_CMP</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Initialization flag indicating that this value will be compared to null.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_DEFAULT"><B>NULL_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying to use a datastore default value to persist null
 values in object fields.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_EXCEPTION"><B>NULL_EXCEPTION</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying to throw an exception when attempting to persist
 null values in object fields.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_NONE"><B>NULL_NONE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying to use a datastore null to persist null values
 in object fields.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_UNSET"><B>NULL_UNSET</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Constant specifying that no null-value was given.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#nullableAsObject"><B>nullableAsObject</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#nullJoins()"><B>nullJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#nullJoins()"><B>nullJoins()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#nullPlusNonNullIsNull()"><B>nullPlusNonNullIsNull()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#nullsAreSortedAtEnd()"><B>nullsAreSortedAtEnd()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#nullsAreSortedAtStart()"><B>nullsAreSortedAtStart()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#nullsAreSortedHigh()"><B>nullsAreSortedHigh()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#nullsAreSortedLow()"><B>nullsAreSortedLow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#nullTypeName"><B>nullTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#NUMBER"><B>NUMBER</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>NumberVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Uses a version number for optimistic versioning.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#NumberVersionStrategy()"><B>NumberVersionStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#numericTypeName"><B>numericTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#OBJECT"><B>OBJECT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#OBJECT_EXISTS"><B>OBJECT_EXISTS</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#OBJECT_NOT_FOUND"><B>OBJECT_NOT_FOUND</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#objectChanged()"><B>objectChanged()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>Implement this method to synchronize internal data with the new
 object value.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#objectChanged()"><B>objectChanged()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#objectChanged()"><B>objectChanged()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore"><B>ObjectData</B></A> - Class in <A HREF="./org/apache/openjpa/xmlstore/package-summary.html">org.apache.openjpa.xmlstore</A><DD>In-memory form of data in datastore backing a single persistent object.<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#ObjectData(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>ObjectData(Object, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Create the object without underlying data.
<DT><A HREF="./org/apache/openjpa/util/ObjectExistsException.html" title="class in org.apache.openjpa.util"><B>ObjectExistsException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type reserved for conflicts with existing objects.<DT><A HREF="./org/apache/openjpa/util/ObjectExistsException.html#ObjectExistsException(org.apache.openjpa.lib.util.Localizer.Message)"><B>ObjectExistsException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectExistsException.html" title="class in org.apache.openjpa.util">ObjectExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util"><B>ObjectId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Identity type appropriate for object primary key fields and shared
 id classes.<DT><A HREF="./org/apache/openjpa/util/ObjectId.html#ObjectId(java.lang.Class, java.lang.Object)"><B>ObjectId(Class, Object)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util">ObjectId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectId.html#ObjectId(java.lang.Class, java.lang.Object, boolean)"><B>ObjectId(Class, Object, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util">ObjectId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ObjectIdClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Class mapping for embedded object id fields.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdClassStrategy.html#ObjectIdClassStrategy()"><B>ObjectIdClassStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel"><B>ObjectIdStateManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>State manager used to access state of embedded object id primary key fields.<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#ObjectIdStateManager(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>ObjectIdStateManager(Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>Constructor; supply embedded object id and its owner.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ObjectIdValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for embedded object id fields.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html#ObjectIdValueHandler()"><B>ObjectIdValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html" title="class in org.apache.openjpa.util"><B>ObjectNotFoundException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type reserved for failed object lookups.<DT><A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html#ObjectNotFoundException(org.apache.openjpa.lib.util.Localizer.Message)"><B>ObjectNotFoundException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html" title="class in org.apache.openjpa.util">ObjectNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html#ObjectNotFoundException(java.lang.Object)"><B>ObjectNotFoundException(Object)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html" title="class in org.apache.openjpa.util">ObjectNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html#ObjectNotFoundException(java.util.Collection, java.lang.Throwable[])"><B>ObjectNotFoundException(Collection, Throwable[])</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ObjectNotFoundException.html" title="class in org.apache.openjpa.util">ObjectNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf"><B>ObjectValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>An object <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#ObjectValue(java.lang.String)"><B>ObjectValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#objectValueRequiresLoad(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>objectValueRequiresLoad(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#objectValueRequiresLoad(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>objectValueRequiresLoad(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#objectValueRequiresLoad(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>objectValueRequiresLoad(ValueMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Return whether this handler potentially must load extra data to extract
 the object value from its datastore representation.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#offer(java.lang.Object)"><B>offer(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Inserts the specified element at the tail of this queue.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html#offer(java.lang.Object)"><B>offer(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">Queue</A>
<DD>Inserts the specified element into this queue if it is possible to do
 so immediately without violating capacity restrictions.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#OID"><B>OID</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#OID_ALLOW_NEW"><B>OID_ALLOW_NEW</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#OID_COPY"><B>OID_COPY</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#OID_NODELETED"><B>OID_NODELETED</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#OID_NOVALIDATE"><B>OID_NOVALIDATE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#onException(javax.jms.JMSException)"><B>onException(JMSException)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ExpirationListener.html#onExpire(org.apache.openjpa.datacache.ExpirationEvent)"><B>onExpire(ExpirationEvent)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ExpirationListener.html" title="interface in org.apache.openjpa.datacache">ExpirationListener</A>
<DD>Notification that an object has expired from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent)"><B>onTypesChanged(TypesChangedEvent)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent)"><B>onTypesChanged(TypesChangedEvent)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/TypesChangedListener.html#onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent)"><B>onTypesChanged(TypesChangedEvent)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/TypesChangedListener.html" title="interface in org.apache.openjpa.datacache">TypesChangedListener</A>
<DD>Notification that instances of persistent types have changed.
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_ATTACH"><B>OP_ATTACH</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_DELETE"><B>OP_DELETE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryOperations.html#OP_DELETE"><B>OP_DELETE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryOperations.html" title="interface in org.apache.openjpa.kernel">QueryOperations</A>
<DD>Symbolic constant that indicates that this query will be
 performing a delete operation.
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_DETACH"><B>OP_DETACH</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_EVICT"><B>OP_EVICT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_LOCK"><B>OP_LOCK</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_NONTRANSACTIONAL"><B>OP_NONTRANSACTIONAL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_PERSIST"><B>OP_PERSIST</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_REFRESH"><B>OP_REFRESH</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_RELEASE"><B>OP_RELEASE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_RETRIEVE"><B>OP_RETRIEVE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryOperations.html#OP_SELECT"><B>OP_SELECT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryOperations.html" title="interface in org.apache.openjpa.kernel">QueryOperations</A>
<DD>Symbolic constant that indicates that this query will be
 performing a select operation.
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#OP_TRANSACTIONAL"><B>OP_TRANSACTIONAL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryOperations.html#OP_UPDATE"><B>OP_UPDATE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryOperations.html" title="interface in org.apache.openjpa.kernel">QueryOperations</A>
<DD>Symbolic constant that indicates that this query will be
 performing a update operation.
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel"><B>OpCallbacks</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Allows facades to control the particulars of persistence operations
 through callbacks.<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>No-op implementation.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Override if desired.
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#open()"><B>open()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Open the result.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#open()"><B>open()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#openBrace(int)"><B>openBrace(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#openClassBrace(org.apache.openjpa.lib.util.CodeFormat)"><B>openClassBrace(CodeFormat)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Append the opening code-level brace to the code; this can be
 overridden to add code to the top of the class.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#OPENJPA"><B>OPENJPA</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#openjpa3GeneratedKeyNames"><B>openjpa3GeneratedKeyNames</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Flag to use OpenJPA 0.3 style naming for auto assign sequence name and
 trigger name for backwards compatibility.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf"><B>OpenJPAConfiguration</B></A> - Interface in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Defines the properties necessary to configure runtime properties and
 connect to a data source.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf"><B>OpenJPAConfigurationImpl</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Implementation of the <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf"><CODE>OpenJPAConfiguration</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#OpenJPAConfigurationImpl()"><B>OpenJPAConfigurationImpl()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#OpenJPAConfigurationImpl(boolean)"><B>OpenJPAConfigurationImpl(boolean)</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#OpenJPAConfigurationImpl(boolean, boolean)"><B>OpenJPAConfigurationImpl(boolean, boolean)</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAEntityManager</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Interface implemented by OpenJPA entity managers.<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAEntityManagerFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Interface implemented by OpenJPA entity manager factories.<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAEntityManagerFactorySPI</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAEntityManagerSPI</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAEntityTransaction</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Extension of the JPA <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityTransaction.html" title="class or interface in javax.persistence"><CODE>EntityTransaction</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util"><B>OpenJPAException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type for all OpenJPA exceptions.<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#OpenJPAException()"><B>OpenJPAException()</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#OpenJPAException(java.lang.String)"><B>OpenJPAException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Constructor; supply message.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#OpenJPAException(org.apache.openjpa.lib.util.Localizer.Message)"><B>OpenJPAException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Constructor; supply message.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#OpenJPAException(java.lang.Throwable)"><B>OpenJPAException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Construct with cause.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#OpenJPAException(java.lang.String, java.lang.Throwable)"><B>OpenJPAException(String, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Construct with message and cause.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#OpenJPAException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>OpenJPAException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Construct with message and cause.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><B>OpenJPAId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Identity class extended by builtin OpenJPA identity objects.<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#OpenJPAId()"><B>OpenJPAId()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#OpenJPAId(java.lang.Class)"><B>OpenJPAId(Class)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#OpenJPAId(java.lang.Class, boolean)"><B>OpenJPAId(Class, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence"><B>OpenJPAPersistence</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Static helper methods for JPA users.<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html#OpenJPAPersistence()"><B>OpenJPAPersistence()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAPersistence.html" title="class in org.apache.openjpa.persistence">OpenJPAPersistence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html" title="interface in org.apache.openjpa.conf"><B>OpenJPAProductDerivation</B></A> - Interface in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Adds datastore based extension to ProductDerivation.<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAQuery</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Interface implemented by OpenJPA queries.<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html" title="interface in org.apache.openjpa.persistence"><B>OpenJPAQuerySPI</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel"><B>OpenJPASavepoint</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Represents a savepoint where operations afterwards can be rolled
 back and restored to this point<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#OpenJPASavepoint(org.apache.openjpa.kernel.Broker, java.lang.String, boolean)"><B>OpenJPASavepoint(Broker, String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><B>OpenJPAStateManager</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Interface implemented by OpenJPA state managers.<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#openjpaTables"><B>openjpaTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#openjpaTables"><B>openjpaTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf"><B>OpenJPAVersion</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>This class contains version information for OpenJPA.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#OpenJPAVersion()"><B>OpenJPAVersion()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#openParen(boolean)"><B>openParen(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#openStreamAction(java.net.URL)"><B>openStreamAction(URL)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for url.openStream().
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#operation"><B>operation</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>OperationOrderUpdateManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Update manager that writes SQL in object-level operation order.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html#OperationOrderUpdateManager()"><B>OperationOrderUpdateManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">OperationOrderUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#optimistic"><B>optimistic</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#OPTIMISTIC"><B>OPTIMISTIC</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OptimisticException.html" title="class in org.apache.openjpa.util"><B>OptimisticException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type for optimistic concurrency violations.<DT><A HREF="./org/apache/openjpa/util/OptimisticException.html#OptimisticException(org.apache.openjpa.lib.util.Localizer.Message)"><B>OptimisticException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OptimisticException.html" title="class in org.apache.openjpa.util">OptimisticException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OptimisticException.html#OptimisticException(java.lang.Object)"><B>OptimisticException(Object)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OptimisticException.html" title="class in org.apache.openjpa.util">OptimisticException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OptimisticException.html#OptimisticException(java.lang.Throwable[])"><B>OptimisticException(Throwable[])</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OptimisticException.html" title="class in org.apache.openjpa.util">OptimisticException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OptimisticException.html#OptimisticException(java.util.Collection, java.lang.Throwable[])"><B>OptimisticException(Collection, Throwable[])</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OptimisticException.html" title="class in org.apache.openjpa.util">OptimisticException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence"><B>OptimisticLockException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Optimistic concurrency violation.<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#OptimisticLockException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>OptimisticLockException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#optimizeClause"><B>optimizeClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#optimizeMultiTableDeletes"><B>optimizeMultiTableDeletes</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>Whether to inline multi-table bulk-delete operations into MySQL's 
 combined <code>DELETE FROM foo, bar, baz</code> syntax.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_DATASTORE_CONNECTION"><B>OPTION_DATASTORE_CONNECTION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support returning the datastore connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_EMBEDDED_COLLECTION_RELATION"><B>OPTION_EMBEDDED_COLLECTION_RELATION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support collections of embedded
 relations to other persistence capable objects.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_EMBEDDED_MAP_RELATION"><B>OPTION_EMBEDDED_MAP_RELATION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support maps of embedded
 relations to other persistence capable objects.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_EMBEDDED_RELATION"><B>OPTION_EMBEDDED_RELATION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support embedded relations to other
 persistence capable objects.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_ID_APPLICATION"><B>OPTION_ID_APPLICATION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support application identity.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_ID_DATASTORE"><B>OPTION_ID_DATASTORE</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support application identity.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_INC_FLUSH"><B>OPTION_INC_FLUSH</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support incremental flushing.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_JDBC_CONNECTION"><B>OPTION_JDBC_CONNECTION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support returning the datastore connection
 that is a JDBC Connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_NONTRANS_READ"><B>OPTION_NONTRANS_READ</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support nontransactional reads.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_NULL_CONTAINER"><B>OPTION_NULL_CONTAINER</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtime that can differentiate between null and empty
 container fields.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_OPTIMISTIC"><B>OPTION_OPTIMISTIC</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support optimistic transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_QUERY_SQL"><B>OPTION_QUERY_SQL</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for SQL support.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_TYPE_ARRAY"><B>OPTION_TYPE_ARRAY</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support persistent array fields.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_TYPE_COLLECTION"><B>OPTION_TYPE_COLLECTION</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support persistent collection fields.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_TYPE_MAP"><B>OPTION_TYPE_MAP</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that support persistent map fields.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_VALUE_AUTOASSIGN"><B>OPTION_VALUE_AUTOASSIGN</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that the autoassign value strategy.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#OPTION_VALUE_INCREMENT"><B>OPTION_VALUE_INCREMENT</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Option for runtimes that the increment value strategy.
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util"><B>Options</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A specialization of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html" title="class or interface in java.util"><CODE>Properties</CODE></A> map type with the added
 abilities to read application options from the command line and to
 use bean patterns to set an object's properties via command-line the
 stored mappings.<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#Options()"><B>Options()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#Options(java.util.Properties)"><B>Options(Properties)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Construct the options instance with the given set of defaults.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#or(org.apache.openjpa.kernel.exps.Expression, org.apache.openjpa.kernel.exps.Expression)"><B>or(Expression, Expression)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#or(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.Joins)"><B>or(Joins, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#or(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.Joins)"><B>or(Joins, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>OR the given joins together.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#or(org.apache.openjpa.jdbc.sql.Joins, org.apache.openjpa.jdbc.sql.Joins)"><B>or(Joins, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#or(org.apache.openjpa.kernel.exps.Expression, org.apache.openjpa.kernel.exps.Expression)"><B>or(Expression, Expression)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the two expressions OR'd together.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#or(org.apache.openjpa.kernel.exps.Expression, org.apache.openjpa.kernel.exps.Expression)"><B>or(Expression, Expression)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>OracleDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Oracle.<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#OracleDictionary()"><B>OracleDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#order(org.apache.openjpa.kernel.exps.QueryExpressions, java.util.List, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>order(QueryExpressions, List, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>Order the given list of matches on the given value.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#order(java.lang.Object)"><B>order(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Order this field value when it is loaded.
<DT><A HREF="./org/apache/openjpa/meta/Order.html" title="interface in org.apache.openjpa.meta"><B>Order</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Order a field.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#orderBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><B>orderBy(Select, ExpContext, ExpState, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#orderBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><B>orderBy(Select, ExpContext, ExpState, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Order by this value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(org.apache.openjpa.jdbc.schema.Column, boolean, boolean)"><B>orderBy(Column, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(org.apache.openjpa.jdbc.schema.Column, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(Column, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(org.apache.openjpa.jdbc.schema.Column[], boolean, boolean)"><B>orderBy(Column[], boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(org.apache.openjpa.jdbc.schema.Column[], boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(Column[], boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean)"><B>orderBy(SQLBuffer, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(SQLBuffer, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(java.lang.String, boolean, boolean)"><B>orderBy(String, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderBy(java.lang.String, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(String, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(org.apache.openjpa.jdbc.schema.Column, boolean, boolean)"><B>orderBy(Column, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Order by the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(org.apache.openjpa.jdbc.schema.Column, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(Column, boolean, Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Order by the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(org.apache.openjpa.jdbc.schema.Column[], boolean, boolean)"><B>orderBy(Column[], boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Order by the given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(org.apache.openjpa.jdbc.schema.Column[], boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(Column[], boolean, Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Order by the given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean)"><B>orderBy(SQLBuffer, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add an ORDER BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(SQLBuffer, boolean, Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add an ORDER BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(java.lang.String, boolean, boolean)"><B>orderBy(String, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add an ORDER BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderBy(java.lang.String, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(String, boolean, Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add an ORDER BY clause.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(org.apache.openjpa.jdbc.schema.Column, boolean, boolean)"><B>orderBy(Column, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(org.apache.openjpa.jdbc.schema.Column, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(Column, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(org.apache.openjpa.jdbc.schema.Column[], boolean, boolean)"><B>orderBy(Column[], boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(org.apache.openjpa.jdbc.schema.Column[], boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(Column[], boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean)"><B>orderBy(SQLBuffer, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(SQLBuffer, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(java.lang.String, boolean, boolean)"><B>orderBy(String, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderBy(java.lang.String, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderBy(String, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Order on the primary key columns of the given mapping,
 joining to superclasses as necessary to get all columns needed to
 construct an object id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, Joins, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select and order on the primary key columns of the given mapping,
 joining to superclasses as necessary to get all columns needed to
 construct an object id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, Joins, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#orderByPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, boolean, org.apache.openjpa.jdbc.sql.Joins, boolean, boolean)"><B>orderByPrimaryKey(ClassMapping, boolean, Joins, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Allow unions to set aliases on order columns.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/OrderColumn.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>OrderColumn</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Surrogate order column.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html#orderDirty()"><B>orderDirty()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConstraintUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">ConstraintUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html#orderDirty()"><B>orderDirty()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/OperationOrderUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">OperationOrderUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html#orderDirty()"><B>orderDirty()</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel">UpdateManager</A>
<DD>Whether the store context should maintain the order in which instances
 are dirtied.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orderIdxs"><B>orderIdxs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#ordering"><B>ordering</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#ordering"><B>ordering</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#orderingClauses"><B>orderingClauses</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html" title="class in org.apache.openjpa.kernel"><B>OrderingMergedResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Merged result object provider specialization that extracts ordering
 values from results for comparison.<DT><A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html#OrderingMergedResultObjectProvider(org.apache.openjpa.lib.rop.ResultObjectProvider[], boolean[], org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><B>OrderingMergedResultObjectProvider(ResultObjectProvider[], boolean[], StoreQuery.Executor, StoreQuery, Object[])</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html" title="class in org.apache.openjpa.kernel">OrderingMergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html#OrderingMergedResultObjectProvider(org.apache.openjpa.lib.rop.ResultObjectProvider[], boolean[], org.apache.openjpa.kernel.StoreQuery.Executor[], org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><B>OrderingMergedResultObjectProvider(ResultObjectProvider[], boolean[], StoreQuery.Executor[], StoreQuery, Object[])</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OrderingMergedResultObjectProvider.html" title="class in org.apache.openjpa.kernel">OrderingMergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#orderLocal(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Joins)"><B>orderLocal(Select, ClassMapping, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Add ordering to the given select for all non-relation order values,
 including the synthetic order column, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#orderRelation(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Joins)"><B>orderRelation(Select, ClassMapping, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Add ordering to the given select for all relation-based values.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#orders"><B>orders</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/package-summary.html"><B>org.apache.openjpa.abstractstore</B></A> - package org.apache.openjpa.abstractstore<DD><strong>OpenJPA Abstract StoreManager Implementation</strong><DT><A HREF="./org/apache/openjpa/ant/package-summary.html"><B>org.apache.openjpa.ant</B></A> - package org.apache.openjpa.ant<DD><strong>OpenJPA Ant Tasks</strong><DT><A HREF="./org/apache/openjpa/conf/package-summary.html"><B>org.apache.openjpa.conf</B></A> - package org.apache.openjpa.conf<DD><strong>OpenJPA Configuration</strong><DT><A HREF="./org/apache/openjpa/datacache/package-summary.html"><B>org.apache.openjpa.datacache</B></A> - package org.apache.openjpa.datacache<DD><strong>OpenJPA Data Cache</strong><DT><A HREF="./org/apache/openjpa/ee/package-summary.html"><B>org.apache.openjpa.ee</B></A> - package org.apache.openjpa.ee<DD><strong>OpenJPA Enterprise Extensions</strong><DT><A HREF="./org/apache/openjpa/enhance/package-summary.html"><B>org.apache.openjpa.enhance</B></A> - package org.apache.openjpa.enhance<DD><strong>OpenJPA Enhancer</strong><DT><A HREF="./org/apache/openjpa/event/package-summary.html"><B>org.apache.openjpa.event</B></A> - package org.apache.openjpa.event<DD><strong>OpenJPA Events</strong><DT><A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html"><B>org.apache.openjpa.jdbc.ant</B></A> - package org.apache.openjpa.jdbc.ant<DD><strong>OpenJPA-JDBC Ant Tasks</strong><DT><A HREF="./org/apache/openjpa/jdbc/conf/package-summary.html"><B>org.apache.openjpa.jdbc.conf</B></A> - package org.apache.openjpa.jdbc.conf<DD><strong>OpenJPA-JDBC Configuration</strong><DT><A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html"><B>org.apache.openjpa.jdbc.kernel</B></A> - package org.apache.openjpa.jdbc.kernel<DD><strong>OpenJPA-JDBC Runtime Kernel</strong><DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html"><B>org.apache.openjpa.jdbc.kernel.exps</B></A> - package org.apache.openjpa.jdbc.kernel.exps<DD><strong>OpenJPA-JDBC Expression Tree</strong><DT><A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html"><B>org.apache.openjpa.jdbc.meta</B></A> - package org.apache.openjpa.jdbc.meta<DD><strong>OpenJPA-JDBC ORM Metadata</strong><DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html"><B>org.apache.openjpa.jdbc.meta.strats</B></A> - package org.apache.openjpa.jdbc.meta.strats<DD><strong>OpenJPA-JDBC ORM Strategies</strong><DT><A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html"><B>org.apache.openjpa.jdbc.schema</B></A> - package org.apache.openjpa.jdbc.schema<DD><strong>OpenJPA-JDBC Schema Management</strong><DT><A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html"><B>org.apache.openjpa.jdbc.sql</B></A> - package org.apache.openjpa.jdbc.sql<DD><strong>OpenJPA-JDBC SQL Abstraction</strong><DT><A HREF="./org/apache/openjpa/kernel/package-summary.html"><B>org.apache.openjpa.kernel</B></A> - package org.apache.openjpa.kernel<DD><strong>OpenJPA Runtime Kernel</strong><DT><A HREF="./org/apache/openjpa/kernel/exps/package-summary.html"><B>org.apache.openjpa.kernel.exps</B></A> - package org.apache.openjpa.kernel.exps<DD><strong>OpenJPA Expression Tree</strong><DT><A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html"><B>org.apache.openjpa.kernel.jpql</B></A> - package org.apache.openjpa.kernel.jpql<DD><strong>JPA Query Language Support</strong><DT><A HREF="./org/apache/openjpa/lib/ant/package-summary.html"><B>org.apache.openjpa.lib.ant</B></A> - package org.apache.openjpa.lib.ant<DD><strong>Ant Integration</strong><DT><A HREF="./org/apache/openjpa/lib/conf/package-summary.html"><B>org.apache.openjpa.lib.conf</B></A> - package org.apache.openjpa.lib.conf<DD><strong>Configuration Framework</strong><DT><A HREF="./org/apache/openjpa/lib/graph/package-summary.html"><B>org.apache.openjpa.lib.graph</B></A> - package org.apache.openjpa.lib.graph<DD><strong>Graph Abstraction</strong><DT><A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html"><B>org.apache.openjpa.lib.jdbc</B></A> - package org.apache.openjpa.lib.jdbc<DD><strong>Database Connectivity</strong><DT><A HREF="./org/apache/openjpa/lib/log/package-summary.html"><B>org.apache.openjpa.lib.log</B></A> - package org.apache.openjpa.lib.log<DD><strong>Logging</strong><DT><A HREF="./org/apache/openjpa/lib/meta/package-summary.html"><B>org.apache.openjpa.lib.meta</B></A> - package org.apache.openjpa.lib.meta<DD><strong>Metadata Framework</strong><DT><A HREF="./org/apache/openjpa/lib/rop/package-summary.html"><B>org.apache.openjpa.lib.rop</B></A> - package org.apache.openjpa.lib.rop<DD><strong>Result Object Provider Framework</strong><DT><A HREF="./org/apache/openjpa/lib/util/package-summary.html"><B>org.apache.openjpa.lib.util</B></A> - package org.apache.openjpa.lib.util<DD><strong>General Utilities</strong><DT><A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html"><B>org.apache.openjpa.lib.util.concurrent</B></A> - package org.apache.openjpa.lib.util.concurrent<DD><strong>Concurrent Utilities</strong><DT><A HREF="./org/apache/openjpa/lib/xml/package-summary.html"><B>org.apache.openjpa.lib.xml</B></A> - package org.apache.openjpa.lib.xml<DD><strong>XML Handling</strong><DT><A HREF="./org/apache/openjpa/meta/package-summary.html"><B>org.apache.openjpa.meta</B></A> - package org.apache.openjpa.meta<DD><strong>OpenJPA Metadata</strong><DT><A HREF="./org/apache/openjpa/persistence/package-summary.html"><B>org.apache.openjpa.persistence</B></A> - package org.apache.openjpa.persistence<DD><strong>OpenJPA JPA</strong><DT><A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html"><B>org.apache.openjpa.persistence.jdbc</B></A> - package org.apache.openjpa.persistence.jdbc<DD><strong>OpenJPA JPA-JDBC</strong><DT><A HREF="./org/apache/openjpa/util/package-summary.html"><B>org.apache.openjpa.util</B></A> - package org.apache.openjpa.util<DD><strong>OpenJPA Utilities</strong><DT><A HREF="./org/apache/openjpa/xmlstore/package-summary.html"><B>org.apache.openjpa.xmlstore</B></A> - package org.apache.openjpa.xmlstore<DD><strong>XML Store</strong><DT><A HREF="./org/apache/openjpa/event/ExceptionOrphanedKeyAction.html#orphan(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>orphan(Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/ExceptionOrphanedKeyAction.html" title="class in org.apache.openjpa.event">ExceptionOrphanedKeyAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#orphan(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>orphan(Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/NoneOrphanedKeyAction.html#orphan(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>orphan(Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/NoneOrphanedKeyAction.html" title="class in org.apache.openjpa.event">NoneOrphanedKeyAction</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/OrphanedKeyAction.html#orphan(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData)"><B>orphan(Object, OpenJPAStateManager, ValueMetaData)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/OrphanedKeyAction.html" title="interface in org.apache.openjpa.event">OrphanedKeyAction</A>
<DD>Callback received when OpenJPA discovers an orphaned key.
<DT><A HREF="./org/apache/openjpa/event/OrphanedKeyAction.html" title="interface in org.apache.openjpa.event"><B>OrphanedKeyAction</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Perform an action when OpenJPA detects an orphaned key in the database.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#orphanedKeyPlugin"><B>orphanedKeyPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#othersDeletesAreVisible(int)"><B>othersDeletesAreVisible(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#othersInsertsAreVisible(int)"><B>othersInsertsAreVisible(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#othersUpdatesAreVisible(int)"><B>othersUpdatesAreVisible(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#otherTypeName"><B>otherTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#outer(org.apache.openjpa.jdbc.sql.Joins)"><B>outer(Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#outer(org.apache.openjpa.jdbc.sql.Joins)"><B>outer(Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return a join set making the given joins outer joins.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#outer(org.apache.openjpa.jdbc.sql.Joins)"><B>outer(Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#outerJoin(org.apache.openjpa.jdbc.schema.ForeignKey, boolean, boolean)"><B>outerJoin(ForeignKey, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Join the columns of the given foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#outerJoin(org.apache.openjpa.jdbc.schema.ForeignKey, boolean, boolean)"><B>outerJoin(ForeignKey, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#outerJoin(org.apache.openjpa.jdbc.schema.ForeignKey, boolean, boolean)"><B>outerJoin(ForeignKey, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#outerJoinClause"><B>outerJoinClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#outerJoinRelation(java.lang.String, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping, int, boolean, boolean)"><B>outerJoinRelation(String, ForeignKey, ClassMapping, int, boolean, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Join the columns of the given foreign key, which represents a relation
 via the given field name.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#outerJoinRelation(java.lang.String, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping, int, boolean, boolean)"><B>outerJoinRelation(String, ForeignKey, ClassMapping, int, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#outerJoinRelation(java.lang.String, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.meta.ClassMapping, int, boolean, boolean)"><B>outerJoinRelation(String, ForeignKey, ClassMapping, int, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><B>overflowRemoved(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><B>overflowRemoved(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><B>overflowRemoved(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><B>overflowRemoved(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/SizedMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><B>overflowRemoved(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/SizedMap.html" title="interface in org.apache.openjpa.lib.util">SizedMap</A>
<DD>Overridable callback for when an overflow entry is automatically removed.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#ownDeletesAreVisible(int)"><B>ownDeletesAreVisible(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#ownInsertsAreVisible(int)"><B>ownInsertsAreVisible(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#ownUpdatesAreVisible(int)"><B>ownUpdatesAreVisible(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/kernel/ResultPacker.html#pack(java.lang.Object)"><B>pack(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ResultPacker.html" title="class in org.apache.openjpa.kernel">ResultPacker</A>
<DD>Pack the given object into an instance of the query's result class.
<DT><A HREF="./org/apache/openjpa/kernel/ResultPacker.html#pack(java.lang.Object[])"><B>pack(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ResultPacker.html" title="class in org.apache.openjpa.kernel">ResultPacker</A>
<DD>Pack the given array into an instance of the query's result class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#packageName"><B>packageName</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel"><B>PagingResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Object provider implementation that fetches one page of results at a
 a time as it scrolls.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#PagingResultObjectProvider(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.util.BitSet, long)"><B>PagingResultObjectProvider(SelectExecutor, ClassMapping, JDBCStore, JDBCFetchConfiguration, BitSet, long)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html#PagingResultObjectProvider(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.jdbc.meta.ClassMapping[], org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, java.util.BitSet[], long)"><B>PagingResultObjectProvider(SelectExecutor, ClassMapping[], JDBCStore, JDBCFetchConfiguration, BitSet[], long)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PagingResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">PagingResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>Param</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>A parameter in a filter.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#Param(java.lang.String, java.lang.Class)"><B>Param(String, Class)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Parameter.html" title="interface in org.apache.openjpa.kernel.exps"><B>Parameter</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>A query parameter.<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util"><B>ParameterTemplate</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A template that allows parameter substitutions.<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#ParameterTemplate()"><B>ParameterTemplate()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#parameterTypes"><B>parameterTypes</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html#params"><B>params</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>
<DD>Parameters to query.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#parens()"><B>parens()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html#parse(java.lang.String, org.apache.openjpa.kernel.ExpressionStoreQuery)"><B>parse(String, ExpressionStoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionParser</A>
<DD>Return a parsed intermediate form of the given query string.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#parse(java.lang.String, org.apache.openjpa.kernel.ExpressionStoreQuery)"><B>parse(String, ExpressionStoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#parse(java.lang.String)"><B>parse(String)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Parse the given resource.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#parse(java.net.URL)"><B>parse(URL)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Parse the given resource.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#parse(java.io.File)"><B>parse(File)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Parse the given file, which may be a directory, in which case it
 will be scanned recursively for metadata files.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#parse(java.lang.Class, boolean)"><B>parse(Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Parse all possible metadata locations for the given class, going
 top-down or bottom-up.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#parse(java.io.Reader, java.lang.String)"><B>parse(Reader, String)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Parse the metadata in the given reader.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#parse(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>parse(MetaDataIterator)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>Parse the metadata supplied by the given iterator.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parse(java.lang.String)"><B>parse(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parse(java.net.URL)"><B>parse(URL)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parse(java.io.File)"><B>parse(File)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parse(java.lang.Class, boolean)"><B>parse(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parse(java.io.Reader, java.lang.String)"><B>parse(Reader, String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parse(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>parse(MetaDataIterator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#parse(org.apache.openjpa.lib.meta.MetaDataParser, java.util.Collection)"><B>parse(MetaDataParser, Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Parse all given files.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#parse(org.apache.openjpa.lib.meta.MetaDataParser, java.lang.Class[])"><B>parse(MetaDataParser, Class[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Parse all given classses.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#parse(java.lang.Class)"><B>parse(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Parse persistence metadata for the given class.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#parse(org.apache.openjpa.meta.FieldMetaData)"><B>parse(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Parse persistence metadata for the given field metadata.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#parse(org.apache.openjpa.lib.meta.MetaDataParser, java.lang.Class[])"><B>parse(MetaDataParser, Class[])</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#parse(java.net.URL)"><B>parse(URL)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#parse(java.io.File)"><B>parse(File)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#parseBasic(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>parseBasic(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse basic.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#parseCallbackMethods(java.lang.Class, java.util.Collection[], boolean, boolean, org.apache.openjpa.meta.MetaDataRepository)"><B>parseCallbackMethods(Class, Collection&lt;LifecycleCallbacks&gt;[], boolean, boolean, MetaDataRepository)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Parse callback methods into the given array, and return that array,
 creating one if null.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#parseClassMappingAnnotations(org.apache.openjpa.meta.ClassMetaData)"><B>parseClassMappingAnnotations(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Parse class mapping annotations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseClassMappingAnnotations(org.apache.openjpa.meta.ClassMetaData)"><B>parseClassMappingAnnotations(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseColumns(org.apache.openjpa.jdbc.meta.FieldMapping, javax.persistence.Column...)"><B>parseColumns(FieldMapping, Column...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Parse @Column(s).
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseContainerTable(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.persistence.jdbc.ContainerTable)"><B>parseContainerTable(FieldMapping, ContainerTable)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Parse @ContainerTable.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parsed(java.lang.String)"><B>parsed(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Return true if the given source is parsed.
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#parseDeclaration(java.lang.String, char, java.lang.String)"><B>parseDeclaration(String, char, String)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Parses the given declarations into a list of type, name, type, name...
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseElementJoinColumns(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.persistence.jdbc.ElementJoinColumn...)"><B>parseElementJoinColumns(FieldMapping, ElementJoinColumn...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Parse @ElementJoinColumn(s).
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#parseEmbedded(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>parseEmbedded(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse embedded.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#parseException(int, java.lang.String, java.lang.Object[], java.lang.Exception)"><B>parseException(int, String, Object[], Exception)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Create a proper parse exception for the given reason.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/ParseException.html" title="class in org.apache.openjpa.kernel.jpql"><B>ParseException</B></A> - Exception in <A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html">org.apache.openjpa.kernel.jpql</A><DD>Signifies that a lexical error occurred when parsing the JPQL statement.<DT><A HREF="./org/apache/openjpa/kernel/jpql/ParseException.html#ParseException(org.apache.openjpa.kernel.jpql.Token, int[][], java.lang.String[])"><B>ParseException(Token, int[][], String[])</B></A> - 
Constructor for exception org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/ParseException.html" title="class in org.apache.openjpa.kernel.jpql">ParseException</A>
<DD>This constructor is used by the method "generateParseException"
 in the generated parser.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/ParseException.html#ParseException()"><B>ParseException()</B></A> - 
Constructor for exception org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/ParseException.html" title="class in org.apache.openjpa.kernel.jpql">ParseException</A>
<DD>The following constructors are for use by you for whatever
 purpose you can think of.
<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util"><B>ParseException</B></A> - Exception in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Exception type for parse errors.<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html#ParseException()"><B>ParseException()</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util">ParseException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html#ParseException(java.lang.String)"><B>ParseException(String)</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util">ParseException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html#ParseException(org.apache.openjpa.lib.util.Localizer.Message)"><B>ParseException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util">ParseException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html#ParseException(java.lang.Throwable)"><B>ParseException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util">ParseException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html#ParseException(java.lang.String, java.lang.Throwable)"><B>ParseException(String, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util">ParseException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParseException.html#ParseException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>ParseException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParseException.html" title="class in org.apache.openjpa.lib.util">ParseException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseForeignKey(org.apache.openjpa.jdbc.meta.MappingInfo, java.lang.String, boolean, boolean, org.apache.openjpa.persistence.jdbc.ForeignKeyAction, org.apache.openjpa.persistence.jdbc.ForeignKeyAction)"><B>parseForeignKey(MappingInfo, String, boolean, boolean, ForeignKeyAction, ForeignKeyAction)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Set foreign key data on the given mapping info.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseIndex(org.apache.openjpa.jdbc.meta.MappingInfo, java.lang.String, boolean, boolean)"><B>parseIndex(MappingInfo, String, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Set index data on the given mapping info.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#parseLobMapping(org.apache.openjpa.meta.FieldMetaData)"><B>parseLobMapping(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Setup the field as a LOB mapping.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseLobMapping(org.apache.openjpa.meta.FieldMetaData)"><B>parseLobMapping(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#parseManyToMany(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>parseManyToMany(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse many-to-many.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#parseManyToOne(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>parseManyToOne(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse many-to-one.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#parseMemberMappingAnnotations(org.apache.openjpa.meta.FieldMetaData)"><B>parseMemberMappingAnnotations(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Parse member mapping components.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseMemberMappingAnnotations(org.apache.openjpa.meta.FieldMetaData)"><B>parseMemberMappingAnnotations(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#parseNewResource(java.io.Reader, java.lang.String)"><B>parseNewResource(Reader, String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Parse a previously-unseen source.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#parseOneToMany(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>parseOneToMany(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse one-to-many.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#parseOneToOne(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>parseOneToOne(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse one-to-one.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#parsePackageMappingAnnotations(java.lang.Package)"><B>parsePackageMappingAnnotations(Package)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Parse package mapping annotations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parsePackageMappingAnnotations(java.lang.Package)"><B>parsePackageMappingAnnotations(Package)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#parseProperties(java.lang.String)"><B>parseProperties(String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Parse a set of properties from a comma-separated string.
<DT><A HREF="./org/apache/openjpa/kernel/QueryLanguages.html#parserForLanguage(java.lang.String)"><B>parserForLanguage(String)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryLanguages.html" title="class in org.apache.openjpa.kernel">QueryLanguages</A>
<DD>Return the <A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>ExpressionParser</CODE></A> for <code>language</code>, or
 <code>null</code> if no expression parser exists in the system for
 the specified language.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#parseTypeNames(java.lang.String)"><B>parseTypeNames(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Return the names of the class(es) from the given arg.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#parseTypeNames(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>parseTypeNames(MetaDataIterator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Return the names of the class(es) from the given metadatas.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#parseTypes(java.lang.String)"><B>parseTypes(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Return the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang"><CODE>Class</CODE></A> representation of the class(es) named in the
 given arg.
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#parseTypes(org.apache.openjpa.lib.meta.MetaDataIterator)"><B>parseTypes(MetaDataIterator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Return the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang"><CODE>Class</CODE></A> representation of the class(es) named in the
 given metadatas.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#parseXJoinColumns(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.meta.MappingInfo, boolean, org.apache.openjpa.persistence.jdbc.XJoinColumn...)"><B>parseXJoinColumns(FieldMapping, MappingInfo, boolean, XJoinColumn...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Parse given @XJoinColumn annotations.
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#PAST_END"><B>PAST_END</B></A> - 
Static variable in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#PATCH_RELEASE"><B>PATCH_RELEASE</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#path()"><B>path()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#path()"><B>path()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Path.html" title="interface in org.apache.openjpa.kernel.exps"><B>Path</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>A path represents a traversal into fields of a candidate object.<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#PAYLOAD_EXTENTS"><B>PAYLOAD_EXTENTS</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>Names of added, updated, and deleted classes only.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#PAYLOAD_LOCAL_STALE_DETECTION"><B>PAYLOAD_LOCAL_STALE_DETECTION</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>The local <CODE>BrokerFactory</CODE> detected that local data is out of date
 with the data store.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#PAYLOAD_OIDS"><B>PAYLOAD_OIDS</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>Names of added classes, updated and deleted Object IDs.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#PAYLOAD_OIDS_WITH_ADDS"><B>PAYLOAD_OIDS_WITH_ADDS</B></A> - 
Static variable in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>Names of added classes, added, updated and deleted Object IDs.
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#PC"><B>PC</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#PC_UNTYPED"><B>PC_UNTYPED</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/AttributeTranslator.html#pcAttributeIndexToFieldName(int)"><B>pcAttributeIndexToFieldName(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/AttributeTranslator.html" title="interface in org.apache.openjpa.enhance">AttributeTranslator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html" title="class in org.apache.openjpa.enhance"><B>PCClassFileTransformer</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Transformer that makes persistent classes implement the
 <A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A> interface at runtime.<DT><A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html#PCClassFileTransformer(org.apache.openjpa.meta.MetaDataRepository, org.apache.openjpa.lib.util.Options, java.lang.ClassLoader)"><B>PCClassFileTransformer(MetaDataRepository, Options, ClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html" title="class in org.apache.openjpa.enhance">PCClassFileTransformer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html#PCClassFileTransformer(org.apache.openjpa.meta.MetaDataRepository, org.apache.openjpa.enhance.PCEnhancer.Flags, java.lang.ClassLoader, boolean)"><B>PCClassFileTransformer(MetaDataRepository, PCEnhancer.Flags, ClassLoader, boolean)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html" title="class in org.apache.openjpa.enhance">PCClassFileTransformer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcCopyField(java.lang.Object, int)"><B>pcCopyField(Object, int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcCopyFields(java.lang.Object, int[])"><B>pcCopyFields(Object, int[])</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcCopyFields(java.lang.Object, int[])"><B>pcCopyFields(Object, int[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcCopyKeyFieldsFromObjectId(org.apache.openjpa.enhance.FieldConsumer, java.lang.Object)"><B>pcCopyKeyFieldsFromObjectId(FieldConsumer, Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcCopyKeyFieldsFromObjectId(org.apache.openjpa.enhance.FieldConsumer, java.lang.Object)"><B>pcCopyKeyFieldsFromObjectId(FieldConsumer, Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcCopyKeyFieldsToObjectId(java.lang.Object)"><B>pcCopyKeyFieldsToObjectId(Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcCopyKeyFieldsToObjectId(org.apache.openjpa.enhance.FieldSupplier, java.lang.Object)"><B>pcCopyKeyFieldsToObjectId(FieldSupplier, Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcCopyKeyFieldsToObjectId(java.lang.Object)"><B>pcCopyKeyFieldsToObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcCopyKeyFieldsToObjectId(org.apache.openjpa.enhance.FieldSupplier, java.lang.Object)"><B>pcCopyKeyFieldsToObjectId(FieldSupplier, Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><B>PCData</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Holds data about a single persistence capable instance.<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance"><B>PCDataGenerator</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Generates <A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><CODE>PCDataGenerator.DynamicPCData</CODE></A> instances which avoid primitve wrappers
 to optimize memory use and performance at the cost of slightly higher
 startup time.<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#PCDataGenerator(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>PCDataGenerator(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><B>PCDataGenerator.DynamicPCData</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Dynamic <A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><CODE>PCData</CODE></A>s generated will implement this interface
 to simplify initialization.<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel"><B>PCDataImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Default <A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><CODE>PCData</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#PCDataImpl(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>PCDataImpl(Object, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcDirty(java.lang.String)"><B>pcDirty(String)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcDirty(java.lang.String)"><B>pcDirty(String)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance"><B>PCEnhancer</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Bytecode enhancer used to enhance persistent classes from metadata.<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class)"><B>PCEnhancer(OpenJPAConfiguration, Class)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, org.apache.openjpa.meta.ClassMetaData)"><B>PCEnhancer(OpenJPAConfiguration, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository)"><B>PCEnhancer(OpenJPAConfiguration, BCClass, MetaDataRepository)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD><B>Deprecated.</B>&nbsp;<I>use <A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)"><CODE>PCEnhancer.PCEnhancer(OpenJPAConfiguration, BCClass,
        MetaDataRepository, ClassLoader)</CODE></A> instead.</I>
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)"><B>PCEnhancer(OpenJPAConfiguration, BCClass, MetaDataRepository, ClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)"><B>PCEnhancer(OpenJPAConfiguration, BCClass, ClassMetaData)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance"><B>PCEnhancer.AuxiliaryEnhancer</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Plugin interface for additional enhancement.<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance"><B>PCEnhancer.Flags</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Run flags.<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html#PCEnhancer.Flags()"><B>PCEnhancer.Flags()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancerAgent.html" title="class in org.apache.openjpa.enhance"><B>PCEnhancerAgent</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Java agent that makes persistent classes work with OpenJPA at runtime.<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancerAgent.html#PCEnhancerAgent()"><B>PCEnhancerAgent()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancerAgent.html" title="class in org.apache.openjpa.enhance">PCEnhancerAgent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant"><B>PCEnhancerTask</B></A> - Class in <A HREF="./org/apache/openjpa/ant/package-summary.html">org.apache.openjpa.ant</A><DD>Executes the enhancer on the specified files.<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#PCEnhancerTask()"><B>PCEnhancerTask()</B></A> - 
Constructor for class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcFetchObjectId()"><B>pcFetchObjectId()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcFetchObjectId()"><B>pcFetchObjectId()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcGetDetachedState()"><B>pcGetDetachedState()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcGetDetachedState()"><B>pcGetDetachedState()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcGetEnhancementContractVersion()"><B>pcGetEnhancementContractVersion()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcGetEnhancementContractVersion()"><B>pcGetEnhancementContractVersion()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcGetGenericContext()"><B>pcGetGenericContext()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcGetGenericContext()"><B>pcGetGenericContext()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcGetStateManager()"><B>pcGetStateManager()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcGetStateManager()"><B>pcGetStateManager()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcGetVersion()"><B>pcGetVersion()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcGetVersion()"><B>pcGetVersion()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcIsDeleted()"><B>pcIsDeleted()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcIsDeleted()"><B>pcIsDeleted()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcIsDetached()"><B>pcIsDetached()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcIsDetached()"><B>pcIsDetached()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcIsDirty()"><B>pcIsDirty()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcIsDirty()"><B>pcIsDirty()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcIsNew()"><B>pcIsNew()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcIsNew()"><B>pcIsNew()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcIsPersistent()"><B>pcIsPersistent()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcIsPersistent()"><B>pcIsPersistent()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcIsTransactional()"><B>pcIsTransactional()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcIsTransactional()"><B>pcIsTransactional()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PCLEAN"><B>PCLEAN</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Clean
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcNewInstance(org.apache.openjpa.enhance.StateManager, boolean)"><B>pcNewInstance(StateManager, boolean)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcNewInstance(org.apache.openjpa.enhance.StateManager, java.lang.Object, boolean)"><B>pcNewInstance(StateManager, Object, boolean)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcNewInstance(org.apache.openjpa.enhance.StateManager, boolean)"><B>pcNewInstance(StateManager, boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcNewInstance(org.apache.openjpa.enhance.StateManager, java.lang.Object, boolean)"><B>pcNewInstance(StateManager, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcNewObjectIdInstance()"><B>pcNewObjectIdInstance()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcNewObjectIdInstance(java.lang.Object)"><B>pcNewObjectIdInstance(Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcNewObjectIdInstance()"><B>pcNewObjectIdInstance()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcNewObjectIdInstance(java.lang.Object)"><B>pcNewObjectIdInstance(Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcProvideField(int)"><B>pcProvideField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcProvideField(int)"><B>pcProvideField(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcProvideFields(int[])"><B>pcProvideFields(int[])</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcProvideFields(int[])"><B>pcProvideFields(int[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance"><B>PCRegistry</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Tracks registered persistence-capable classes.<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#PCRegistry()"><B>PCRegistry()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.RegisterClassListener.html" title="interface in org.apache.openjpa.enhance"><B>PCRegistry.RegisterClassListener</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Listener for persistent class registration events.<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcReplaceField(int)"><B>pcReplaceField(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcReplaceField(int)"><B>pcReplaceField(int)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcReplaceFields(int[])"><B>pcReplaceFields(int[])</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcReplaceFields(int[])"><B>pcReplaceFields(int[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcReplaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>pcReplaceStateManager(StateManager)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcReplaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>pcReplaceStateManager(StateManager)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCResultObjectProvider.html" title="interface in org.apache.openjpa.kernel"><B>PCResultObjectProvider</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Variant of <A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop"><CODE>ResultObjectProvider</CODE></A> that populates a
 <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A> object in an application-defined manner.<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#pcSetDetachedState(java.lang.Object)"><B>pcSetDetachedState(Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#pcSetDetachedState(java.lang.Object)"><B>pcSetDetachedState(Object)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel"><B>PCState</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Base class for all lifecycle states.<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PCState()"><B>PCState()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCSubclassValidator.html" title="class in org.apache.openjpa.enhance"><B>PCSubclassValidator</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Validates that a given type meets the JPA contract, plus a few
  OpenJPA-specific additions for subclassing / redefinition:

        
                must have an accessible no-args constructor
                must be a public or protected class
                must not be final
                must not extend an enhanced class
                all persistent data represented by accessible setter/getter
                        methods (persistent properties)
                if versioning is to be used, exactly one persistent property for
                        the numeric version data <!-- ##### is this true? -->

                When using property access, the backing field for a persistent
          property must be:
                        
                                <!-- ##### JPA validation of these needs to be tested -->
                                private
                                set only in the designated setter,
                                        in the constructor, or in <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang"><CODE>Object.clone()</CODE></A>,
                                        <code>readObject(ObjectInputStream)</code>, or
                                        <CODE>Externalizable#readExternal(ObjectInput)</CODE>.
                                read only in the designated getter and the
                                        constructor.
                        
                
        <DT><A HREF="./org/apache/openjpa/enhance/PCSubclassValidator.html#PCSubclassValidator(org.apache.openjpa.meta.ClassMetaData, serp.bytecode.BCClass, org.apache.openjpa.lib.log.Log, boolean)"><B>PCSubclassValidator(ClassMetaData, BCClass, Log, boolean)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCSubclassValidator.html" title="class in org.apache.openjpa.enhance">PCSubclassValidator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PDELETED"><B>PDELETED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Deleted
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PDELETEDFLUSHED"><B>PDELETEDFLUSHED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Deleted-Flushed
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PDIRTY"><B>PDIRTY</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Dirty
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#peek()"><B>peek()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html#peek()"><B>peek()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">Queue</A>
<DD>Retrieves, but does not remove, the head of this queue,
 or returns <tt>null</tt> if this queue is empty.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#persist(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Persist the given object.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#persist(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Make the given instance persistent.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#persist(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#persist(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#persist(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Persist the given object.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#persist(java.lang.Object, java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Persist the given object.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#persist(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#persist(java.lang.Object, java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>persist(Object, Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#persist(java.lang.Object)"><B>persist(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#persistAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>persistAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Persist the given objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#persistAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>persistAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#persistAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>persistAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Persist the given objects.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#persistAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>persistAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#persistAll(java.lang.Object...)"><B>persistAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#persistAll(java.util.Collection)"><B>persistAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#persistAll(java.lang.Object...)"><B>persistAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Persist the given objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#persistAll(java.util.Collection)"><B>persistAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Persist the given objects.
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><B>PersistenceCapable</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>The interface that persistent instances will implement.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence"><B>PersistenceException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>General persistence exception.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#PersistenceException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>PersistenceException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html" title="class in org.apache.openjpa.persistence"><B>PersistenceExceptions</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Converts from OpenJPA to persistence exception types.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html#PersistenceExceptions()"><B>PersistenceExceptions()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html" title="class in org.apache.openjpa.persistence">PersistenceExceptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc"><B>PersistenceMappingDefaults</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Supplies default mapping information in accordance with JPA spec.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#PersistenceMappingDefaults()"><B>PersistenceMappingDefaults()</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html" title="class in org.apache.openjpa.persistence.jdbc"><B>PersistenceMappingFactory</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> for JPA mapping information.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html#PersistenceMappingFactory()"><B>PersistenceMappingFactory()</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingFactory.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence"><B>PersistenceMetaDataDefaults</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>JPA-based metadata defaults.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#PersistenceMetaDataDefaults()"><B>PersistenceMetaDataDefaults()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence"><B>PersistenceMetaDataFactory</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> for JPA metadata.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#PersistenceMetaDataFactory()"><B>PersistenceMetaDataFactory()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence"><B>PersistenceProductDerivation</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Sets JPA specification defaults and parses JPA specification XML files.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#PersistenceProductDerivation()"><B>PersistenceProductDerivation()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence"><B>PersistenceProductDerivation.ConfigurationParser</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>SAX handler capable of parsing an JPA persistence.xml file.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#PersistenceProductDerivation.ConfigurationParser(java.util.Map)"><B>PersistenceProductDerivation.ConfigurationParser(Map)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html" title="class in org.apache.openjpa.persistence"><B>PersistenceProductDerivation.ConfigurationProviderImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Custom configuration provider.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html#PersistenceProductDerivation.ConfigurationProviderImpl()"><B>PersistenceProductDerivation.ConfigurationProviderImpl()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationProviderImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html#PersistenceProductDerivation.ConfigurationProviderImpl(java.util.Map)"><B>PersistenceProductDerivation.ConfigurationProviderImpl(Map)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationProviderImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html" title="class in org.apache.openjpa.persistence"><B>PersistenceProviderImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Bootstrapping class that allows the creation of a stand-alone
 <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html" title="class or interface in javax.persistence"><CODE>EntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html#PersistenceProviderImpl()"><B>PersistenceProviderImpl()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProviderImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceStrategy.html" title="enum in org.apache.openjpa.persistence"><B>PersistenceStrategy</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Set of field persistence strategies used in JPA.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence"><B>PersistenceUnitInfoImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implementation of the <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/spi/PersistenceUnitInfo.html" title="class or interface in javax.persistence.spi"><CODE>PersistenceUnitInfo</CODE></A> interface used by OpenJPA 
 when parsing persistence configuration information.<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#PersistenceUnitInfoImpl()"><B>PersistenceUnitInfoImpl()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Persistent.html" title="annotation in org.apache.openjpa.persistence"><B>Persistent</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Metadata annotation for a persistent field.<DT><A HREF="./org/apache/openjpa/persistence/PersistentCollection.html" title="annotation in org.apache.openjpa.persistence"><B>PersistentCollection</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Metadata annotation for a persistent collection field.<DT><A HREF="./org/apache/openjpa/persistence/PersistentMap.html" title="annotation in org.apache.openjpa.persistence"><B>PersistentMap</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Metadata annotation for a persistent map field.<DT><A HREF="./org/apache/openjpa/event/PersistListener.html" title="interface in org.apache.openjpa.event"><B>PersistListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for newly-persisted instances.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel"><B>PessimisticLockManager</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Lock manager that uses exclusive database locks.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html#PessimisticLockManager()"><B>PessimisticLockManager()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel">PessimisticLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#pin(java.lang.Object)"><B>pin(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#pin(org.apache.openjpa.datacache.QueryKey)"><B>pin(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#pin(java.lang.Object)"><B>pin(Object)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Pin the value stored under <code>oid</code> into the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#pin(java.lang.Object)"><B>pin(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#pin(org.apache.openjpa.datacache.QueryKey)"><B>pin(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#pin(org.apache.openjpa.datacache.QueryKey)"><B>pin(QueryKey)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Pin the value stored under <code>qk</code> into the
 cache.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCache.html#pin(javax.persistence.Query)"><B>pin(Query)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCache.html" title="interface in org.apache.openjpa.persistence">QueryResultCache</A>
<DD>Pin the given query's result to the cache.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#pin(javax.persistence.Query)"><B>pin(Query)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#pin(java.lang.Class, java.lang.Object)"><B>pin(Class, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Pin the data for the given oid to the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#pin(java.lang.Class, java.lang.Object)"><B>pin(Class, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#pin(java.lang.Object)"><B>pin(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Locks the given key and its value into the map.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#pinAll(java.util.Collection)"><B>pinAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#pinAll(java.lang.Class, boolean)"><B>pinAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#pinAll(java.util.Collection)"><B>pinAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Pin all oids to the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#pinAll(java.lang.Class, boolean)"><B>pinAll(Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Pin all oids for the given type.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#pinAll(java.util.Collection)"><B>pinAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#pinAll(java.lang.Class, boolean)"><B>pinAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#pinAll(java.lang.Class, java.lang.Object...)"><B>pinAll(Class, Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Pin the data for the given oids to the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#pinAll(java.lang.Class, java.util.Collection)"><B>pinAll(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Pin the data for the given oids to the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#pinAll(java.lang.Class, java.lang.Object...)"><B>pinAll(Class, Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#pinAll(java.lang.Class, java.util.Collection)"><B>pinAll(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#pinInternal(java.lang.Object)"><B>pinInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Pin an object to the cache.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#pinInternal(org.apache.openjpa.datacache.QueryKey)"><B>pinInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Pin an object to the cache.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#pinInternal(java.lang.Object)"><B>pinInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#pinInternal(org.apache.openjpa.datacache.QueryKey)"><B>pinInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#pinnedMap"><B>pinnedMap</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The set of objects pinned into the cache.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#PK_VALUE"><B>PK_VALUE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#platform"><B>platform</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf"><B>PluginListValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A list of plugins.<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#PluginListValue(java.lang.String)"><B>PluginListValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf"><B>PluginValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A plugin <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> consisting of plugin name and properties.<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#PluginValue(java.lang.String, boolean)"><B>PluginValue(String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNEW"><B>PNEW</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-New
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNEWDELETED"><B>PNEWDELETED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-New-Deleted
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNEWFLUSHEDDELETED"><B>PNEWFLUSHEDDELETED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-New-Flushed-Deleted
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNEWFLUSHEDDELETEDFLUSHED"><B>PNEWFLUSHEDDELETEDFLUSHED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-New-Flushed-Deleted-Flushed
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNEWPROVISIONAL"><B>PNEWPROVISIONAL</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-New-Provisional
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNONTRANS"><B>PNONTRANS</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Nontransactinoal
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNONTRANSDELETED"><B>PNONTRANSDELETED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Deleted-Nontransactional
<DT><A HREF="./org/apache/openjpa/kernel/PNonTransDeletedState.html" title="class in org.apache.openjpa.kernel"><B>PNonTransDeletedState</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Lifecycle state.<DT><A HREF="./org/apache/openjpa/kernel/PNonTransDeletedState.html#PNonTransDeletedState()"><B>PNonTransDeletedState()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PNonTransDeletedState.html" title="class in org.apache.openjpa.kernel">PNonTransDeletedState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNONTRANSDIRTY"><B>PNONTRANSDIRTY</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-Dirty-Nontransactinoal
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#PNONTRANSNEW"><B>PNONTRANSNEW</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Persistent-New-Nontransactional
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>PointbaseDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Pointbase Embedded.<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html#PointbaseDictionary()"><B>PointbaseDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PointbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#POLICY_EMPTY"><B>POLICY_EMPTY</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Constant to not generate type set/get methods.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#POLICY_EXCEPTION"><B>POLICY_EXCEPTION</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Constant to throw an exception on invalid index passed to type set/get
 methods
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#POLICY_SILENT"><B>POLICY_SILENT</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Constant to be as silent as possible during invalid index passed
 to set/get type methods.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#poll()"><B>poll()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html#poll()"><B>poll()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">Queue</A>
<DD>Retrieves and removes the head of this queue,
 or returns <tt>null</tt> if this queue is empty.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#POLY_FALSE"><B>POLY_FALSE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>A non-polymorphic relation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#POLY_JOINABLE"><B>POLY_JOINABLE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>A relation that can hold any joinable subclass type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#POLY_TRUE"><B>POLY_TRUE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>A fully polymorphic relation (the default).
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#pool()"><B>pool()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Add the factory to the pool.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#popElement()"><B>popElement()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Pop a parse element from the stack.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.ForeignKeyDefaults.html#populate(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, boolean, int, int)"><B>populate(Table, Table, Column, Object, boolean, int, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.ForeignKeyDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingInfo.ForeignKeyDefaults</A>
<DD>Populate the given foreign key column with defaults.
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html#populate(java.lang.Object, org.apache.openjpa.kernel.ExpressionStoreQuery)"><B>populate(Object, ExpressionStoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionParser.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionParser</A>
<DD>Use the parsed query form to set information such as candidate type,
 result type, etc that was encoded in the query string.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html#populate(java.lang.Object, org.apache.openjpa.kernel.ExpressionStoreQuery)"><B>populate(Object, ExpressionStoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLParser.html" title="class in org.apache.openjpa.kernel.jpql">JPQLParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#populate(org.apache.openjpa.meta.ClassMetaData, int)"><B>populate(ClassMetaData, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#populate(org.apache.openjpa.meta.FieldMetaData)"><B>populate(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Populate initial field data.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#populate(org.apache.openjpa.meta.ClassMetaData, int)"><B>populate(ClassMetaData, int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Populate the given metadata with default settings.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#populate(org.apache.openjpa.meta.ClassMetaData, int)"><B>populate(ClassMetaData, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#populate(org.apache.openjpa.meta.ClassMetaData, int)"><B>populate(ClassMetaData, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#populate(org.apache.openjpa.meta.FieldMetaData)"><B>populate(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Version, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given version columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Discriminator, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given discriminator columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(ValueMapping, String, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given value columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateColumns(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Version, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateColumns(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Discriminator, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Version, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.Discriminator, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Discriminator, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#populateColumns(org.apache.openjpa.jdbc.meta.Version, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateColumns(Version, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#populateConfiguration(org.apache.openjpa.lib.conf.Configuration, org.apache.openjpa.lib.util.Options)"><B>populateConfiguration(Configuration, Options)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Set the given <A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><CODE>Configuration</CODE></A> instance from the command line
 options provided.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateDataStoreIdColumns(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateDataStoreIdColumns(ClassMapping, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given datastore identity columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateDataStoreIdColumns(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateDataStoreIdColumns(ClassMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateDataStoreIdColumns(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateDataStoreIdColumns(ClassMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateForeignKeyColumn(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, boolean, int, int)"><B>populateForeignKeyColumn(ValueMapping, String, Table, Table, Column, Object, boolean, int, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given column used to join a value
 to its related type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateForeignKeyColumn(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, boolean, int, int)"><B>populateForeignKeyColumn(ValueMapping, String, Table, Table, Column, Object, boolean, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateForeignKeyColumn(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, boolean, int, int)"><B>populateForeignKeyColumn(ValueMapping, String, Table, Table, Column, Object, boolean, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#populateForeignKeyColumn(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, boolean, int, int)"><B>populateForeignKeyColumn(ValueMapping, String, Table, Table, Column, Object, boolean, int, int)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#populateFromCompilation(java.lang.Object)"><B>populateFromCompilation(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#populateFromCompilation(java.lang.Object)"><B>populateFromCompilation(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#populateFromCompilation(java.lang.Object)"><B>populateFromCompilation(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#populateFromCompilation(java.lang.Object)"><B>populateFromCompilation(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Populate internal data from compilation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(ClassMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given column used to join a class
 to its superclass table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(FieldMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given column used to join a field
 to its defining class' table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(ClassMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(FieldMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(ClassMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(FieldMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#populateJoinColumn(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, int)"><B>populateJoinColumn(FieldMapping, Table, Table, Column, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateNullIndicatorColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateNullIndicatorColumns(ValueMapping, String, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given null indicator columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateNullIndicatorColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateNullIndicatorColumns(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateNullIndicatorColumns(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.String, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateNullIndicatorColumns(ValueMapping, String, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#populateOrderColumns(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateOrderColumns(FieldMapping, Table, Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>Fill in default information for the given order columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#populateOrderColumns(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateOrderColumns(FieldMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#populateOrderColumns(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Column[])"><B>populateOrderColumns(FieldMapping, Table, Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#populateRowManager(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.kernel.JDBCStore, java.util.Collection, java.util.Collection)"><B>populateRowManager(OpenJPAStateManager, RowManager, JDBCStore, Collection, Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>Populate the row manager with rows to be flushed for the given state.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#pos"><B>pos</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/PostDeleteListener.html" title="interface in org.apache.openjpa.event"><B>PostDeleteListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html#POSTFIX"><B>POSTFIX</B></A> - 
Static variable in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.html" title="class in org.apache.openjpa.datacache">DataCachePCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#POSTFIX"><B>POSTFIX</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>PostgresDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Postgres.<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#PostgresDictionary()"><B>PostgresDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/PostPersistListener.html" title="interface in org.apache.openjpa.event"><B>PostPersistListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#PRE"><B>PRE</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#preClose()"><B>preClose()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#preClose()"><B>preClose()</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>Free the data sources.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#preClose()"><B>preClose()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Invoked by final method <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#close()"><CODE>ConfigurationImpl.close()</CODE></A> after invoking the 
 <A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)"><CODE>ProductDerivation.beforeConfigurationClose(org.apache.openjpa.lib.conf.Configuration)</CODE></A> callbacks
 but before performing internal close operations.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#preFlush()"><B>preFlush()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Run pre-flush actions on transactional objects, including
 persistence-by-reachability, inverse relationship management,
 deletion of dependent instances, and instance callbacks.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#preFlush()"><B>preFlush()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#preFlush()"><B>preFlush()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#preFlush()"><B>preFlush()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#preFlush()"><B>preFlush()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Run pre-flush actions on transactional objects, including
 persistence-by-reachability, inverse relationship management,
 deletion of dependent instances, and instance callbacks.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancerAgent.html#premain(java.lang.String, java.lang.instrument.Instrumentation)"><B>premain(String, Instrumentation)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancerAgent.html" title="class in org.apache.openjpa.enhance">PCEnhancerAgent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#prepareCall(java.sql.Connection)"><B>prepareCall(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Create and populate the parameters of a prepared statement using
 the SQL in this buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#prepareCall(java.sql.Connection, int, int)"><B>prepareCall(Connection, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Create and populate the parameters of a prepared statement using
 the SQL in this buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#prepareCall(java.sql.Connection, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, int)"><B>prepareCall(Connection, JDBCFetchConfiguration, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Create and populate the parameters of a prepred statement using the
 SQL in this buffer and the given fetch configuration.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareCall(java.lang.String)"><B>prepareCall(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareCall(java.lang.String, boolean)"><B>prepareCall(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Prepare a call, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingCallableStatement</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareCall(java.lang.String, int, int)"><B>prepareCall(String, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareCall(java.lang.String, int, int, boolean)"><B>prepareCall(String, int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Prepare a call, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingCallableStatement</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareCall(java.lang.String, int, int, int)"><B>prepareCall(String, int, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareCall(java.lang.String, int, int, int, boolean)"><B>prepareCall(String, int, int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>PreparedStatementManager</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Manages prepared statement execution.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel"><B>PreparedStatementManagerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Basic prepared statement manager implementation.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#PreparedStatementManagerImpl(org.apache.openjpa.jdbc.kernel.JDBCStore, java.sql.Connection)"><B>PreparedStatementManagerImpl(JDBCStore, Connection)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#prepareMapping(org.apache.openjpa.meta.ClassMetaData)"><B>prepareMapping(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#prepareMapping(org.apache.openjpa.meta.ClassMetaData)"><B>prepareMapping(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Prepare metadata for mapping resolution.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#prepareStatement(java.lang.String, boolean)"><B>prepareStatement(String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#prepareStatement(java.lang.String, int, int, boolean)"><B>prepareStatement(String, int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#prepareStatement(java.sql.Connection)"><B>prepareStatement(Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Create and populate the parameters of a prepared statement using
 the SQL in this buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#prepareStatement(java.sql.Connection, int, int)"><B>prepareStatement(Connection, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Create and populate the parameters of a prepared statement using
 the SQL in this buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#prepareStatement(java.sql.Connection, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, int)"><B>prepareStatement(Connection, JDBCFetchConfiguration, int, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Create and populate the parameters of a prepred statement using the
 SQL in this buffer and the given fetch configuration.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String)"><B>prepareStatement(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, boolean)"><B>prepareStatement(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Prepare a statement, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingPreparedStatement</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int, int)"><B>prepareStatement(String, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int, int, boolean)"><B>prepareStatement(String, int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>Prepare a statement, with the option of not wrapping it in a
 <A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>DelegatingPreparedStatement</CODE></A>, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int, int, int)"><B>prepareStatement(String, int, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int, int, int, boolean)"><B>prepareStatement(String, int, int, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int)"><B>prepareStatement(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int, boolean)"><B>prepareStatement(String, int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int[])"><B>prepareStatement(String, int[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, int[], boolean)"><B>prepareStatement(String, int[], boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, java.lang.String[])"><B>prepareStatement(String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#prepareStatement(java.lang.String, java.lang.String[], boolean)"><B>prepareStatement(String, String[], boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ManagedClassSubclasser.html#prepareUnenhancedClasses(org.apache.openjpa.conf.OpenJPAConfiguration, java.util.Collection, java.lang.ClassLoader)"><B>prepareUnenhancedClasses(OpenJPAConfiguration, Collection&lt;? extends Class&gt;, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ManagedClassSubclasser.html" title="class in org.apache.openjpa.enhance">ManagedClassSubclasser</A>
<DD>For each element in <code>classes</code>, creates and registers a
 new subclass that implements <A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A>, and prepares
 OpenJPA to handle new instances of the unenhanced type.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#prepareWrite(java.io.File)"><B>prepareWrite(File)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Prepare to write to the given file.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#PRETTY"><B>PRETTY</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#prettyPrint(java.lang.Object)"><B>prettyPrint(Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#previous()"><B>previous()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#previous()"><B>previous()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#previous()"><B>previous()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#previousIndex()"><B>previousIndex()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#previousIndex()"><B>previousIndex()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema"><B>PrimaryKey</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a table primary key.<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html#PrimaryKey()"><B>PrimaryKey()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema">PrimaryKey</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html#PrimaryKey(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>PrimaryKey(String, Table)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema">PrimaryKey</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#primaryKeyOnJoin"><B>primaryKeyOnJoin</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#primaryKeys"><B>primaryKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#primaryKeys"><B>primaryKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql"><B>PrimaryRow</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Primary table row that tracks foreign keys and auto-inc columns.<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#PrimaryRow(org.apache.openjpa.jdbc.schema.Table, int, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>PrimaryRow(Table, int, OpenJPAStateManager)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Constructor; supply table and action.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#PrimaryRow(org.apache.openjpa.jdbc.schema.Column[], int, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>PrimaryRow(Column[], int, OpenJPAStateManager)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>PrimitiveFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Direct mapping from a primitive value to a column.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#PrimitiveFieldStrategy()"><B>PrimitiveFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#printNestedThrowables(org.apache.openjpa.util.ExceptionInfo, java.io.PrintStream)"><B>printNestedThrowables(ExceptionInfo, PrintStream)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Print the stack trace of the exception's nested throwables.
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#printNestedThrowables(org.apache.openjpa.util.ExceptionInfo, java.io.PrintWriter)"><B>printNestedThrowables(ExceptionInfo, PrintWriter)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Print the stack trace of the exception's nested throwables.
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>Stack.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#printStackTrace()"><B>printStackTrace()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#processArgument(java.lang.Object)"><B>processArgument(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FindCallbacks.html#processArgument(java.lang.Object)"><B>processArgument(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FindCallbacks.html" title="interface in org.apache.openjpa.kernel">FindCallbacks</A>
<DD>Process find argument.
<DT><A HREF="./org/apache/openjpa/kernel/OpCallbacks.html#processArgument(int, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>processArgument(int, Object, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpCallbacks.html" title="interface in org.apache.openjpa.kernel">OpCallbacks</A>
<DD>Process operation argument.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#processArgument(java.lang.Object)"><B>processArgument(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#processArgument(int, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>processArgument(int, Object, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#processReturn(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>processReturn(Object, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FindCallbacks.html#processReturn(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>processReturn(Object, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FindCallbacks.html" title="interface in org.apache.openjpa.kernel">FindCallbacks</A>
<DD>Process operation return value.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#processReturn(java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>processReturn(Object, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf"><B>ProductDerivation</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Hooks for deriving products with additional functionality.<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf"><B>ProductDerivations</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Utilities for running product derivations.<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html#ProductDerivations()"><B>ProductDerivations()</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivations.html" title="class in org.apache.openjpa.lib.conf">ProductDerivations</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#project(org.apache.openjpa.kernel.exps.QueryExpressions, java.util.List, org.apache.openjpa.kernel.StoreContext, java.lang.Object[])"><B>project(QueryExpressions, List, StoreContext, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>Create the projections for the given results.
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#projectionAliases"><B>projectionAliases</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#projectionClauses"><B>projectionClauses</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#projections"><B>projections</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#projections"><B>projections</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#promote(java.lang.Class, java.lang.Class)"><B>promote(Class, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Given two types, return type they should both be converted
 to before performing any operations between them.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta"><B>PropertiesReverseCustomizer</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Simple <A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>ReverseCustomizer</CODE></A> that uses a properties file to
 to allow customization of basic class and field properties.<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#PropertiesReverseCustomizer()"><B>PropertiesReverseCustomizer()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean)"><B>providedBooleanField(PersistenceCapable, int, boolean)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean)"><B>providedBooleanField(PersistenceCapable, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean)"><B>providedBooleanField(PersistenceCapable, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean)"><B>providedBooleanField(PersistenceCapable, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean)"><B>providedBooleanField(PersistenceCapable, int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte)"><B>providedByteField(PersistenceCapable, int, byte)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte)"><B>providedByteField(PersistenceCapable, int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte)"><B>providedByteField(PersistenceCapable, int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte)"><B>providedByteField(PersistenceCapable, int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte)"><B>providedByteField(PersistenceCapable, int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char)"><B>providedCharField(PersistenceCapable, int, char)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char)"><B>providedCharField(PersistenceCapable, int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char)"><B>providedCharField(PersistenceCapable, int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char)"><B>providedCharField(PersistenceCapable, int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char)"><B>providedCharField(PersistenceCapable, int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double)"><B>providedDoubleField(PersistenceCapable, int, double)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double)"><B>providedDoubleField(PersistenceCapable, int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double)"><B>providedDoubleField(PersistenceCapable, int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double)"><B>providedDoubleField(PersistenceCapable, int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double)"><B>providedDoubleField(PersistenceCapable, int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float)"><B>providedFloatField(PersistenceCapable, int, float)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float)"><B>providedFloatField(PersistenceCapable, int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float)"><B>providedFloatField(PersistenceCapable, int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float)"><B>providedFloatField(PersistenceCapable, int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float)"><B>providedFloatField(PersistenceCapable, int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int)"><B>providedIntField(PersistenceCapable, int, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int)"><B>providedIntField(PersistenceCapable, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int)"><B>providedIntField(PersistenceCapable, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int)"><B>providedIntField(PersistenceCapable, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int)"><B>providedIntField(PersistenceCapable, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long)"><B>providedLongField(PersistenceCapable, int, long)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long)"><B>providedLongField(PersistenceCapable, int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long)"><B>providedLongField(PersistenceCapable, int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long)"><B>providedLongField(PersistenceCapable, int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long)"><B>providedLongField(PersistenceCapable, int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object)"><B>providedObjectField(PersistenceCapable, int, Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object)"><B>providedObjectField(PersistenceCapable, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object)"><B>providedObjectField(PersistenceCapable, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object)"><B>providedObjectField(PersistenceCapable, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object)"><B>providedObjectField(PersistenceCapable, int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short)"><B>providedShortField(PersistenceCapable, int, short)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short)"><B>providedShortField(PersistenceCapable, int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short)"><B>providedShortField(PersistenceCapable, int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short)"><B>providedShortField(PersistenceCapable, int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short)"><B>providedShortField(PersistenceCapable, int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#providedStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String)"><B>providedStringField(PersistenceCapable, int, String)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Provide state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#providedStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String)"><B>providedStringField(PersistenceCapable, int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#providedStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String)"><B>providedStringField(PersistenceCapable, int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#providedStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String)"><B>providedStringField(PersistenceCapable, int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#providedStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String)"><B>providedStringField(PersistenceCapable, int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#provideField(java.lang.Object, org.apache.openjpa.kernel.StateManagerImpl, int)"><B>provideField(Object, StateManagerImpl, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util"><B>Proxies</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utility methods for managing proxies.<DT><A HREF="./org/apache/openjpa/util/Proxies.html#Proxies()"><B>Proxies()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util">Proxies</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxy.html" title="interface in org.apache.openjpa.util"><B>Proxy</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface implemented by all proxy types to allow setting and nulling
 of their owning instance.<DT><A HREF="./org/apache/openjpa/util/ProxyBean.html" title="interface in org.apache.openjpa.util"><B>ProxyBean</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface implemented by all generated custom types, which use JavaBean
 conventions for copying state.<DT><A HREF="./org/apache/openjpa/util/ProxyCalendar.html" title="interface in org.apache.openjpa.util"><B>ProxyCalendar</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface implemented by all generated proxies on <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html" title="class or interface in java.util"><CODE>Calendar</CODE></A>
 types.<DT><A HREF="./org/apache/openjpa/util/ProxyCollection.html" title="interface in org.apache.openjpa.util"><B>ProxyCollection</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface implemented by all proxy collection types.<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util"><B>ProxyCollections</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utility methods used by collection proxies.<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#ProxyCollections()"><B>ProxyCollections()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.ProxyIterator.html" title="interface in org.apache.openjpa.util"><B>ProxyCollections.ProxyIterator</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Marker interface for a proxied iterator.<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.ProxyListIterator.html" title="interface in org.apache.openjpa.util"><B>ProxyCollections.ProxyListIterator</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Marker interface for a proxied list iterator.<DT><A HREF="./org/apache/openjpa/util/ProxyDate.html" title="interface in org.apache.openjpa.util"><B>ProxyDate</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface implemented by all generated proxies on <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html" title="class or interface in java.util"><CODE>Date</CODE></A>
 types.<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#proxyDetachedDeserialized(int)"><B>proxyDetachedDeserialized(int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Proxy the given detached field after deserialization.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#proxyDetachedDeserialized(int)"><B>proxyDetachedDeserialized(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#proxyDetachedDeserialized(int)"><B>proxyDetachedDeserialized(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#proxyDetachedDeserialized(int)"><B>proxyDetachedDeserialized(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#proxyDetachedDeserialized(int)"><B>proxyDetachedDeserialized(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util"><B>ProxyManager</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Manager for copying and proxying second class objects.<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util"><B>ProxyManagerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Default implementation of the <A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util"><CODE>ProxyManager</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#ProxyManagerImpl()"><B>ProxyManagerImpl()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#proxyManagerPlugin"><B>proxyManagerPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMap.html" title="interface in org.apache.openjpa.util"><B>ProxyMap</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface implemented by proxies on <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> types.<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util"><B>ProxyMaps</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Utility methods used by map proxies.<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#ProxyMaps()"><B>ProxyMaps()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html" title="interface in org.apache.openjpa.util"><B>ProxyMaps.ProxyEntrySet</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Marker interface for a proxy entry set.<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#purge(java.lang.ref.Reference)"><B>purge(Reference)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#pushBack()"><B>pushBack()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#pushBack()"><B>pushBack()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#pushBack()"><B>pushBack()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Push back the last result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#pushBack()"><B>pushBack()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#pushElement(java.lang.Object)"><B>pushElement(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Push a parse element onto the stack.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#put(org.apache.openjpa.datacache.DataCachePCData)"><B>put(DataCachePCData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#put(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)"><B>put(QueryKey, QueryResult)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#put(org.apache.openjpa.datacache.DataCachePCData)"><B>put(DataCachePCData)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Set the cached value for the given instance.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#put(org.apache.openjpa.datacache.DataCachePCData)"><B>put(DataCachePCData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#put(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)"><B>put(QueryKey, QueryResult)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#put(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)"><B>put(QueryKey, QueryResult)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Set the list of OIDs for the given query key.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Associates the specified value with the specified key in this map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Associates the specified value with the specified key in this HashMap.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#put(java.util.Map, java.lang.Object, java.lang.Object)"><B>put(Map, Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Put the given entry into the given map.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Copies all of the mappings from the specified map to this map
 These mappings will replace any mappings that
 this map had for any of the keys currently in the specified map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Copies all of the mappings from the specified Map to this HashMap
 These mappings will replace any mappings that this HashMap had for any
 of the keys currently in the specified Map.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>Circumvents the superclass <A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#putAll(java.util.Map)"><CODE>FormatPreservingProperties.putAll(java.util.Map)</CODE></A> implementation,
 putting all the key-value pairs via <A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#put(java.lang.Object, java.lang.Object)"><CODE>FormatPreservingProperties.put(java.lang.Object, java.lang.Object)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#putAll(org.apache.openjpa.util.ProxyMap, java.util.Map)"><B>putAll(ProxyMap, Map)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Overload for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#putAll(java.util.Map)" title="class or interface in java.util"><CODE>Map.putAll(java.util.Map<? extends K, ? extends V>)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#putAllInternal(java.util.Collection)"><B>putAllInternal(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>All all of the given objects to the cache.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html#putBrokerFactoryAliases(java.util.Map)"><B>putBrokerFactoryAliases(Map)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html" title="interface in org.apache.openjpa.conf">OpenJPAProductDerivation</A>
<DD>Load default alias options into the given map.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html#putBrokerFactoryAliases(java.util.Map)"><B>putBrokerFactoryAliases(Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCProductDerivation.html" title="class in org.apache.openjpa.jdbc.conf">JDBCProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html#putBrokerFactoryAliases(java.util.Map)"><B>putBrokerFactoryAliases(Map)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCPersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#putBrokerFactoryAliases(java.util.Map)"><B>putBrokerFactoryAliases(Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#putBytes(java.lang.Object, byte[])"><B>putBytes(Object, byte[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Invoke the JDK 1.4 <code>setBytes</code> method on the given BLOB object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#putBytes(java.lang.Object, byte[])"><B>putBytes(Object, byte[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Invoke Oracle's <code>putBytes</code> method on the given BLOB object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#putChars(java.lang.Object, char[])"><B>putChars(Object, char[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Invoke the JDK 1.4 <code>setCharacterStream</code> method on the given
 CLOB object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#putChars(java.lang.Object, char[])"><B>putChars(Object, char[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Invoke Oracle's <code>putChars</code> method on the given CLOB
 object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#putData(org.apache.openjpa.kernel.OpenJPAStateManager, java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>putData(OpenJPAStateManager, ResultSet, DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#putData(org.apache.openjpa.kernel.OpenJPAStateManager, java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>putData(OpenJPAStateManager, ResultSet, DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#putData(org.apache.openjpa.kernel.OpenJPAStateManager, java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>putData(OpenJPAStateManager, ResultSet, DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#putData(org.apache.openjpa.kernel.OpenJPAStateManager, java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>putData(OpenJPAStateManager, ResultSet, DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#putEager(org.apache.openjpa.jdbc.meta.FieldMapping, java.lang.Object)"><B>putEager(FieldMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#putEager(org.apache.openjpa.jdbc.meta.FieldMapping, java.lang.Object)"><B>putEager(FieldMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#putEager(org.apache.openjpa.jdbc.meta.FieldMapping, java.lang.Object)"><B>putEager(FieldMapping, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>The eager result for the given key, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#putEager(org.apache.openjpa.jdbc.meta.FieldMapping, java.lang.Object)"><B>putEager(FieldMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#putIfAbsent(java.lang.Object, java.lang.Object)"><B>putIfAbsent(Object, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#putInternal(java.lang.Object, org.apache.openjpa.datacache.DataCachePCData)"><B>putInternal(Object, DataCachePCData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Add the given object to the cache, returning the old object under the
 given oid.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#putInternal(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)"><B>putInternal(QueryKey, QueryResult)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Add the given result to the cache, returning the old result under the
 given key.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#putInternal(java.lang.Object, org.apache.openjpa.datacache.DataCachePCData)"><B>putInternal(Object, DataCachePCData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#putInternal(org.apache.openjpa.datacache.QueryKey, org.apache.openjpa.datacache.QueryResult)"><B>putInternal(QueryKey, QueryResult)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#putString(java.lang.Object, java.lang.String)"><B>putString(Object, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Invoke the JDK 1.4 <code>setString</code> method on the given CLOB
 object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#putString(java.lang.Object, java.lang.String)"><B>putString(Object, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>Invoke Oracle's <code>putString</code> method on the given CLOB object.
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#putUpdate(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.kernel.exps.Value)"><B>putUpdate(FieldMetaData, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>Add an update.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Put the specified key-value pair into the map of user objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Put the specified key-value pair into the map of user objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Put the specified key-value pair into the map of user objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html#putUserObject(java.lang.Object, java.lang.Object)"><B>putUserObject(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactory.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactory</A>
<DD>Put the specified key-value pair into the map of user objects.
</DL>
<HR>
<A NAME="_Q_"><!-- --></A><H2>
<B>Q</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html#query"><B>query</B></A> - 
Variable in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.ParsedJPQL</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel"><B>Query</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>OpenJPA query interface.<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache"><B>QueryCache</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Interface that must be implemented by any level 2 query cache
 used by OpenJPA.<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#queryCache"><B>queryCache</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#queryCachePlugin"><B>queryCachePlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache"><B>QueryCacheStoreQuery</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>A <A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel"><CODE>StoreQuery</CODE></A> implementation that caches the OIDs involved in
 the query, and can determine whether or not the query has been dirtied.<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#QueryCacheStoreQuery(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.datacache.QueryCache)"><B>QueryCacheStoreQuery(StoreQuery, QueryCache)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>Create a new instance that delegates to <code>query</code> if no
 cached results are available.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html" title="class in org.apache.openjpa.datacache"><B>QueryCacheStoreQuery.CachedList</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>Result list implementation for a cached query result.<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html#QueryCacheStoreQuery.CachedList(org.apache.openjpa.datacache.QueryResult, boolean, org.apache.openjpa.kernel.StoreContext)"><B>QueryCacheStoreQuery.CachedList(QueryResult, boolean, StoreContext)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery.CachedList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#queryCompilationCachePlugin"><B>queryCompilationCachePlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html" title="class in org.apache.openjpa.conf"><B>QueryCompilationCacheValue</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>A cache of compiled queries.<DT><A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html#QueryCompilationCacheValue(java.lang.String)"><B>QueryCompilationCacheValue(String)</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/QueryCompilationCacheValue.html" title="class in org.apache.openjpa.conf">QueryCompilationCacheValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel"><B>QueryContext</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A query execution context.<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps"><B>QueryExpressions</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Struct to hold the state of a parsed expression query.<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#QueryExpressions()"><B>QueryExpressions()</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>QueryExpressionsState</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Struct to hold the state of a query expressions instance.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html#QueryExpressionsState()"><B>QueryExpressionsState()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/QueryExpressionsState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">QueryExpressionsState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html" title="interface in org.apache.openjpa.kernel"><B>QueryFlushModes</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Constants for determining when to flush before queries.<DT><A HREF="./org/apache/openjpa/kernel/QueryHints.html" title="interface in org.apache.openjpa.kernel"><B>QueryHints</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Standard query hint keys.<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel"><B>QueryImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Implementation of the <A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel"><CODE>Query</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#QueryImpl(org.apache.openjpa.kernel.Broker, java.lang.String, org.apache.openjpa.kernel.StoreQuery)"><B>QueryImpl(Broker, String, StoreQuery)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>Construct a query managed by the given broker.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence"><B>QueryImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implementation of <A HREF="http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html" title="class or interface in javax.persistence"><CODE>Query</CODE></A> interface.<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#QueryImpl(org.apache.openjpa.persistence.EntityManagerImpl, org.apache.openjpa.kernel.Query)"><B>QueryImpl(EntityManagerImpl, Query)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>Constructor; supply factory and delegate.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html" title="class in org.apache.openjpa.kernel"><B>QueryImpl.Compilation</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Struct of compiled query properties.<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html#QueryImpl.Compilation()"><B>QueryImpl.Compilation()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html" title="class in org.apache.openjpa.kernel">QueryImpl.Compilation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel"><B>QueryImpl.RemoveOnCloseResultList</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Result list that removes itself from the query's open result list
 when it is closed.<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#QueryImpl.RemoveOnCloseResultList(org.apache.openjpa.lib.rop.ResultList)"><B>QueryImpl.RemoveOnCloseResultList(ResultList)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache"><B>QueryKey</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>This class stores information about a particular invocation of
 a query.<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#QueryKey()"><B>QueryKey()</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>Public constructor for externalization only.
<DT><A HREF="./org/apache/openjpa/kernel/QueryLanguages.html" title="class in org.apache.openjpa.kernel"><B>QueryLanguages</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Constants and utilities for query languages.<DT><A HREF="./org/apache/openjpa/kernel/QueryLanguages.html#QueryLanguages()"><B>QueryLanguages()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryLanguages.html" title="class in org.apache.openjpa.kernel">QueryLanguages</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta"><B>QueryMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Holds metadata about named queries.<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#QueryMetaData(java.lang.String)"><B>QueryMetaData(String)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Construct with the given name.
<DT><A HREF="./org/apache/openjpa/kernel/QueryOperations.html" title="interface in org.apache.openjpa.kernel"><B>QueryOperations</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Query operation constants.<DT><A HREF="./org/apache/openjpa/persistence/QueryOperationType.html" title="enum in org.apache.openjpa.persistence"><B>QueryOperationType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible operations that a query can perform.<DT><A HREF="./org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache"><B>QueryResult</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>A query result.<DT><A HREF="./org/apache/openjpa/datacache/QueryResult.html#QueryResult(org.apache.openjpa.datacache.QueryKey, java.util.Collection)"><B>QueryResult(QueryKey, Collection)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A>
<DD>Constructor; supply corresponding query key and result data.
<DT><A HREF="./org/apache/openjpa/datacache/QueryResult.html#QueryResult(java.util.Collection, long)"><B>QueryResult(Collection, long)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryResult.html" title="class in org.apache.openjpa.datacache">QueryResult</A>
<DD>Constructor to set internal data from a serializer.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCache.html" title="interface in org.apache.openjpa.persistence"><B>QueryResultCache</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Query result cache.<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence"><B>QueryResultCacheImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implements Query result cache via delegation to QueryCache.<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#QueryResultCacheImpl(org.apache.openjpa.datacache.QueryCache)"><B>QueryResultCacheImpl(QueryCache)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta"><B>QueryResultMapping</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Mapping of a query result set to scalar and/or persistence-capable
 object-level values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.PCResult.html" title="class in org.apache.openjpa.jdbc.meta"><B>QueryResultMapping.PCResult</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>A persistence-capable result.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent"><B>Queue</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A collection designed for holding elements prior to processing.</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop"><B>RandomAccessResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Random-access result list implementation.<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#RandomAccessResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>RandomAccessResultList(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#randomEntryIterator()"><B>randomEntryIterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentMap.html#randomEntryIterator()"><B>randomEntryIterator()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentMap.html" title="interface in org.apache.openjpa.lib.util.concurrent">ConcurrentMap</A>
<DD>Iterate over map entries, beginning at an arbitrary
 (not strictly random) entry.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#randomEntryIterator()"><B>randomEntryIterator()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#range"><B>range</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#RANGE_POST_DISTINCT"><B>RANGE_POST_DISTINCT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#RANGE_POST_LOCK"><B>RANGE_POST_LOCK</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#RANGE_POST_SELECT"><B>RANGE_POST_SELECT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#RANGE_PRE_DISTINCT"><B>RANGE_PRE_DISTINCT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#rangePosition"><B>rangePosition</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop"><B>RangeResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Prevents a view of a given range of indices from the delegate
 result object provider.<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#RangeResultObjectProvider(org.apache.openjpa.lib.rop.ResultObjectProvider, long, long)"><B>RangeResultObjectProvider(ResultObjectProvider, long, long)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Raw.html" title="class in org.apache.openjpa.jdbc.sql"><B>Raw</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Represents a raw SQL string for passing to
 <code>Row.setObject</code>.<DT><A HREF="./org/apache/openjpa/jdbc/sql/Raw.html#Raw(java.lang.String)"><B>Raw(String)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Raw.html" title="class in org.apache.openjpa.jdbc.sql">Raw</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#read()"><B>read()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#read(char[])"><B>read(char[])</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#read(char[], int, int)"><B>read(char[], int, int)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#READ_OK"><B>READ_OK</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#READ_WRITE_OK"><B>READ_WRITE_OK</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html" title="class in org.apache.openjpa.event">BeanLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Implementation of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Externalizable.html" title="class or interface in java.io"><CODE>Externalizable</CODE></A> interface to read from
 the properties written by <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#writeExternal(java.io.ObjectOutput)"><CODE>ConfigurationImpl.writeExternal(java.io.ObjectOutput)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#readLock()"><B>readLock()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Acquire read lock.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#readLockLevel"><B>readLockLevel</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#readLockLevel"><B>readLockLevel</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ReadOnly.html" title="annotation in org.apache.openjpa.persistence"><B>ReadOnly</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Marks a field read-only.<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#readResolve()"><B>readResolve()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Replaces the factory with this JVMs pooled version if it exists.
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#readResolve()"><B>readResolve()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#readSchema"><B>readSchema</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#readSchema()"><B>readSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#readSchema()"><B>readSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#readSchema()"><B>readSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html#readSchema()"><B>readSchema()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaFactory</A>
<DD>Return the schema group for the current object model and database.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#readSchema()"><B>readSchema()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#readSchemaColumn()"><B>readSchemaColumn()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Returns the schema as an XML string.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#readUnlock()"><B>readUnlock()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Release read lock.
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#ready()"><B>ready()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#realTypeName"><B>realTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#recacheUpdates()"><B>recacheUpdates()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Return <code>true</code> if updates to data already in the
 cache (either in <A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><CODE>AbstractDataCache.commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)</CODE></A> or the <A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#update(org.apache.openjpa.datacache.DataCachePCData)"><CODE>AbstractDataCache.update(org.apache.openjpa.datacache.DataCachePCData)</CODE></A>)
 should be put back into the cache.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.QueuedSync.html#recheck(org.apache.openjpa.lib.util.concurrent.WaitQueue.WaitNode)"><B>recheck(WaitQueue.WaitNode)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.QueuedSync.html" title="interface in org.apache.openjpa.lib.util.concurrent">WaitQueue.QueuedSync</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#record()"><B>record()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Writes the generated code to the proper file.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#record()"><B>record()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Write the generated bytecode.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#record()"><B>record()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Records the changes that have been made to both the mappings and the
 associated schema, and clears the tool for further use.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#record"><B>record</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#record()"><B>record()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Record the changes made to the DB in the current <A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>SchemaFactory</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#record()"><B>record()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Record metadata changes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#recordCode()"><B>recordCode()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Uses <A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance"><CODE>CodeGenerator</CODE></A>s to write the Java code for the generated
 mappings to the proper packages.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#recordCode(java.util.Map)"><B>recordCode(Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Write the code for the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#recordMetaData(boolean)"><B>recordMetaData(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Write the generated metadata to the proper packages.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#recordMetaData(boolean, java.util.Map)"><B>recordMetaData(boolean, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Write the code for the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#recordOrder(java.lang.Object, boolean)"><B>recordOrder(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>Record that we're ordering by a SQL expression.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#recordOrderColumns(org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>recordOrderColumns(Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>Record that we're ordering by the given columns.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#RECURSION_DEPTH_DEFAULT"><B>RECURSION_DEPTH_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Default field recursion depth.
<DT><A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html#redefineClasses(org.apache.openjpa.conf.OpenJPAConfiguration, java.util.Map)"><B>redefineClasses(OpenJPAConfiguration, Map&lt;Class, byte[]&gt;)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ClassRedefiner.html" title="class in org.apache.openjpa.enhance">ClassRedefiner</A>
<DD>For each element in <code>classes</code>, this method will redefine
 all the element's methods such that field accesses are intercepted
 in-line.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance"><B>RedefinitionHelper</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Helper methods for managed types that use method redefinition for field
 tracking.<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#RedefinitionHelper()"><B>RedefinitionHelper()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>ReentrantLock</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A reentrant mutual exclusion <A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent"><CODE>Lock</CODE></A> with the same basic
 behavior and semantics as the implicit monitor lock accessed using
 <tt>synchronized</tt> methods and statements, but with extended capabilities.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#ReentrantLock()"><B>ReentrantLock()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Creates an instance of <tt>ReentrantLock</tt>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#ReentrantLock(boolean)"><B>ReentrantLock(boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Creates an instance of <tt>ReentrantLock</tt> with the
 given fairness policy.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#ref()"><B>ref()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#REF"><B>REF</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#refColumns()"><B>refColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Ref all columns in this key.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#refColumns()"><B>refColumns()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Ref all columns in this constraint.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util"><B>ReferenceHashMap</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Map in which the key, value, or both may be weak/soft references.<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#ReferenceHashMap(int, int)"><B>ReferenceHashMap(int, int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#ReferenceHashMap(int, int, int, float)"><B>ReferenceHashMap(int, int, int, float)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util"><B>ReferenceHashSet</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A set whose values may be stored as weak or soft references.<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#ReferenceHashSet(int)"><B>ReferenceHashSet(int)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>Construct a set with the given reference type.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util"><B>ReferenceMap</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> type that can hold its keys, values, or both with
 weak or soft references.<DT><A HREF="./org/apache/openjpa/util/StoreException.html#REFERENTIAL_INTEGRITY"><B>REFERENTIAL_INTEGRITY</B></A> - 
Static variable in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util"><B>ReferentialIntegrityException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type reserved for violations of integrity constraints.<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#ReferentialIntegrityException(java.lang.String)"><B>ReferentialIntegrityException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#ReferentialIntegrityException(int)"><B>ReferentialIntegrityException(int)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance"><B>ReflectingPersistenceCapable</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Implementation of the <A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A> interface that can handle
 the persistence-capable contract for instances that were not enhanced
 before class load time.<DT><A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html#ReflectingPersistenceCapable(java.lang.Object, org.apache.openjpa.conf.OpenJPAConfiguration)"><B>ReflectingPersistenceCapable(Object, OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance"><B>Reflection</B></A> - Class in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Reflection utilities used to support and augment enhancement.<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#Reflection()"><B>Reflection()</B></A> - 
Constructor for class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#refresh(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>refresh(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Refresh the state of the given object.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#refresh(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>refresh(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#refresh(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>refresh(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#refresh(java.lang.Object)"><B>refresh(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#refreshAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>refreshAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Refresh the state of the given objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#refreshAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>refreshAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#refreshAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>refreshAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#refreshAll()"><B>refreshAll()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#refreshAll(java.util.Collection)"><B>refreshAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#refreshAll(java.lang.Object...)"><B>refreshAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#refreshAll(java.lang.Object...)"><B>refreshAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Refresh the state of the given objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#refreshAll(java.util.Collection)"><B>refreshAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Refresh the state of the given objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#refreshAll()"><B>refreshAll()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Refresh all transactional objects.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#refreshInternal(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>refreshInternal(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>This method is called with the full set of objects reachable via
 cascade-refresh relations from the user-given instances.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#refreshInternal(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>refreshInternal(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Optimization for single-object refresh.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#refreshRow()"><B>refreshRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#refreshSequence()"><B>refreshSequence()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>Creates the sequence in the DB.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta"><B>RefreshStrategyInstaller</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Attempts to install using the given mapping information.<DT><A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html#RefreshStrategyInstaller(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>RefreshStrategyInstaller(MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RefreshStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RefreshStrategyInstaller</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#refreshTable()"><B>refreshTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Creates the sequence table in the DB.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#refreshTable()"><B>refreshTable()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Creates the schema table in the DB.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#refSchemaComponents()"><B>refSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#refSchemaComponents()"><B>refSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Increment the reference count of used schema components.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#refSchemaComponents()"><B>refSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Increment the reference count of used schema components.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#refSchemaComponents()"><B>refSchemaComponents()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Increase the reference count on used schema components.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#refSchemaComponents()"><B>refSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#refSchemaComponents()"><B>refSchemaComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Increment the reference count of used schema components.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#refSchemaComponents(org.apache.openjpa.jdbc.schema.Table)"><B>refSchemaComponents(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Increment the reference count of any table components that this
 dictionary adds that are not used by mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#refSchemaComponents(org.apache.openjpa.jdbc.schema.Table)"><B>refSchemaComponents(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#refTypeName"><B>refTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#register(java.lang.Class, java.lang.String[], java.lang.Class[], byte[], java.lang.Class, java.lang.String, org.apache.openjpa.enhance.PersistenceCapable)"><B>register(Class, String[], Class[], byte[], Class, String, PersistenceCapable)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Register metadata by class.
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.RegisterClassListener.html#register(java.lang.Class)"><B>register(Class)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.RegisterClassListener.html" title="interface in org.apache.openjpa.enhance">PCRegistry.RegisterClassListener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#register(java.lang.Class)"><B>register(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html#registerImplementation(java.lang.Class, java.lang.Class, java.lang.Class)"><B>registerImplementation(Class, Class, Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html" title="class in org.apache.openjpa.util">StoreFacadeTypeRegistry</A>
<DD>Register a facade implementation.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#registerOutParameter(int, int)"><B>registerOutParameter(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#registerOutParameter(int, int, int)"><B>registerOutParameter(int, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#registerOutParameter(int, int, java.lang.String)"><B>registerOutParameter(int, int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#registerOutParameter(java.lang.String, int)"><B>registerOutParameter(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#registerOutParameter(java.lang.String, int, int)"><B>registerOutParameter(String, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#registerOutParameter(java.lang.String, int, java.lang.String)"><B>registerOutParameter(String, int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#registerSynchronization(javax.transaction.Synchronization)"><B>registerSynchronization(Synchronization)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>RegistryManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>Implementation of the <A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> interface that uses 
 the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionSynchronizationRegistry.html" title="class or interface in javax.transaction"><CODE>TransactionSynchronizationRegistry</CODE></A> interface (new in JTA 1.1)
 to create a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionManager.html" title="class or interface in javax.transaction"><CODE>TransactionManager</CODE></A> facade for controlling transactions.<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#RegistryManagedRuntime()"><B>RegistryManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee"><B>RegistryManagedRuntime.TransactionManagerRegistryFacade</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD>A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionManager.html" title="class or interface in javax.transaction"><CODE>TransactionManager</CODE></A> and <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/Transaction.html" title="class or interface in javax.transaction"><CODE>Transaction</CODE></A> facade
  that delegates the appropriate methods to the internally-held
  <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionSynchronizationRegistry.html" title="class or interface in javax.transaction"><CODE>TransactionSynchronizationRegistry</CODE></A>.<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#RegistryManagedRuntime.TransactionManagerRegistryFacade(javax.transaction.TransactionSynchronizationRegistry)"><B>RegistryManagedRuntime.TransactionManagerRegistryFacade(TransactionSynchronizationRegistry)</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationCollectionInverseKeyFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Maps a relation to a collection of other objects using an inverse
 foreign key in the related object table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#RelationCollectionInverseKeyFieldStrategy()"><B>RelationCollectionInverseKeyFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationCollectionTableFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Maps a collection of related objects through an association table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#RelationCollectionTableFieldStrategy()"><B>RelationCollectionTableFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for a single-valued relation to another entity.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#RelationFieldStrategy()"><B>RelationFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RelationId.html" title="interface in org.apache.openjpa.jdbc.meta"><B>RelationId</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Callback to store a relation after the object id has been assigned.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationMapInverseKeyFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Uses an inverse foreign key in the table of the map value to determine
 map values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#RelationMapInverseKeyFieldStrategy()"><B>RelationMapInverseKeyFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationMapTableFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Uses an association table to hold map values.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#RelationMapTableFieldStrategy()"><B>RelationMapTableFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationStrategies</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Helper methods for relation mappings.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#RelationStrategies()"><B>RelationStrategies()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationToManyInverseKeyFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Maps a relation to a set of other objects using an inverse
 foreign key in the related object table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#RelationToManyInverseKeyFieldStrategy()"><B>RelationToManyInverseKeyFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>RelationToManyTableFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Maps a set of related objects through an association table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#RelationToManyTableFieldStrategy()"><B>RelationToManyTableFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#relative(int)"><B>relative(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#release(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>release(Object, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Release the given object from management.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#release(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>release(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#release(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)"><B>release(Object, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#release(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>release(OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Release the lock on the given object.
<DT><A HREF="./org/apache/openjpa/kernel/NoneLockManager.html#release(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>release(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/NoneLockManager.html" title="class in org.apache.openjpa.kernel">NoneLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#release(boolean)"><B>release(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Release this savepoint and any associated resources.
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#release(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>release(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Nulls given instance's lock object.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#release(java.lang.Object)"><B>release(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#release(java.lang.Object)"><B>release(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Release the given object from management.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#RELEASE_STATUS"><B>RELEASE_STATUS</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#releaseAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>releaseAll(Collection, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Release the given objects from management.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#releaseAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>releaseAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#releaseAll(java.util.Collection, org.apache.openjpa.kernel.OpCallbacks)"><B>releaseAll(Collection, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#releaseAll(java.util.Collection)"><B>releaseAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#releaseAll(java.lang.Object...)"><B>releaseAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#releaseAll(java.lang.Object...)"><B>releaseAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Release the given object from management.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#releaseAll(java.util.Collection)"><B>releaseAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Release the given objects from management.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#releaseConnection()"><B>releaseConnection()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Override to release previously-retained connection.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#releaseConnection()"><B>releaseConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#releaseConnection()"><B>releaseConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#releaseConnection()"><B>releaseConnection()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Instruct the store to release a retained connection.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#releaseSavepoint()"><B>releaseSavepoint()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Release the last set savepoint and any resources associated with it.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#releaseSavepoint(java.lang.String)"><B>releaseSavepoint(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Release the savepoint and any resources associated with it.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#releaseSavepoint()"><B>releaseSavepoint()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#releaseSavepoint(java.lang.String)"><B>releaseSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#releaseSavepoint()"><B>releaseSavepoint()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#releaseSavepoint(java.lang.String)"><B>releaseSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#releaseSavepoint(java.sql.Savepoint)"><B>releaseSavepoint(Savepoint)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#releaseSavepoint()"><B>releaseSavepoint()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#releaseSavepoint(java.lang.String)"><B>releaseSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#releaseSavepoint()"><B>releaseSavepoint()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Release the last set savepoint and any resources associated with it.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#releaseSavepoint(java.lang.String)"><B>releaseSavepoint(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Release the savepoint and any resources associated with it.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#rem"><B>rem</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Collection of removed items.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event"><B>RemoteCommitEvent</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Event type to hold the IDs of additions, updates, and
 deletes.<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#RemoteCommitEvent()"><B>RemoteCommitEvent()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>Constructor used during externalization.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#RemoteCommitEvent(int, java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>RemoteCommitEvent(int, Collection, Collection, Collection, Collection)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event"><B>RemoteCommitEventManager</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Manager that can be used to track and notify
 <A HREF="./org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitListener</CODE></A>s on remote commit events.<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#RemoteCommitEventManager(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>RemoteCommitEventManager(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitListener.html" title="interface in org.apache.openjpa.event"><B>RemoteCommitListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>An entity that wishes to be notified when Brokers
 associated with remote BrokerFactories commit.<DT><A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><B>RemoteCommitProvider</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>An entity that is responsible for communicating commit
 notification to other <A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event"><CODE>RemoteCommitEventManager</CODE></A>s.<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf"><B>RemoteCommitProviderValue</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Value type used to represent a <A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitProvider</CODE></A>.<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#RemoteCommitProviderValue()"><B>RemoteCommitProviderValue()</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#remoteEventManager"><B>remoteEventManager</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#remoteProviderPlugin"><B>remoteProviderPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#remove(org.apache.openjpa.datacache.QueryKey)"><B>remove(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Remove the value stored under the given oid.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#remove(org.apache.openjpa.datacache.QueryKey)"><B>remove(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#remove(org.apache.openjpa.datacache.QueryKey)"><B>remove(QueryKey)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Remove the value stored under the given query key.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerList.html" title="class in org.apache.openjpa.event">LifecycleEventManager.ListenerList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#remove()"><B>remove()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#remove(int)"><B>remove(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#remove(int)"><B>remove(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#remove(int)"><B>remove(int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html#remove()"><B>remove()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop">ResultObjectProviderIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Removes the mapping for this key from this map if present.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Removes a single instance of the specified element from this queue,
 if it is present.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Removes the mapping for this key from this HashMap if present.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#remove(int)"><B>remove(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Removes the specified element from this set if it is present.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html#remove()"><B>remove()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Queue.html" title="interface in org.apache.openjpa.lib.util.concurrent">Queue</A>
<DD>Retrieves and removes the head of this queue.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>Removes the key from the bookkeeping collectiotns as well.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Mark the given value as removed.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#remove(java.util.Map, java.lang.Object)"><B>remove(Map, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Remove the given key from the given map.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>If <code>key</code> is pinned into the cache, the pin is
 cleared and the object is removed.
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#removeAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>removeAggregateListener(AggregateListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#removeAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>removeAggregateListener(AggregateListener)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Remove an aggregate listener from the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#removeAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>removeAggregateListener(AggregateListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html#removeAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>removeAggregateListener(AggregateListener)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuerySPI</A>
<DD>Remove an aggregate listener from the query.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#removeAggregateListener(org.apache.openjpa.kernel.exps.AggregateListener)"><B>removeAggregateListener(AggregateListener)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#removeAlias(java.lang.Object)"><B>removeAlias(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeAll(java.lang.Class, boolean)"><B>removeAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Remove the objects of the given class from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Remove the values stored under the given oids.
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#removeAll(java.lang.Class, boolean)"><B>removeAll(Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Evict all values of a specified type.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#removeAll(java.lang.Class, boolean)"><B>removeAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#removeAll(org.apache.openjpa.jdbc.schema.Schema)"><B>removeAll(Schema)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Remove the given schema's objects from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#removeAll(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>removeAll(SchemaGroup)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Remove all schemas in the given group from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#removeAll(org.apache.openjpa.jdbc.schema.Schema)"><B>removeAll(Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#removeAll(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>removeAll(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Removes from this set all of its elements that are contained in the
 specified collection.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#removeAll(org.apache.openjpa.meta.MetaDataRepository)"><B>removeAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Remove all the components in the given repository from the set to be
 serialized.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#removeAll(java.lang.Object...)"><B>removeAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#removeAll(org.apache.openjpa.meta.MetaDataRepository)"><B>removeAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#removeAll(org.apache.openjpa.meta.MetaDataRepository)"><B>removeAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#removeAll(java.lang.Object...)"><B>removeAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Delete the given persistent objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Delete the given persistent objects.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#removeAll(org.apache.openjpa.meta.MetaDataRepository)"><B>removeAll(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Remove all the components in the given repository from the set to be
 serialized.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#removeAll(java.util.Collection)"><B>removeAll(Collection)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#removeAll(org.apache.openjpa.util.ProxyCollection, java.util.Collection)"><B>removeAll(ProxyCollection, Collection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Override for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#removeAll(java.util.Collection)" title="class or interface in java.util"><CODE>Collection.removeAll(java.util.Collection<?>)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeAllInternal(java.lang.Class, boolean)"><B>removeAllInternal(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Evict objects in cache by class.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeAllInternal(java.util.Collection)"><B>removeAllInternal(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Remove all objects under the given oids from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#removeAllInternal(java.util.Collection)"><B>removeAllInternal(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Remove all results under the given keys from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#removeAllInternal(java.lang.Class, boolean)"><B>removeAllInternal(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeAllTypeNamesInternal(java.util.Collection)"><B>removeAllTypeNamesInternal(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Remove all objects of the given class names from the cache.
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#removeBooleanProperty(java.lang.String, java.lang.String, boolean)"><B>removeBooleanProperty(String, String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeBooleanProperty(java.lang.String)"><CODE>TypedProperties.removeBooleanProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeBooleanProperty(java.lang.String)"><B>removeBooleanProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a boolean.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeBooleanProperty(java.lang.String, boolean)"><B>removeBooleanProperty(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a boolean, or return the
 given default if it does not exist.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#removeClassLoader(java.lang.ClassLoader)"><B>removeClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Remove the given loader from the list.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#removeColumn(org.apache.openjpa.jdbc.schema.Column)"><B>removeColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Remove a column from the constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#removeColumn(org.apache.openjpa.jdbc.schema.Column)"><B>removeColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Remove the given column from the table.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#removed(int, java.lang.Object, boolean)"><B>removed(int, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#removed(int, java.lang.Object, boolean)"><B>removed(int, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#removed(int, java.lang.Object, boolean)"><B>removed(int, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#removed(int, java.lang.Object, boolean)"><B>removed(int, Object, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Notification that an element has been removed from the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#removed(int, java.lang.Object, boolean)"><B>removed(int, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#removed(java.lang.Object)"><B>removed(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Notify the tracker that the given object was removed.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#removed(java.lang.Object)"><B>removed(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#removed(java.lang.Object, java.lang.Object)"><B>removed(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTracker.html#removed(java.lang.Object)"><B>removed(Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTracker.html" title="interface in org.apache.openjpa.util">CollectionChangeTracker</A>
<DD>Record that the given element was removed.
<DT><A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html#removed(java.lang.Object)"><B>removed(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CollectionChangeTrackerImpl.html" title="class in org.apache.openjpa.util">CollectionChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTracker.html#removed(java.lang.Object, java.lang.Object)"><B>removed(Object, Object)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util">MapChangeTracker</A>
<DD>Record that the given entry was removed from the map.
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#removed(java.lang.Object, java.lang.Object)"><B>removed(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxies.html#removed(org.apache.openjpa.util.Proxy, java.lang.Object, boolean)"><B>removed(Proxy, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util">Proxies</A>
<DD>Used by proxy types to notify collection owner on element removal.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#removeDeclaredFetchGroup(org.apache.openjpa.meta.FetchGroup)"><B>removeDeclaredFetchGroup(FetchGroup)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Remove a declared fetch group.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#removeDeclaredField(org.apache.openjpa.meta.FieldMetaData)"><B>removeDeclaredField(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Remove the given field from management.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#removeDeclaredInterface(java.lang.Class)"><B>removeDeclaredInterface(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Remove the given interface from the declared list.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html#removeDecorator(org.apache.openjpa.lib.jdbc.ConnectionDecorator)"><B>removeDecorator(ConnectionDecorator)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DecoratingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DecoratingDataSource</A>
<DD>Remove a connection decorator.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#removeDefinedSuperclassField(org.apache.openjpa.meta.FieldMetaData)"><B>removeDefinedSuperclassField(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Remove the given field from management.
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#removeDoubleProperty(java.lang.String, java.lang.String, double)"><B>removeDoubleProperty(String, String, double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeDoubleProperty(java.lang.String)"><CODE>TypedProperties.removeDoubleProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeDoubleProperty(java.lang.String)"><B>removeDoubleProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a double.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeDoubleProperty(java.lang.String, double)"><B>removeDoubleProperty(String, double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a double, or return the
 given default if it does not exist.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#removeEdge(org.apache.openjpa.lib.graph.Edge)"><B>removeEdge(Edge)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Remove an edge from the graph.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#removeEmbeddedExtensions(java.lang.String)"><B>removeEmbeddedExtensions(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#removeEmbeddedExtensions(java.lang.String, java.lang.String)"><B>removeEmbeddedExtensions(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeExpirationListener(org.apache.openjpa.datacache.ExpirationListener)"><B>removeExpirationListener(ExpirationListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#removeExpirationListener(org.apache.openjpa.datacache.ExpirationListener)"><B>removeExpirationListener(ExpirationListener)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Remove an expiration event listener from this cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#removeExpirationListener(org.apache.openjpa.datacache.ExpirationListener)"><B>removeExpirationListener(ExpirationListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#removeExpired()"><B>removeExpired()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#removeExpired()"><B>removeExpired()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html#removeExpired()"><B>removeExpired()</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util">ReferenceMap</A>
<DD>Purge stale entries.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#removeExtension(java.lang.String)"><B>removeExtension(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Remove a vendor extension.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#removeExtension(java.lang.String, java.lang.String)"><B>removeExtension(String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Remove a vendor extension.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Remove the given fetch group.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Remove the given fetch group.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFetchGroup(java.lang.String)"><B>removeFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Removes <code>groups</code> from the set of fetch group names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFetchGroups(java.lang.String...)"><B>removeFetchGroups(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Removes <code>groups</code> from the set of fetch group names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Removes <code>groups</code> from the set of fetch group names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFetchGroups(java.lang.String...)"><B>removeFetchGroups(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFetchGroups(java.lang.String...)"><B>removeFetchGroups(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFetchGroups(java.util.Collection)"><B>removeFetchGroups(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFetchGroups(java.lang.String...)"><B>removeFetchGroups(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Remove the given fully-qualified field.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Remove the given fully-qualified field.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeField(java.lang.Class, java.lang.String)"><B>removeField(Class, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Remove the given field.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeField(java.lang.Class, java.lang.String)"><B>removeField(Class, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeField(java.lang.Class, java.lang.String)"><B>removeField(Class, String)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeField(java.lang.Class, java.lang.String)"><B>removeField(Class, String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeField(java.lang.String)"><B>removeField(String)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Removes <code>fields</code> from the set of fully-qualified field names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFields(java.lang.String...)"><B>removeFields(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Removes <code>fields</code> from the set of fully-qualified field names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFields(java.lang.Class, java.lang.String...)"><B>removeFields(Class, String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Removes <code>fields</code> from the set of field names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Removes <code>fields</code> from the set of fully-qualified field names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#removeFields(java.lang.Class, java.util.Collection)"><B>removeFields(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Removes <code>fields</code> from the set of field names
 to use when loading objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFields(java.lang.String...)"><B>removeFields(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFields(java.lang.Class, java.lang.String...)"><B>removeFields(Class, String...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#removeFields(java.lang.Class, java.util.Collection)"><B>removeFields(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFields(java.lang.Class, java.util.Collection)"><B>removeFields(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFields(java.lang.Class, java.lang.String...)"><B>removeFields(Class, String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFields(java.lang.String...)"><B>removeFields(String...)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFields(java.lang.Class, java.util.Collection)"><B>removeFields(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFields(java.lang.Class, java.lang.String...)"><B>removeFields(Class, String...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFields(java.util.Collection)"><B>removeFields(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#removeFields(java.lang.String...)"><B>removeFields(String...)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#removeFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>removeFilterListener(FilterListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#removeFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>removeFilterListener(FilterListener)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Remove a filter listener from the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#removeFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>removeFilterListener(FilterListener)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html#removeFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>removeFilterListener(FilterListener)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuerySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuerySPI</A>
<DD>Remove a filter listener from the query.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#removeFilterListener(org.apache.openjpa.kernel.exps.FilterListener)"><B>removeFilterListener(FilterListener)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#removeFloatProperty(java.lang.String, java.lang.String, float)"><B>removeFloatProperty(String, String, float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeFloatProperty(java.lang.String)"><CODE>TypedProperties.removeFloatProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeFloatProperty(java.lang.String)"><B>removeFloatProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a float.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeFloatProperty(java.lang.String, float)"><B>removeFloatProperty(String, float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a float, or return the
 given default if it does not exist.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#removeForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>removeForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Remove the given foreign key from the table.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#removeFromCollection(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, java.lang.Object)"><B>removeFromCollection(OpenJPAStateManager, FieldMetaData, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Remove the given instance from the collection.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#removeFromSchedule(org.apache.openjpa.datacache.DataCache)"><B>removeFromSchedule(DataCache)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>Remove the given cache from scheduling.
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#removeGraphVisitor(org.apache.openjpa.lib.graph.GraphVisitor)"><B>removeGraphVisitor(GraphVisitor)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>remove a given <A HREF="./org/apache/openjpa/lib/graph/GraphVisitor.html" title="interface in org.apache.openjpa.lib.graph"><CODE>GraphVisitor</CODE></A> from the listener set.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#removeIndex(org.apache.openjpa.jdbc.schema.Index)"><B>removeIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Remove the given index from the table.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#removeInternal(java.lang.Object)"><B>removeInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Remove the object under the given oid from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#removeInternal(org.apache.openjpa.datacache.QueryKey)"><B>removeInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Remove the result under the given key from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#removeInternal(java.lang.Object)"><B>removeInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#removeInternal(org.apache.openjpa.datacache.QueryKey)"><B>removeInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#removeIntProperty(java.lang.String, java.lang.String, int)"><B>removeIntProperty(String, String, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeIntProperty(java.lang.String)"><CODE>TypedProperties.removeIntProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeIntProperty(java.lang.String)"><B>removeIntProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a int.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeIntProperty(java.lang.String, int)"><B>removeIntProperty(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a int, or return the
 given default if it does not exist.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#removeJoin(java.lang.String)"><B>removeJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#removeJoin(java.lang.String)"><B>removeJoin(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Removes <code>field</code> to the set of fully-qualified field names to
 eagerly join when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#removeJoin(java.lang.String)"><B>removeJoin(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#removeJoin(org.apache.openjpa.jdbc.schema.Column)"><B>removeJoin(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Remove any joins inolving the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#removeJoins(java.util.Collection)"><B>removeJoins(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#removeJoins(java.util.Collection)"><B>removeJoins(Collection)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Removes <code>fields</code> from the set of fully-qualified
 field names to eagerly join when loading objects.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#removeJoins(java.util.Collection)"><B>removeJoins(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Remove a listener for lifecycle-related events.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Remove a listener for lifecycle-related events.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>Remove a listener for lifecycle-related events.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#removeLifecycleListener(java.lang.Object)"><B>removeLifecycleListener(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>Remove a listener for lifecycle-related events.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#removeListener(java.lang.Object)"><B>removeListener(Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Remove the given listener.
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#removeListener(java.lang.Object)"><B>removeListener(Object)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#removeListener(org.apache.openjpa.jdbc.schema.SchemaGenerator.Listener)"><B>removeListener(SchemaGenerator.Listener)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Removes a schema generation listener for schema events.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#removeListener(java.lang.Object)"><B>removeListener(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Remove an event listener.
<DT><A HREF="./org/apache/openjpa/lib/util/EventManager.html#removeListener(java.lang.Object)"><B>removeListener(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/EventManager.html" title="interface in org.apache.openjpa.lib.util">EventManager</A>
<DD>Remove an event listener.
<DT><A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html#removeLogFactory(org.apache.openjpa.lib.log.LogFactory)"><B>removeLogFactory(LogFactory)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/MultiLogFactory.html" title="class in org.apache.openjpa.lib.log">MultiLogFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#removeLongProperty(java.lang.String, java.lang.String, long)"><B>removeLongProperty(String, String, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeLongProperty(java.lang.String)"><CODE>TypedProperties.removeLongProperty(java.lang.String)</CODE></A> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeLongProperty(java.lang.String)"><B>removeLongProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a long.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeLongProperty(java.lang.String, long)"><B>removeLongProperty(String, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the property under the given key as a long, or return the
 given default if it does not exist.
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#removeLRU(org.apache.commons.collections.map.AbstractLinkedMap.LinkEntry)"><B>removeLRU(AbstractLinkedMap.LinkEntry)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html#removeMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>removeMetaData(ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Serializer</A>
<DD>Remove a class meta data from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>removeMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove a metadata instance from the repository.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeMetaData(java.lang.Class)"><B>removeMetaData(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove a metadata instance from the repository.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#removeMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>removeMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Remove a metadata from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#removeMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>removeMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Remove a metadata from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html#removeName(java.lang.String)"><B>removeName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/NameSet.html" title="class in org.apache.openjpa.jdbc.schema">NameSet</A>
<DD>Remove the given name from the table.
<DT><A HREF="./org/apache/openjpa/lib/graph/Graph.html#removeNode(java.lang.Object)"><B>removeNode(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Graph.html" title="class in org.apache.openjpa.lib.graph">Graph</A>
<DD>Remove a node from the graph.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeNonMappedInterface(java.lang.Class)"><B>removeNonMappedInterface(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove a non-mapped interface from the repository
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removePersistenceAware(java.lang.Class)"><B>removePersistenceAware(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove a persitence-aware class from the repository
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#removePrimaryKey()"><B>removePrimaryKey()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Remove the primary key from this table.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#removeProperty(java.lang.String, java.util.Map)"><B>removeProperty(String, Map)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Remove the property under the given partial key, prefixed with any
 possible configuration prefix.
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#removeProperty(java.lang.String, java.lang.String, java.lang.String)"><B>removeProperty(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Specialization of <CODE>Properties#removeProperty</CODE> to allow
 a value to appear under either of two keys; useful for short and
 long versions of command-line flags.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeProperty(java.lang.String)"><B>removeProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the given property.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#removeProperty(java.lang.String, java.lang.String)"><B>removeProperty(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Remove the given property, or return the given default if it does
 not exist.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#removePropertyChangeListener(java.beans.PropertyChangeListener)"><B>removePropertyChangeListener(PropertyChangeListener)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Removes a listener for any property changes.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#removePropertyChangeListener(java.beans.PropertyChangeListener)"><B>removePropertyChangeListener(PropertyChangeListener)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.html#removeProvider(org.apache.openjpa.lib.util.ResourceBundleProvider)"><B>removeProvider(ResourceBundleProvider)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.html" title="class in org.apache.openjpa.lib.util">Localizer</A>
<DD>Remove a resource provider.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeQueryMetaData(org.apache.openjpa.meta.QueryMetaData)"><B>removeQueryMetaData(QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove the given query metadata from the repository.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeQueryMetaData(java.lang.Class, java.lang.String)"><B>removeQueryMetaData(Class, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove query metadata for the given class name if in the repository.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#removeQueryMetaData(org.apache.openjpa.meta.QueryMetaData)"><B>removeQueryMetaData(QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Remove a query metadata from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#removeQueryMetaData(org.apache.openjpa.meta.QueryMetaData)"><B>removeQueryMetaData(QueryMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Remove a query metadata from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#removeQueryResultMapping(org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>removeQueryResultMapping(QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Remove a query result mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#removeQueryResultMapping(java.lang.Class, java.lang.String)"><B>removeQueryResultMapping(Class, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Remove a query result mapping.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#removeQueryResultMapping(org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>removeQueryResultMapping(QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Removes given result set mapping from the local cache.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#removeQueryResultMapping(org.apache.openjpa.jdbc.meta.QueryResultMapping)"><B>removeQueryResultMapping(QueryResultMapping)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>Removes given result set mapping from the local cache.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#removeRandom()"><B>removeRandom()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentMap.html#removeRandom()"><B>removeRandom()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentMap.html" title="interface in org.apache.openjpa.lib.util.concurrent">ConcurrentMap</A>
<DD>Remove an arbitrary(not strictly random) entry from the map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#removeRandom()"><B>removeRandom()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCRegistry.html#removeRegisterClassListener(org.apache.openjpa.enhance.PCRegistry.RegisterClassListener)"><B>removeRegisterClassListener(PCRegistry.RegisterClassListener)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A>
<DD>Removes a <A HREF="./org/apache/openjpa/enhance/PCRegistry.RegisterClassListener.html" title="interface in org.apache.openjpa.enhance"><CODE>PCRegistry.RegisterClassListener</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#removeSchema(org.apache.openjpa.jdbc.schema.Schema)"><B>removeSchema(Schema)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Remove the given schema from the group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#removeSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>removeSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Remove the given sequence from the schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#removeSequence(org.apache.openjpa.jdbc.schema.Sequence)"><B>removeSequence(Sequence)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeSequenceMetaData(org.apache.openjpa.meta.SequenceMetaData)"><B>removeSequenceMetaData(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove the given sequence metadata from the repository.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeSequenceMetaData(java.lang.String)"><B>removeSequenceMetaData(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove sequence metadata for the name if in the repository.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#removeSequenceMetaData(org.apache.openjpa.meta.SequenceMetaData)"><B>removeSequenceMetaData(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Remove a sequence metadata from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#removeSequenceMetaData(org.apache.openjpa.meta.SequenceMetaData)"><B>removeSequenceMetaData(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Remove a sequence metadata from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#removeSystemListener(java.lang.Object)"><B>removeSystemListener(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Remove the given system lifecycle listener.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#removeTable(org.apache.openjpa.jdbc.schema.Table)"><B>removeTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Remove the given table from the schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html#removeTable(org.apache.openjpa.jdbc.schema.Table)"><B>removeTable(Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaSerializer</A>
<DD>Remove the given table from the set to be serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#removeTable(org.apache.openjpa.jdbc.schema.Table)"><B>removeTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#removeTable(java.lang.Object)"><B>removeTable(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Remove a listener for transaction-related events.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Remove a listener for transaction-related events.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerFactorySPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerFactorySPI</A>
<DD>Remove a listener for transaction-related events.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#removeTransactionListener(java.lang.Object)"><B>removeTransactionListener(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>Remove a listener for transaction-related events.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#removeTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)"><B>removeTypesChangedListener(TypesChangedListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#removeTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)"><B>removeTypesChangedListener(TypesChangedListener)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#removeTypesChangedListener(org.apache.openjpa.datacache.TypesChangedListener)"><B>removeTypesChangedListener(TypesChangedListener)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Remove an types event listener from this cache.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#removeUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>removeUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Remove the given unique constraint from the table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#removeUnusedComponents()"><B>removeUnusedComponents()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>Remove unreferenced or emtpy components from the schema.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#removeValue(org.apache.openjpa.lib.conf.Value)"><B>removeValue(Value)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Remove the given value from the set of configuration properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#removeValue(org.apache.openjpa.lib.conf.Value)"><B>removeValue(Value)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#renameToAction(java.io.File, java.io.File)"><B>renameToAction(File, File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for f.renameTo().
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#replace(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.sql.Select)"><B>replace(Select, Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Replace a subselect.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceBooleanField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceBooleanField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceBooleanField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceBooleanField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceBooleanField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceByteField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceByteField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceByteField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceByteField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceByteField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceByteField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceByteField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceByteField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceByteField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceByteField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceCharField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceCharField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceCharField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceCharField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceCharField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceCharField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceCharField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceCharField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceCharField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceCharField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceDoubleField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceDoubleField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceDoubleField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceDoubleField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceDoubleField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#replaceFailedObject(java.lang.Object)"><B>replaceFailedObject(Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Convert the specified failed object into a serializable
 object for when we are serializing an Exception.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceFlags()"><B>replaceFlags()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceFloatField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceFloatField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceFloatField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceFloatField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceFloatField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceFloatField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceFloatField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceFloatField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceFloatField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceFloatField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceIntField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceIntField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceIntField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceIntField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceIntField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceIntField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceIntField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceIntField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceIntField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceIntField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceLongField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceLongField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceLongField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceLongField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceLongField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceLongField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceLongField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceLongField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceLongField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceLongField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#replaceMethod(serp.bytecode.BCClass, java.lang.String, java.lang.Class, java.lang.Class[], boolean)"><B>replaceMethod(BCClass, String, Class, Class[], boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Clear code associated with the given method signature, and return
 the empty code.
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#replaceNestedThrowables(java.lang.Throwable[])"><B>replaceNestedThrowables(Throwable[])</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Convert the specified throwables into a serialzable array.
<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectOutputStream.html#replaceObject(java.lang.Object)"><B>replaceObject(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectOutputStream.html" title="class in org.apache.openjpa.util">Serialization.PersistentObjectOutputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceObjectField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceObjectField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceObjectField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceObjectField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceObjectField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceObjectField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceObjectField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceObjectField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceObjectField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceObjectField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceShortField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceShortField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceShortField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceShortField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceShortField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceShortField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceShortField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceShortField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceShortField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceShortField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#replaceSqlString(int, int, java.lang.String)"><B>replaceSqlString(int, int, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Replace current buffer string with the new string
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>replaceStateManager(StateManager)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Change state manager.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>replaceStateManager(StateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>replaceStateManager(StateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>replaceStateManager(StateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceStateManager(org.apache.openjpa.enhance.StateManager)"><B>replaceStateManager(StateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#replaceStringField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceStringField(PersistenceCapable, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Replace state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#replaceStringField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceStringField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#replaceStringField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceStringField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#replaceStringField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceStringField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#replaceStringField(org.apache.openjpa.enhance.PersistenceCapable, int)"><B>replaceStringField(PersistenceCapable, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#replaceType(org.apache.openjpa.meta.FieldMetaData)"><B>replaceType(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Return a valid <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> constant for the given field
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc"><B>ReportingSQLException</B></A> - Exception in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html" title="class or interface in java.sql"><CODE>SQLException</CODE></A> that contains information about
 the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html" title="class or interface in java.sql"><CODE>Statement</CODE></A> SQL that caused the exception.<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html#ReportingSQLException(java.sql.SQLException, java.sql.Statement, java.lang.String)"><B>ReportingSQLException(SQLException, Statement, String)</B></A> - 
Constructor for exception org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc">ReportingSQLException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html#ReportingSQLException(java.sql.SQLException, java.lang.String)"><B>ReportingSQLException(SQLException, String)</B></A> - 
Constructor for exception org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc">ReportingSQLException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html#ReportingSQLException(java.sql.SQLException, java.sql.Statement)"><B>ReportingSQLException(SQLException, Statement)</B></A> - 
Constructor for exception org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ReportingSQLException.html" title="class in org.apache.openjpa.lib.jdbc">ReportingSQLException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#repos"><B>repos</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#repos"><B>repos</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#requiresAliasForSubselect"><B>requiresAliasForSubselect</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#requiresArgument()"><B>requiresArgument()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>Returns if this callback expects another argument
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#requiresAutoCommitForMetaData"><B>requiresAutoCommitForMetaData</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#requiresCandidateType()"><B>requiresCandidateType()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#requiresCandidateType()"><B>requiresCandidateType()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#requiresCandidateType()"><B>requiresCandidateType()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#requiresCandidateType()"><B>requiresCandidateType()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Whether this query requires a candidate class.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#requiresCastForComparisons"><B>requiresCastForComparisons</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#requiresCastForMathFunctions"><B>requiresCastForMathFunctions</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#requiresConditionForCrossJoin"><B>requiresConditionForCrossJoin</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#requiresFetch(org.apache.openjpa.meta.FieldMetaData)"><B>requiresFetch(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#requiresFetch(org.apache.openjpa.meta.FieldMetaData)"><B>requiresFetch(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Affirms if the given field requires to be fetched in the context
 of current fetch operation.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#requiresFetch(org.apache.openjpa.meta.FieldMetaData)"><B>requiresFetch(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#requiresLoad()"><B>requiresLoad()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#requiresLoad()"><B>requiresLoad()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Return false if we know that the object being fetched with this
 configuration does not require a load, because this configuration came
 from a traversal of a <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#FETCH_REF"><CODE>FetchConfiguration.FETCH_REF</CODE></A> field.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#requiresLoad()"><B>requiresLoad()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#requiresParameterDeclarations()"><B>requiresParameterDeclarations()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#requiresParameterDeclarations()"><B>requiresParameterDeclarations()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#requiresParameterDeclarations()"><B>requiresParameterDeclarations()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#requiresParameterDeclarations()"><B>requiresParameterDeclarations()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Whether this query requires parameters to be declared.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#reservedWords"><B>reservedWords</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#reservedWordSet"><B>reservedWordSet</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Override if desired.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method to clear any state and ready the parser for
 a new document.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Override this method to clear any state and ready the parser for
 a new document.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Reset serialization state for the next document.
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#reset()"><B>reset()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Reset this provider.
<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Reset the state of the tracker.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Resets the set of fetch groups to the list in the global configuration.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Resets the set of fetch groups to the list in the global configuration.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#resetFetchGroups()"><B>resetFetchGroups()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#resetTableName(java.lang.String)"><B>resetTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Reset the table name with the fully qualified table name which
 includes the schema name
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Resolve mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Resolve mapping information.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Resolve and validate metadata.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#resolve()"><B>resolve()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Resolve and validate fetch group metadata.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Resolve and validate metadata.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Resolve and validate metadata.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#resolve(int)"><B>resolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html#resolveClass(java.io.ObjectStreamClass)"><B>resolveClass(ObjectStreamClass)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html" title="class in org.apache.openjpa.util">Serialization.ClassResolvingObjectInputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#resolveClassMetaData(org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.JPQLNode)"><B>resolveClassMetaData(JPQLExpressionBuilder.JPQLNode)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#resolveConstraints()"><B>resolveConstraints()</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaParser</A>
<DD>If this parser is in delayed resolve mode, resolve all constraints.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#resolveConstraints()"><B>resolveConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#resolveMapping(boolean)"><B>resolveMapping(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#resolveMapping(boolean)"><B>resolveMapping(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Resolve mapping data.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#resolveMeta(boolean)"><B>resolveMeta(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Resolve metadata.
<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html#resolveObject(java.lang.Object)"><B>resolveObject(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html" title="class in org.apache.openjpa.util">Serialization.PersistentObjectInputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#resolver"><B>resolver</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Resolver.html" title="interface in org.apache.openjpa.kernel.exps"><B>Resolver</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>A Resolver is used to resolve listeners and class or entity names
 that appear in a query.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#resolveTableName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table)"><B>resolveTableName(ClassMapping, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Resolve a fully qualified table name
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>ResourceMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over a given metadata resource.<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#ResourceMetaDataIterator(java.lang.String)"><B>ResourceMetaDataIterator(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>Constructor; supply the resource to parse.
<DT><A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html#ResourceMetaDataIterator(java.lang.String, java.lang.ClassLoader)"><B>ResourceMetaDataIterator(String, ClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ResourceMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ResourceMetaDataIterator</A>
<DD>Constructor; supply the resource to parse.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerAdapter.html#respondsTo(int)"><B>respondsTo(int)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.ListenerAdapter.html" title="interface in org.apache.openjpa.event">LifecycleEventManager.ListenerAdapter</A>
<DD>Return whether this instance responds to the given event type from
 <A HREF="./org/apache/openjpa/event/LifecycleEvent.html" title="class in org.apache.openjpa.event"><CODE>LifecycleEvent</CODE></A>.
<DT><A HREF="./org/apache/openjpa/kernel/RestoreState.html#RESTORE_ALL"><B>RESTORE_ALL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/RestoreState.html" title="interface in org.apache.openjpa.kernel">RestoreState</A>
<DD>Restore all state on rollback.
<DT><A HREF="./org/apache/openjpa/kernel/RestoreState.html#RESTORE_IMMUTABLE"><B>RESTORE_IMMUTABLE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/RestoreState.html" title="interface in org.apache.openjpa.kernel">RestoreState</A>
<DD>Restore immutable state on rollback; clear mutable state.
<DT><A HREF="./org/apache/openjpa/kernel/RestoreState.html#RESTORE_NONE"><B>RESTORE_NONE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/RestoreState.html" title="interface in org.apache.openjpa.kernel">RestoreState</A>
<DD>Do not restore any state on rollback.
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#restoreField(int)"><B>restoreField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>Restore the given field.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#restoreState"><B>restoreState</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/RestoreState.html" title="interface in org.apache.openjpa.kernel"><B>RestoreState</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>State restore constants.<DT><A HREF="./org/apache/openjpa/persistence/RestoreStateType.html" title="enum in org.apache.openjpa.persistence"><B>RestoreStateType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>The possible settings for the restore behavior after transaction rollback
 of an <A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence"><CODE>OpenJPAEntityManager</CODE></A>.<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html#RESTRICT"><B>RESTRICT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta">UpdateStrategies</A>
<DD>Throw an exception on attempt to update.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html#result"><B>result</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html" title="class in org.apache.openjpa.jdbc.kernel">ConnectionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><B>Result</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A result from the execution of a query or stored procedure.<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#resultClass"><B>resultClass</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultList.html" title="interface in org.apache.openjpa.lib.rop"><B>ResultList</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>List interface that represents a potentially lazy ResultList instantiation.<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop"><B>ResultListIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Wrapper iterator that will return false for <code>hasNext()</code> if
 the owning ResultList has been closed.<DT><A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html#ResultListIterator(java.util.ListIterator, org.apache.openjpa.lib.rop.ResultList)"><B>ResultListIterator(ListIterator, ResultList)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultListIterator.html" title="class in org.apache.openjpa.lib.rop">ResultListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop"><B>ResultObjectProvider</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Interface that allows lazy/custom instantiation of input objects.<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop"><B>ResultObjectProviderIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Iterator wrapped around a <A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop"><CODE>ResultObjectProvider</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html#ResultObjectProviderIterator(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>ResultObjectProviderIterator(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProviderIterator.html" title="class in org.apache.openjpa.lib.rop">ResultObjectProviderIterator</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/kernel/ResultPacker.html" title="class in org.apache.openjpa.kernel"><B>ResultPacker</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Helper class to pack results into the result class set on the query.<DT><A HREF="./org/apache/openjpa/kernel/ResultPacker.html#ResultPacker(java.lang.Class, java.lang.String, java.lang.Class)"><B>ResultPacker(Class, String, Class)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ResultPacker.html" title="class in org.apache.openjpa.kernel">ResultPacker</A>
<DD>Constructor for result class without a projection.
<DT><A HREF="./org/apache/openjpa/kernel/ResultPacker.html#ResultPacker(java.lang.Class[], java.lang.String[], java.lang.Class)"><B>ResultPacker(Class[], String[], Class)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ResultPacker.html" title="class in org.apache.openjpa.kernel">ResultPacker</A>
<DD>Constructor for standard projection.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql"><B>ResultSetResult</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Base <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A> implementation wrapped around a result set.<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#ResultSetResult(java.sql.Connection, java.sql.Statement, java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>ResultSetResult(Connection, Statement, ResultSet, DBDictionary)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#ResultSetResult(java.sql.Connection, java.sql.Statement, java.sql.ResultSet, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>ResultSetResult(Connection, Statement, ResultSet, JDBCStore)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#ResultSetResult(java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>ResultSetResult(ResultSet, DBDictionary)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>JDBC 2 constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#ResultSetResult(java.sql.ResultSet, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>ResultSetResult(ResultSet, JDBCStore)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>JDBC 2 constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#resultSetType"><B>resultSetType</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ResultSetType.html" title="enum in org.apache.openjpa.persistence.jdbc"><B>ResultSetType</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Type of result set to use.<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#resume(javax.transaction.Transaction)"><B>resume(Transaction)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Retains only the elements in this set that are contained in the
 specified collection.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#retainAll(java.util.Collection)"><B>retainAll(Collection)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyCollections.html#retainAll(org.apache.openjpa.util.ProxyCollection, java.util.Collection)"><B>retainAll(ProxyCollection, Collection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyCollections.html" title="class in org.apache.openjpa.util">ProxyCollections</A>
<DD>Override for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#retainAll(java.util.Collection)" title="class or interface in java.util"><CODE>Collection.retainAll(java.util.Collection<?>)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#retainConnection()"><B>retainConnection()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Override to retain a dedicated connection.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#retainConnection()"><B>retainConnection()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#retainConnection()"><B>retainConnection()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#retainConnection()"><B>retainConnection()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Instruct the store to retain a connection for continued use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#retainState"><B>retainState</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#retrieve(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>retrieve(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#retrieve(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>retrieve(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#retrieve(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>retrieve(Object, boolean, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Immediately load the given object's persistent fields.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#retrieve(java.lang.Object)"><B>retrieve(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#retrieve(java.lang.Object)"><B>retrieve(Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Immediately load the given object's persistent fields.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#retrieveAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>retrieveAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#retrieveAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>retrieveAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#retrieveAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>retrieveAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Retrieve the given objects' persistent state.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#retrieveAll(java.util.Collection)"><B>retrieveAll(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#retrieveAll(java.lang.Object...)"><B>retrieveAll(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#retrieveAll(java.lang.Object...)"><B>retrieveAll(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Retrieve the persistent state of the given objects.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#retrieveAll(java.util.Collection)"><B>retrieveAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Retrieve the persistent state of the given objects.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#retryClassRegistration"><B>retryClassRegistration</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#reverse()"><B>reverse()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>Return a join that is this join in reverse.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta"><B>ReverseCustomizer</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Plugin in interface to customize the output of the
 <A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>ReverseMappingTool</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta"><B>ReverseMappingTool</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Reverse-maps a schema into class mappings and the assiciated java
 code.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#ReverseMappingTool(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>ReverseMappingTool(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta"><B>ReverseMappingTool.Flags</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Holder for run flags.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#ReverseMappingTool.Flags()"><B>ReverseMappingTool.Flags()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant"><B>ReverseMappingToolTask</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>Executes the <A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>ReverseMappingTool</CODE></A> on the specified XML files.<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#ReverseMappingToolTask()"><B>ReverseMappingToolTask()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.AccessType.html" title="class in org.apache.openjpa.jdbc.ant"><B>ReverseMappingToolTask.AccessType</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.AccessType.html#ReverseMappingToolTask.AccessType()"><B>ReverseMappingToolTask.AccessType()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.AccessType.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask.AccessType</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.Level.html" title="class in org.apache.openjpa.jdbc.ant"><B>ReverseMappingToolTask.Level</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.Level.html#ReverseMappingToolTask.Level()"><B>ReverseMappingToolTask.Level()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.Level.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask.Level</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Files.html#revert(java.io.File, boolean)"><B>revert(File, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Files.html" title="class in org.apache.openjpa.lib.util">Files</A>
<DD>Revert the given backup file to the original location.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#REVISION_NUMBER"><B>REVISION_NUMBER</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>This is a no-op implementation.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html#rollback(java.util.Collection)"><B>rollback(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager.ConnectionSavepoint</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#rollback()"><B>rollback()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Rollback the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#rollback(java.util.Collection)"><B>rollback(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Handle the rolled back state, returning saved data.
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#rollback()"><B>rollback()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Rollback the current data store transaction.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#rollback(java.sql.Savepoint)"><B>rollback(Savepoint)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#rollback()"><B>rollback()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#rollbackAndResume()"><B>rollbackAndResume()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Issue a rollback and then start a new transaction.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#rollbackAndResume()"><B>rollbackAndResume()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#rollbackAndResume()"><B>rollbackAndResume()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#rollbackAndResume()"><B>rollbackAndResume()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html#rollbackAndResume()"><B>rollbackAndResume()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityTransaction</A>
<DD>Issue a rollback and then start a new transaction.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#rollbackDataStore(org.apache.openjpa.jdbc.kernel.AbstractJDBCSavepointManager.ConnectionSavepoint)"><B>rollbackDataStore(AbstractJDBCSavepointManager.ConnectionSavepoint)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>Rollback the datastore savepoint.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html#rollbackDataStore(org.apache.openjpa.jdbc.kernel.AbstractJDBCSavepointManager.ConnectionSavepoint)"><B>rollbackDataStore(AbstractJDBCSavepointManager.ConnectionSavepoint)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBC3SavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence"><B>RollbackException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Rollback occurred on attempt to commit.<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#RollbackException(java.lang.Exception)"><B>RollbackException(Exception)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#rollbackOptimistic()"><B>rollbackOptimistic()</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>No-op implementation.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#rollbackOptimistic()"><B>rollbackOptimistic()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#rollbackOptimistic()"><B>rollbackOptimistic()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#rollbackOptimistic()"><B>rollbackOptimistic()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Notification that an optimistic transaction was rolled back before
 a data store transaction ever began.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#rollbackToSavepoint()"><B>rollbackToSavepoint()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Rollback the current transaction to the last savepoint.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#rollbackToSavepoint(java.lang.String)"><B>rollbackToSavepoint(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Rollback the current transaction to the given savepoint name.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#rollbackToSavepoint()"><B>rollbackToSavepoint()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#rollbackToSavepoint(java.lang.String)"><B>rollbackToSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#rollbackToSavepoint()"><B>rollbackToSavepoint()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#rollbackToSavepoint(java.lang.String)"><B>rollbackToSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#rollbackToSavepoint()"><B>rollbackToSavepoint()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#rollbackToSavepoint(java.lang.String)"><B>rollbackToSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#rollbackToSavepoint()"><B>rollbackToSavepoint()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Rollback the current transaction to the last savepoint.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#rollbackToSavepoint(java.lang.String)"><B>rollbackToSavepoint(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Rollback the current transaction to the given savepoint name.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html#root"><B>root</B></A> - 
Variable in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.ParsedJPQL</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#rootClasses"><B>rootClasses</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#rootInstances"><B>rootInstances</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql"><B>Row</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Logical representation of a table row for insert/update/delete.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#rowClause"><B>rowClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#rowDeleted()"><B>rowDeleted()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql"><B>RowImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Basic <A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Row</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#RowImpl(org.apache.openjpa.jdbc.schema.Table, int)"><B>RowImpl(Table, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#RowImpl(org.apache.openjpa.jdbc.schema.Column[], int)"><B>RowImpl(Column[], int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#rowInserted()"><B>rowInserted()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManager.html" title="interface in org.apache.openjpa.jdbc.sql"><B>RowManager</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Manages rows during an insert/update/delete process.<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql"><B>RowManagerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Manages SQL rows during an insert/update/delete process.<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html#RowManagerImpl(boolean)"><B>RowManagerImpl(boolean)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowManagerImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowManagerImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#rowUpdated()"><B>rowUpdated()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#RSRC_DEFAULT"><B>RSRC_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#RSRC_GLOBAL"><B>RSRC_GLOBAL</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#rsrcs"><B>rsrcs</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#run()"><B>run()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#run()"><B>run()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Generates the sourcecode for the application id class; returns
 false if the class is invalid.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(OpenJPAConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Run the application id tool with the given command-line and
 given configuration.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.enhance.ApplicationIdTool.Flags, java.lang.ClassLoader)"><B>run(OpenJPAConfiguration, String[], ApplicationIdTool.Flags, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html#run(serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)"><B>run(BCClass, ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#run()"><B>run()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Perform bytecode enhancements.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(OpenJPAConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.enhance.PCEnhancer.Flags, org.apache.openjpa.meta.MetaDataRepository, org.apache.openjpa.lib.util.BytecodeWriter, java.lang.ClassLoader)"><B>run(OpenJPAConfiguration, String[], PCEnhancer.Flags, MetaDataRepository, BytecodeWriter, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Enhance the given classes.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String, org.apache.openjpa.jdbc.meta.MappingRepository, java.lang.ClassLoader)"><B>run(JDBCConfiguration, String[], String, MappingRepository, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String)"><B>run(JDBCConfiguration, String[], String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String)"><B>run(JDBCConfiguration, String[], String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String, org.apache.openjpa.jdbc.meta.MappingRepository, java.lang.ClassLoader)"><B>run(JDBCConfiguration, String[], String, MappingRepository, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#run(java.lang.Class)"><B>run(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Run the configured action on the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.jdbc.meta.MappingTool.Flags, java.lang.ClassLoader)"><B>run(JDBCConfiguration, String[], MappingTool.Flags, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#run()"><B>run()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Generate mappings and class code for the current schema group.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.jdbc.meta.ReverseMappingTool.Flags, java.lang.ClassLoader)"><B>run(JDBCConfiguration, String[], ReverseMappingTool.Flags, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#run()"><B>run()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Run the tool action.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.jdbc.schema.SchemaTool.Flags, java.lang.ClassLoader)"><B>run(JDBCConfiguration, String[], SchemaTool.Flags, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(JDBCConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String)"><B>run(JDBCConfiguration, String)</B></A> - 
Static method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#run(java.lang.Class)"><B>run(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Generate new metadata for the given class.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><B>run(OpenJPAConfiguration, String[], Options)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.meta.MetaDataTool.Flags, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)"><B>run(OpenJPAConfiguration, String[], MetaDataTool.Flags, MetaDataRepository, ClassLoader)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>Run the tool.
<DT><A HREF="./org/apache/openjpa/util/RuntimeExceptionTranslator.html" title="interface in org.apache.openjpa.util"><B>RuntimeExceptionTranslator</B></A> - Interface in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Interface used by many facade helpers to translate exceptions.<DT><A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta"><B>RuntimeStrategyInstaller</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Installer that attempts to use the given mapping information, and
 fails if it does not work.<DT><A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html#RuntimeStrategyInstaller(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>RuntimeStrategyInstaller(MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RuntimeStrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">RuntimeStrategyInstaller</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#runtimeUnenhancedClasses"><B>runtimeUnenhancedClasses</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html" title="interface in org.apache.openjpa.enhance"><B>RuntimeUnenhancedClasssesModes</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Possible values for the <code>openjpa.RuntimeUnenhancedClasses</code>
 configuration setting.</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#sameVersion(java.lang.Object[], java.lang.Object[])"><B>sameVersion(Object[], Object[])</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>Return whether the given images are equivalent from an optimistic
 locking perspective.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html#save(java.util.Collection)"><B>save(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager.ConnectionSavepoint</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html#save(java.util.Collection)"><B>save(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPASavepoint.html" title="class in org.apache.openjpa.kernel">OpenJPASavepoint</A>
<DD>Set this savepoint, saving any state for the passed-in
 <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A>s as necessary.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#save(java.io.OutputStream, java.lang.String)"><B>save(OutputStream, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#saveField(int)"><B>saveField(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>Save the given field.
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel"><B>SaveFieldManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>FieldManager type used to store information for rollback.<DT><A HREF="./org/apache/openjpa/kernel/SavepointManager.html" title="interface in org.apache.openjpa.kernel"><B>SavepointManager</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A manager for handling savepoints.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#savepointManagerPlugin"><B>savepointManagerPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#scheduleEviction(org.apache.openjpa.datacache.DataCache, java.lang.String)"><B>scheduleEviction(DataCache, String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>Schedule the given cache for eviction.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#schema"><B>schema</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema"><B>Schema</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a database schema.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#Schema()"><B>Schema()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#Schema(java.lang.String, org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>Schema(String, SchemaGroup)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#SCHEMA_ACTION_NONE"><B>SCHEMA_ACTION_NONE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#SCHEMA_CASE_LOWER"><B>SCHEMA_CASE_LOWER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#SCHEMA_CASE_PRESERVE"><B>SCHEMA_CASE_PRESERVE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#SCHEMA_CASE_UPPER"><B>SCHEMA_CASE_UPPER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#schemaAction"><B>schemaAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#schemaCase"><B>schemaCase</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema"><B>SchemaFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Factory for <A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>SchemaGroup</CODE></A>s.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#schemaFactoryPlugin"><B>schemaFactoryPlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#schemaFile"><B>schemaFile</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema"><B>SchemaGenerator</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>The SchemaGenerator creates <A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>Schema</CODE></A>s matching the current
 database.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#SchemaGenerator(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>SchemaGenerator(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Event.html" title="class in org.apache.openjpa.jdbc.schema"><B>SchemaGenerator.Event</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>An event corresponding to the generation of a schema object.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Event.html#SchemaGenerator.Event(java.lang.Object, int)"><B>SchemaGenerator.Event(Object, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Event.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator.Event</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Listener.html" title="interface in org.apache.openjpa.jdbc.schema"><B>SchemaGenerator.Listener</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>A listener for a potentially lengthy schema generation process.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema"><B>SchemaGroup</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a grouping of schemas used in a database.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html#SchemaGroup()"><B>SchemaGroup()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGroup</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Listener.html#schemaObjectGenerated(org.apache.openjpa.jdbc.schema.SchemaGenerator.Event)"><B>schemaObjectGenerated(SchemaGenerator.Event)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.Listener.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaGenerator.Listener</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html" title="interface in org.apache.openjpa.jdbc.schema"><B>SchemaParser</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Interface class for parers that read schema information.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#schemas"><B>schemas</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema"><B>Schemas</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Helper class to deal with schemas.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html#Schemas()"><B>Schemas()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schemas.html" title="class in org.apache.openjpa.jdbc.schema">Schemas</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaSerializer.html" title="interface in org.apache.openjpa.jdbc.schema"><B>SchemaSerializer</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Interface for schema serializers.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema"><B>SchemaTool</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>The SchemaTool is used to manage the database schema.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#SchemaTool(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>SchemaTool(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#SchemaTool(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String)"><B>SchemaTool(JDBCConfiguration, String)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Construct a tool to perform the given action.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema"><B>SchemaTool.Flags</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Run flags.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#SchemaTool.Flags()"><B>SchemaTool.Flags()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant"><B>SchemaToolTask</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>Executes the <A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>SchemaTool</CODE></A> on the specified XML schema definition
 files.<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#SchemaToolTask()"><B>SchemaToolTask()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.Action.html" title="class in org.apache.openjpa.jdbc.ant"><B>SchemaToolTask.Action</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/ant/package-summary.html">org.apache.openjpa.jdbc.ant</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.Action.html#SchemaToolTask.Action()"><B>SchemaToolTask.Action()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.Action.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask.Action</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#schemaWriter"><B>schemaWriter</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#searchStringEscape"><B>searchStringEscape</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#SEC"><B>SEC</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql"><B>SecondaryRow</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Secondary table row that tracks foreign keys to auto-inc columns.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#SecondaryRow(org.apache.openjpa.jdbc.schema.Table, int)"><B>SecondaryRow(Table, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>Constructor; supply table and action.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#SecondaryRow(org.apache.openjpa.jdbc.schema.Column[], int)"><B>SecondaryRow(Column[], int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#SECONDS"><B>SECONDS</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#sel"><B>sel</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><B>select(Select, ExpContext, ExpState, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, org.apache.openjpa.kernel.exps.QueryExpressions, org.apache.openjpa.jdbc.kernel.exps.QueryExpressionsState, int)"><B>select(Select, ExpContext, ClassMapping, boolean, QueryExpressions, QueryExpressionsState, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SelectConstructor</A>
<DD>Select the data for this query.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><B>select(Select, ExpContext, ExpState, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Select the data for this value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, boolean, boolean)"><B>select(Select, ClassMapping, int, OpenJPAStateManager, BitSet, JDBCFetchConfiguration, int, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>For implementation use only.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">DiscriminatorStrategy</A>
<DD>Select the data for this Discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Select the virtual row columns of this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/InValueDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">InValueDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping)"><B>select(Select, ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>Select the data for this indicator.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#select(org.apache.openjpa.jdbc.sql.Union.Selector)"><B>select(Union.Selector)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.Selector.html#select(org.apache.openjpa.jdbc.sql.Select, int)"><B>select(Select, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.Selector.html" title="interface in org.apache.openjpa.jdbc.sql">LogicalUnion.Selector</A>
<DD>Populate the <code>i</code>th select in the union.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object)"><B>select(SQLBuffer, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>select(SQLBuffer, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(java.lang.String, java.lang.Object)"><B>select(String, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(java.lang.String, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>select(String, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.schema.Column)"><B>select(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>select(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.schema.Column[])"><B>select(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>select(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#select(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>select(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql"><B>Select</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Abstraction of a SQL SELECT statement.<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object)"><B>select(SQLBuffer, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given SQL; the given id object is an identifier
 to use when retrieving the corresponding value from a <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>select(SQLBuffer, Object, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given SQL; the given id object is an identifier
 to use when retrieving the corresponding value from a <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(java.lang.String, java.lang.Object)"><B>select(String, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given SQL; the given id object is an identifier
 to use when retrieving the corresponding value from a <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(java.lang.String, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>select(String, Object, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given SQL; the given id object is an identifier
 to use when retrieving the corresponding value from a <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.schema.Column)"><B>select(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>select(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.schema.Column[])"><B>select(Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>select(Column[], Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the columns of the given mapping, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#select(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>select(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the columns of the given mapping, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object)"><B>select(SQLBuffer, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.sql.SQLBuffer, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>select(SQLBuffer, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(java.lang.String, java.lang.Object)"><B>select(String, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(java.lang.String, java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>select(String, Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.schema.Column)"><B>select(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>select(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.schema.Column[])"><B>select(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>select(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>select(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#select(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>select(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.html#select(org.apache.openjpa.jdbc.sql.Union.Selector)"><B>select(Union.Selector)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Union.html" title="interface in org.apache.openjpa.jdbc.sql">Union</A>
<DD>Select data using the given selector.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.Selector.html#select(org.apache.openjpa.jdbc.sql.Select, int)"><B>select(Select, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Union.Selector.html" title="interface in org.apache.openjpa.jdbc.sql">Union.Selector</A>
<DD>Populate the <code>i</code>th select in the union.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#SELECT_HINT"><B>SELECT_HINT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#selectAll(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectAll(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Select data for loading, starting in field table.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#selectColumns(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><B>selectColumns(Select, ExpContext, ExpState, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#selectColumns(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><B>selectColumns(Select, ExpContext, ExpState, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Select just the columns for this value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>SelectConstructor</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Turns parsed queries into selects.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html#SelectConstructor()"><B>SelectConstructor()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SelectConstructor.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SelectConstructor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#selectEagerJoin(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerJoin(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#selectEagerJoin(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerJoin(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Fill in joined select to related objects.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#selectEagerJoin(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerJoin(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#selectEagerJoin(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerJoin(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#selectEagerJoin(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerJoin(Select, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#selectEagerParallel(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerParallel(SelectExecutor, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#selectEagerParallel(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerParallel(SelectExecutor, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Fill in parallel eager select for related objects.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#selectEagerParallel(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerParallel(SelectExecutor, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#selectEagerParallel(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerParallel(SelectExecutor, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#selectEagerParallel(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectEagerParallel(SelectExecutor, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#selectElement(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectElement(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSCollectionFieldStrategy</A>
<DD>Implement this method to select the elements of this field for the
 given element mapping from <A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSCollectionFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>LRSCollectionFieldStrategy.getIndependentElementMappings(boolean)</CODE></A>
 (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html#selectElement(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectElement(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html#selectElement(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectElement(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationCollectionTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationCollectionTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#selectElement(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectElement(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#selectElement(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectElement(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#selectElement(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectElement(Select, ClassMapping, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Implement this method to select the elements of this field for the
 given element mapping from <A HREF="./org/apache/openjpa/jdbc/meta/strats/ContainerFieldStrategy.html#getIndependentElementMappings(boolean)"><CODE>ContainerFieldStrategy.getIndependentElementMappings(boolean)</CODE></A>
 (or null).
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql"><B>SelectExecutor</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Interface for configuring and executing a SQL select.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCLockManager.html#selectForUpdate(org.apache.openjpa.jdbc.sql.Select, int)"><B>selectForUpdate(Select, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCLockManager.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCLockManager</A>
<DD>Return whether to issue the given select FOR UPDATE, depending on
 the capabilities of the dictionary and the fetch configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html#selectForUpdate(org.apache.openjpa.jdbc.sql.Select, int)"><B>selectForUpdate(Select, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel">PessimisticLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column)"><B>selectIdentifier(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column[])"><B>selectIdentifier(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectIdentifier(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectIdentifier(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectIdentifier(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column)"><B>selectIdentifier(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given column as one that can be used to get a count of
 distinct matches.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(Column, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given column as one that can be used to get a count of
 distinct matches.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column[])"><B>selectIdentifier(Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given columns as ones that can be used to get a count of
 distinct matches.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(Column[], Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given columns as ones that can be used to get a count of
 distinct matches.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectIdentifier(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectIdentifier(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the columns of the given mapping, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectIdentifier(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the columns of the given mapping, possibly including subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column)"><B>selectIdentifier(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(Column, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column[])"><B>selectIdentifier(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectIdentifier(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(Column[], Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectIdentifier(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int)"><B>selectIdentifier(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectIdentifier(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, int, org.apache.openjpa.jdbc.sql.Joins)"><B>selectIdentifier(ClassMapping, int, JDBCStore, JDBCFetchConfiguration, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql"><B>SelectImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Standard <A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Select</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#SelectImpl(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>SelectImpl(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql"><B>SelectImpl.SelectResult</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A <A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Result</CODE></A> implementation wrapped around this select.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#SelectImpl.SelectResult(java.sql.Connection, java.sql.Statement, java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)"><B>SelectImpl.SelectResult(Connection, Statement, ResultSet, DBDictionary)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql"><B>SelectImpl.Selects</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Helper class to track selected columns, with fast contains method.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#SelectImpl.Selects()"><B>SelectImpl.Selects()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#selectKey(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>selectKey(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Implement this method to select the keys of this field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#selectKey(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>selectKey(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#selectKey(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>selectKey(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectPlaceholder(java.lang.String)"><B>selectPlaceholder(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectPlaceholder(java.lang.String)"><B>selectPlaceholder(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the given SQL as a placeholder for a UNION element.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectPlaceholder(java.lang.String)"><B>selectPlaceholder(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>selectPrimaryKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#selectPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Joins)"><B>selectPrimaryKey(ClassMapping, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>selectPrimaryKey(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the primary key columns of the given mapping, joining to
 superclasses as necessary to get all columns needed to construct
 an object id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#selectPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Joins)"><B>selectPrimaryKey(ClassMapping, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Select the primary key columns of the given mapping, joining to
 superclasses as necessary to get all columns needed to construct
 an object id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>selectPrimaryKey(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#selectPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Joins)"><B>selectPrimaryKey(ClassMapping, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel"><B>SelectResultObjectProvider</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Abstract provider implementation wrapped around a <A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>Select</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#SelectResultObjectProvider(org.apache.openjpa.jdbc.sql.SelectExecutor, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>SelectResultObjectProvider(SelectExecutor, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html#selectValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>selectValue(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/LRSMapFieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta.strats">LRSMapFieldStrategy</A>
<DD>Implement this method to select the values of this field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#selectValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>selectValue(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#selectValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.Joins)"><B>selectValue(Select, ClassMapping, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#selectWords"><B>selectWords</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#selectWordSet"><B>selectWordSet</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>If a native query begins with any of the values found here then it will
 be treated as a select statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#sels"><B>sels</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html#seq"><B>seq</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq.Status</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><B>Seq</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Internal OpenJPA sequence interface.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#seqPlugin"><B>seqPlugin</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema"><B>Sequence</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a database sequence.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#Sequence()"><B>Sequence()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#Sequence(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>Sequence(String, Schema)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#SEQUENCE"><B>SEQUENCE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>"sequence" value strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta"><B>SequenceMapping</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Specialization of sequence metadata for ORM.<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#SequenceMapping(java.lang.String, org.apache.openjpa.jdbc.meta.MappingRepository)"><B>SequenceMapping(String, MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta"><B>SequenceMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Metadata about a named sequence.<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#SequenceMetaData(java.lang.String, org.apache.openjpa.meta.MetaDataRepository)"><B>SequenceMetaData(String, MetaDataRepository)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Constructor; supply sequence name.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.SequenceFactory.html" title="interface in org.apache.openjpa.meta"><B>SequenceMetaData.SequenceFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Allow facades to supply adapters from a spec sequence type to the
 OpenJPA sequence type.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#sequenceNameSQL"><B>sequenceNameSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#sequences"><B>sequences</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#sequences"><B>sequences</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#sequenceSchemaSQL"><B>sequenceSchemaSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#sequenceSQL"><B>sequenceSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/SeqValue.html" title="class in org.apache.openjpa.conf"><B>SeqValue</B></A> - Class in <A HREF="./org/apache/openjpa/conf/package-summary.html">org.apache.openjpa.conf</A><DD>Value type used to represent a sequence.<DT><A HREF="./org/apache/openjpa/conf/SeqValue.html#SeqValue(java.lang.String)"><B>SeqValue(String)</B></A> - 
Constructor for class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/SeqValue.html" title="class in org.apache.openjpa.conf">SeqValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html#SERIALIZABLE"><B>SERIALIZABLE</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.html" title="class in org.apache.openjpa.util"><B>Serialization</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Helper class to serialize and deserialize persistent objects,
 subtituting oids into the serialized stream and subtituting the persistent
 objects back during deserialization.<DT><A HREF="./org/apache/openjpa/util/Serialization.html#Serialization()"><B>Serialization()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.html" title="class in org.apache.openjpa.util">Serialization</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html" title="class in org.apache.openjpa.util"><B>Serialization.ClassResolvingObjectInputStream</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html#Serialization.ClassResolvingObjectInputStream(java.io.InputStream)"><B>Serialization.ClassResolvingObjectInputStream(InputStream)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.ClassResolvingObjectInputStream.html" title="class in org.apache.openjpa.util">Serialization.ClassResolvingObjectInputStream</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html" title="class in org.apache.openjpa.util"><B>Serialization.PersistentObjectInputStream</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Object input stream that replaces oids with their objects.<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html#Serialization.PersistentObjectInputStream(java.io.InputStream, org.apache.openjpa.kernel.StoreContext)"><B>Serialization.PersistentObjectInputStream(InputStream, StoreContext)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectInputStream.html" title="class in org.apache.openjpa.util">Serialization.PersistentObjectInputStream</A>
<DD>Constructor; supply source stream and broker to
 use for persistent object lookups.
<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectOutputStream.html" title="class in org.apache.openjpa.util"><B>Serialization.PersistentObjectOutputStream</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Object output stream that replaces persistent objects with their oids.<DT><A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectOutputStream.html#Serialization.PersistentObjectOutputStream(java.io.OutputStream, org.apache.openjpa.kernel.StoreContext)"><B>Serialization.PersistentObjectOutputStream(OutputStream, StoreContext)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.PersistentObjectOutputStream.html" title="class in org.apache.openjpa.util">Serialization.PersistentObjectOutputStream</A>
<DD>Constructor; supply underlying stream.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#serialize(java.util.Collection)"><B>serialize(Collection)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#serialize(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>serialize(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the serialized bytes for the given object.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#serialize(int)"><B>serialize(int)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>Serialize the current set of objects to the files from which they were
 parsed.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#serialize(java.util.Map, int)"><B>serialize(Map, int)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>Serialize the current set of objects to the files from which they were
 parsed.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#serialize(java.io.File, int)"><B>serialize(File, int)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>Serialize the current set of objects to the given file.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#serialize(java.io.Writer, int)"><B>serialize(Writer, int)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>Serialize the current set of objects to the given stream.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(int)"><B>serialize(int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(java.util.Map, int)"><B>serialize(Map, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(java.io.File, int)"><B>serialize(File, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(java.io.Writer, int)"><B>serialize(Writer, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(javax.xml.transform.Result, int)"><B>serialize(Result, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Serialize the current set of objects to the given result.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(org.xml.sax.ContentHandler, int)"><B>serialize(ContentHandler, int)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Serilize the current set of objects to a series of SAX events on the
 given handler.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#serialize(java.util.Collection)"><B>serialize(Collection)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Serialize the given set of objects.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#serialize(org.apache.openjpa.lib.meta.MetaDataSerializer, java.util.Map, int)"><B>serialize(MetaDataSerializer, Map, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Tell the given serialier to write its metadatas.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serialize(java.util.Collection)"><B>serialize(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serialize(java.util.Map, int)"><B>serialize(Map, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serialize(java.io.File, int)"><B>serialize(File, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serialize(java.io.Writer, int)"><B>serialize(Writer, int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serialize(int)"><B>serialize(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serialize(java.util.Collection)"><B>serialize(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Serialization.html#serialize(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>serialize(Object, StoreContext)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Serialization.html" title="class in org.apache.openjpa.util">Serialization</A>
<DD>Serialize a value that might contain persistent objects.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeAttributeOverride(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>serializeAttributeOverride(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Always returns false by default.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeAttributeOverride(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>serializeAttributeOverride(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeAttributeOverride(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>serializeAttributeOverride(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeAttributeOverride(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>serializeAttributeOverride(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Always returns false by default.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeAttributeOverrideMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.AnnotationBuilder)"><B>serializeAttributeOverrideMappingContent(FieldMetaData, FieldMetaData, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize attribute override mapping content.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeAttributeOverrideMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.AnnotationBuilder)"><B>serializeAttributeOverrideMappingContent(FieldMetaData, FieldMetaData, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeAttributeOverrideMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>serializeAttributeOverrideMappingContent(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeAttributeOverrideMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.meta.FieldMetaData)"><B>serializeAttributeOverrideMappingContent(FieldMetaData, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize attribute override mapping content.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeClass(org.apache.openjpa.meta.ClassMetaData)"><B>serializeClass(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize class metadata.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeClass(org.apache.openjpa.meta.ClassMetaData)"><B>serializeClass(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeClass(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>serializeClass(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeClass(org.apache.openjpa.meta.ClassMetaData, boolean)"><B>serializeClass(ClassMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize class metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeClassMappingContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeClassMappingContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize class mapping content.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeClassMappingContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeClassMappingContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeClassMappingContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeClassMappingContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeClassMappingContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeClassMappingContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize class mapping content.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeFieldMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.PersistenceStrategy, org.apache.openjpa.persistence.AnnotationBuilder)"><B>serializeFieldMappingContent(FieldMetaData, PersistenceStrategy, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize field mapping content; this will be called before
 <CODE>#serializeValueMappingContent</CODE>.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeFieldMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.PersistenceStrategy, org.apache.openjpa.persistence.AnnotationBuilder)"><B>serializeFieldMappingContent(FieldMetaData, PersistenceStrategy, AnnotationBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeFieldMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.PersistenceStrategy)"><B>serializeFieldMappingContent(FieldMetaData, PersistenceStrategy)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeFieldMappingContent(org.apache.openjpa.meta.FieldMetaData, org.apache.openjpa.persistence.PersistenceStrategy)"><B>serializeFieldMappingContent(FieldMetaData, PersistenceStrategy)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize field mapping content; this will be called before
 <CODE>#serializeValueMappingContent</CODE>.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeInheritanceContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeInheritanceContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize inheritance content.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeInheritanceContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeInheritanceContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeInheritanceContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeInheritanceContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeInheritanceContent(org.apache.openjpa.meta.ClassMetaData)"><B>serializeInheritanceContent(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize inheritance content.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurations.html#serializeProperties(java.util.Map)"><B>serializeProperties(Map)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurations.html" title="class in org.apache.openjpa.lib.conf">Configurations</A>
<DD>Turn a set of properties into a comma-separated string.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeQueryMappings(org.apache.openjpa.meta.ClassMetaData)"><B>serializeQueryMappings(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize query mappings.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeQueryMappings(org.apache.openjpa.meta.ClassMetaData)"><B>serializeQueryMappings(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeQueryMappings(org.apache.openjpa.meta.ClassMetaData)"><B>serializeQueryMappings(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeQueryMappings(org.apache.openjpa.meta.ClassMetaData)"><B>serializeQueryMappings(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize query mappings.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeSequence(org.apache.openjpa.meta.SequenceMetaData)"><B>serializeSequence(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize sequence metadata.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeSequence(org.apache.openjpa.meta.SequenceMetaData)"><B>serializeSequence(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeSequence(org.apache.openjpa.meta.SequenceMetaData)"><B>serializeSequence(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeSequence(org.apache.openjpa.meta.SequenceMetaData)"><B>serializeSequence(SequenceMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize sequence metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#serializeSystemMappingElement(java.lang.Object)"><B>serializeSystemMappingElement(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Serialize unknown mapping element at system level.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#serializeSystemMappingElement(java.lang.Object)"><B>serializeSystemMappingElement(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#serializeSystemMappingElement(java.lang.Object)"><B>serializeSystemMappingElement(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#serializeSystemMappingElement(java.lang.Object)"><B>serializeSystemMappingElement(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Serialize unknown mapping element at system level.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#serializing()"><B>serializing()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Callback to prepare instance for serialization.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#serializing()"><B>serializing()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#serializing()"><B>serializing()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#serializing()"><B>serializing()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#serializing()"><B>serializing()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util"><B>Services</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Utility classes to locate services, as defined in the <a
 href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html
 #Service%20Provider">Jar File Specification</a>.<DT><A HREF="./org/apache/openjpa/lib/util/Services.html#Services()"><B>Services()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util">Services</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html#set(org.apache.openjpa.lib.conf.ConfigurationProvider, java.lang.String)"><B>set(ConfigurationProvider, String)</B></A> - 
Static method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/BrokerFactoryValue.html" title="class in org.apache.openjpa.conf">BrokerFactoryValue</A>
<DD>Set the value of this property in the given provider.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, java.lang.Object)"><B>set(Object, Field, Object)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, boolean)"><B>set(Object, Field, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, byte)"><B>set(Object, Field, byte)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, char)"><B>set(Object, Field, char)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, double)"><B>set(Object, Field, double)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, float)"><B>set(Object, Field, float)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, int)"><B>set(Object, Field, int)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, long)"><B>set(Object, Field, long)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Field, short)"><B>set(Object, Field, short)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.Object, java.lang.reflect.Field)"><B>set(Object, Object, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, boolean, java.lang.reflect.Field)"><B>set(Object, boolean, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, byte, java.lang.reflect.Field)"><B>set(Object, byte, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, char, java.lang.reflect.Field)"><B>set(Object, char, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, double, java.lang.reflect.Field)"><B>set(Object, double, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, float, java.lang.reflect.Field)"><B>set(Object, float, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, int, java.lang.reflect.Field)"><B>set(Object, int, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, long, java.lang.reflect.Field)"><B>set(Object, long, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, short, java.lang.reflect.Field)"><B>set(Object, short, Field)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Set the value of the given field in the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, java.lang.Object)"><B>set(Object, Method, Object)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, boolean)"><B>set(Object, Method, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, byte)"><B>set(Object, Method, byte)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, char)"><B>set(Object, Method, char)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, double)"><B>set(Object, Method, double)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, float)"><B>set(Object, Method, float)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, int)"><B>set(Object, Method, int)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, long)"><B>set(Object, Method, long)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/enhance/Reflection.html#set(java.lang.Object, java.lang.reflect.Method, short)"><B>set(Object, Method, short)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A>
<DD>Invoke the given setter on the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#set(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.ColumnIO, boolean)"><B>set(ValueMapping, Object, JDBCStore, Row, Column[], ColumnIO, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Set the given value into the given row.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.DelegatingListIterator.html" title="class in org.apache.openjpa.kernel">DelegatingResultList.DelegatingListIterator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#set(int, java.lang.Object)"><B>set(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#set(int, java.lang.Object)"><B>set(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#set(boolean)"><B>set(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#set(double)"><B>set(double)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#set(java.io.File)"><B>set(File)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#set(int)"><B>set(int)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#set(java.lang.Object, boolean)"><B>set(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#set(java.lang.Object, boolean)"><B>set(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#set(java.lang.String[])"><B>set(String[])</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#set(java.lang.String)"><B>set(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>The internal value.
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#set(int, java.lang.Object)"><B>set(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#set(int, java.lang.Object)"><B>set(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#SET_ATTACH"><B>SET_ATTACH</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#SET_ATTACH"><B>SET_ATTACH</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>The field is being attached by a detached state manager; the value is
 from the detached instance.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#SET_REMOTE"><B>SET_REMOTE</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#SET_REMOTE"><B>SET_REMOTE</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>The remote broker framework is setting the field on the server.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#SET_USER"><B>SET_USER</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#SET_USER"><B>SET_USER</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>A user is setting the field.
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#setAccessibleAction(java.lang.reflect.AccessibleObject, boolean)"><B>setAccessibleAction(AccessibleObject, boolean)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegeAction object for aObj.setAccessible().
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setAccessType(org.apache.openjpa.jdbc.ant.ReverseMappingToolTask.AccessType)"><B>setAccessType(ReverseMappingToolTask.AccessType)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Whether to use field or property-based access on generated code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setAccessType(java.lang.String)"><B>setAccessType(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use field or property-based access on generated code.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setAccessType(int)"><B>setAccessType(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The access type used by this class.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#setAccessUnloaded(boolean)"><B>setAccessUnloaded(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to allow access to unloaded detached fields.
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#setAction(org.apache.openjpa.ant.MetaDataToolTask.Action)"><B>setAction(MetaDataToolTask.Action)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>Set the tool action.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setAction(org.apache.openjpa.jdbc.ant.MappingToolTask.Action)"><B>setAction(MappingToolTask.Action)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set the enumerated MappingTool action type.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setAction(org.apache.openjpa.jdbc.ant.SchemaToolTask.Action)"><B>setAction(SchemaToolTask.Action)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set the enumerated SchemaTool action type.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#setAction(int)"><B>setAction(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Set the action constant to use during relationship checking.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#setAction(java.lang.String)"><B>setAction(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Set the action string to use during relationship checking.
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#setAddDefaultConstructor(boolean)"><B>setAddDefaultConstructor(boolean)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>Set whether or not the enhancer should add a no-args constructor
 to any PC that does not have a no-args constructor.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#setAddDefaultConstructor(boolean)"><B>setAddDefaultConstructor(boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>A boolean indicating whether the enhancer should add a no-args
 constructor if one is not already present in the class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setAddNullIndicator(boolean)"><B>setAddNullIndicator(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to add a synthetic null indicator column to embedded mappings
 by default.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#setAddresses(java.lang.String)"><B>setAddresses(String)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>Sets the list of addresses of peers to which this provider will
 send events to.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#setAddWhitespaceAfterDelimiter(boolean)"><B>setAddWhitespaceAfterDelimiter(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>If set to <code>true</code>, this properties object will add a
 space after the delimiter character(if the delimiter is not
 the space character).
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setAggregate(boolean)"><B>setAggregate(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#setAggregate(boolean)"><B>setAggregate(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Set to true for aggregate selects.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setAggregate(boolean)"><B>setAggregate(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setAggregateListeners(java.lang.String)"><B>setAggregateListeners(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A comma-separted list of the plugin strings of the query
 <A HREF="./org/apache/openjpa/kernel/exps/AggregateListener.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>AggregateListener</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setAggregateListeners(org.apache.openjpa.kernel.exps.AggregateListener[])"><B>setAggregateListeners(AggregateListener[])</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set the query function listeners.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setAggregateListeners(java.lang.String)"><B>setAggregateListeners(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setAggregateListeners(org.apache.openjpa.kernel.exps.AggregateListener[])"><B>setAggregateListeners(AggregateListener[])</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#setAlias(java.lang.Object, java.lang.Object, boolean)"><B>setAlias(Object, Object, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Set an alias for a given id.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#setAlias(int, java.lang.Object)"><B>setAlias(int, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Set an alias for a given index.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setAlias(java.lang.String, java.lang.String)"><B>setAlias(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Replaces an existing alias, or adds the given alias to the front of the
 alias list if it does not already exist.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setAlias(java.lang.String, java.lang.String, java.lang.String[])"><B>setAlias(String, String, String[])</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Set an alias into a current alias list, returning the new list.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setAliases(java.lang.String[])"><B>setAliases(String[])</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Aliases for the value in the form key1, value1, key2, value2, ...
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setAliasListComprehensive(boolean)"><B>setAliasListComprehensive(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Whether or not the alias list defines all possible settings for this
 value.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setAllocate(int)"><B>setAllocate(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setAllocate(int)"><B>setAllocate(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Return the number of sequences to allocate for each update of the
 sequence table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#setAllocate(int)"><B>setAllocate(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's cache size.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setAllocate(int)"><B>setAllocate(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Sequence values to allocate, or -1 for default.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#setAllowDuplicates(boolean)"><B>setAllowDuplicates(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>If set to <code>true</code>, duplicate properties are allowed, and
 the last property setting in the input will overwrite any previous
 settings.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#setAllowsMultipleMethodsForSameCallback(boolean)"><B>setAllowsMultipleMethodsForSameCallback(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>Flags if multiple methods of the same class can handle the same 
 callback event.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#setAnnotationParser(org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser)"><B>setAnnotationParser(AnnotationPersistenceMetaDataParser)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Set the metadata parser.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setAnnotationParser(org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser)"><B>setAnnotationParser(AnnotationPersistenceMetaDataParser)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>The annotation parser.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setArray(java.sql.PreparedStatement, int, java.sql.Array, org.apache.openjpa.jdbc.schema.Column)"><B>setArray(PreparedStatement, int, Array, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setArray(org.apache.openjpa.jdbc.schema.Column, java.sql.Array)"><B>setArray(Column, Array)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setArray(org.apache.openjpa.jdbc.schema.Column, java.sql.Array)"><B>setArray(Column, Array)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setArray(int, java.sql.Array)"><B>setArray(int, Array)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setArray(int, java.sql.Array)"><B>setArray(int, Array)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setAsciiStream(java.sql.PreparedStatement, int, java.io.InputStream, int, org.apache.openjpa.jdbc.schema.Column)"><B>setAsciiStream(PreparedStatement, int, InputStream, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setAsciiStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>setAsciiStream(Column, InputStream, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setAsciiStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>setAsciiStream(Column, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setAsciiStream(int, java.io.InputStream, int)"><B>setAsciiStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setAsciiStream(java.lang.String, java.io.InputStream, int)"><B>setAsciiStream(String, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setAsciiStream(int, java.io.InputStream, int)"><B>setAsciiStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#setAssertAllowedType(boolean)"><B>setAssertAllowedType(boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Whether to perform runtime checks to ensure that all elements
 added to collection and map proxies are the proper element/key/value
 type as defined by the metadata.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setAuthentication(java.lang.String, java.lang.String)"><B>setAuthentication(String, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Set the persistence manager's authentication.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setAutoAssigned(boolean)"><B>setAutoAssigned(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether this column is auto-incrementing.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html#setAutoAssignedValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setAutoAssignedValue(OpenJPAStateManager, JDBCStore, Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DelegatingJoinable.html" title="class in org.apache.openjpa.jdbc.meta">DelegatingJoinable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html#setAutoAssignedValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setAutoAssignedValue(OpenJPAStateManager, JDBCStore, Column, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Joinable.html" title="interface in org.apache.openjpa.jdbc.meta">Joinable</A>
<DD>Use the given auto-assigned value to set this join value's field
 on the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#setAutoAssignedValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setAutoAssignedValue(OpenJPAStateManager, JDBCStore, Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#setAutoAssignedValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setAutoAssignedValue(OpenJPAStateManager, JDBCStore, Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#setAutoAssignedValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setAutoAssignedValue(OpenJPAStateManager, JDBCStore, Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#setAutoAssignedValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setAutoAssignedValue(OpenJPAStateManager, JDBCStore, Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setAutoClear(java.lang.String)"><B>setAutoClear(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether instances clear their state when entering a transaction.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setAutoClear(int)"><B>setAutoClear(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether instances clear their state when entering a transaction.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setAutoClear(java.lang.String)"><B>setAutoClear(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setAutoClear(int)"><B>setAutoClear(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setAutoClear(int)"><B>setAutoClear(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether objects clear when entering transactions.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setAutoClear(int)"><B>setAutoClear(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setAutoClear(int)"><B>setAutoClear(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setAutoClear(org.apache.openjpa.persistence.AutoClearType)"><B>setAutoClear(AutoClearType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setAutoClear(org.apache.openjpa.persistence.AutoClearType)"><B>setAutoClear(AutoClearType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to clear state when entering a transaction.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#setAutoCommit(java.lang.Boolean)"><B>setAutoCommit(Boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>Whether auto commit should be on.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setAutoCommit(boolean)"><B>setAutoCommit(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setAutoDetach(java.lang.String)"><B>setAutoDetach(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A comma-separated list of events which trigger auto-detachment
 in place of managed states.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setAutoDetach(int)"><B>setAutoDetach(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel"><CODE>AutoDetach</CODE></A> flags.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setAutoDetach(java.lang.String)"><B>setAutoDetach(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setAutoDetach(int)"><B>setAutoDetach(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setAutoDetach(int)"><B>setAutoDetach(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Bit flags marked in <A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel"><CODE>AutoDetach</CODE></A> which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setAutoDetach(int, boolean)"><B>setAutoDetach(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Bit flags marked in <A HREF="./org/apache/openjpa/kernel/AutoDetach.html" title="interface in org.apache.openjpa.kernel"><CODE>AutoDetach</CODE></A> which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setAutoDetach(int)"><B>setAutoDetach(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setAutoDetach(int, boolean)"><B>setAutoDetach(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setAutoDetach(int)"><B>setAutoDetach(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setAutoDetach(int, boolean)"><B>setAutoDetach(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setAutoDetach(org.apache.openjpa.persistence.AutoDetachType)"><B>setAutoDetach(AutoDetachType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setAutoDetach(java.util.EnumSet)"><B>setAutoDetach(EnumSet&lt;AutoDetachType&gt;)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setAutoDetach(int, boolean)"><B>setAutoDetach(int, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setAutoDetach(org.apache.openjpa.persistence.AutoDetachType)"><B>setAutoDetach(AutoDetachType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence"><CODE>AutoDetachType</CODE></A> values which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setAutoDetach(java.util.EnumSet)"><B>setAutoDetach(EnumSet&lt;AutoDetachType&gt;)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence"><CODE>AutoDetachType</CODE></A> values which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setAutoDetach(int, boolean)"><B>setAutoDetach(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Bit flags marked in <A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence"><CODE>AutoDetachType</CODE></A> which indicate when persistent
 managed objects should be automatically detached in-place.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#setAutoDistinct(boolean)"><B>setAutoDistinct(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setAutoDistinct(boolean)"><B>setAutoDistinct(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#setAutoDistinct(boolean)"><B>setAutoDistinct(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether to automatically make results distinct when relational joins
 would otherwise introduce duplicates.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setAutoDistinct(boolean)"><B>setAutoDistinct(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#setAutoOff(boolean)"><B>setAutoOff(boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>Whether to automatically stop tracking when the number of changes
 exceeds the container size.
<DT><A HREF="./org/apache/openjpa/meta/InheritanceComparator.html#setBase(java.lang.Class)"><B>setBase(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/InheritanceComparator.html" title="class in org.apache.openjpa.meta">InheritanceComparator</A>
<DD>Set the least-derived type possible; defaults to <code>null</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setBaseClassStrategy(java.lang.String)"><B>setBaseClassStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base class strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#setBaseMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setBaseMapping(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#setBaseMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setBaseMapping(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#setBaseMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setBaseMapping(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>If this is the result of a UNION used to select a hierarchy of
 mappings, the base mapping represented by the current row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBigDecimal(java.sql.PreparedStatement, int, java.math.BigDecimal, org.apache.openjpa.jdbc.schema.Column)"><B>setBigDecimal(PreparedStatement, int, BigDecimal, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#setBigDecimal(java.sql.PreparedStatement, int, java.math.BigDecimal, org.apache.openjpa.jdbc.schema.Column)"><B>setBigDecimal(PreparedStatement, int, BigDecimal, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setBigDecimal(org.apache.openjpa.jdbc.schema.Column, java.math.BigDecimal)"><B>setBigDecimal(Column, BigDecimal)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setBigDecimal(org.apache.openjpa.jdbc.schema.Column, java.math.BigDecimal)"><B>setBigDecimal(Column, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBigDecimal(int, java.math.BigDecimal)"><B>setBigDecimal(int, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBigDecimal(java.lang.String, java.math.BigDecimal)"><B>setBigDecimal(String, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setBigDecimal(int, java.math.BigDecimal)"><B>setBigDecimal(int, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBigInteger(java.sql.PreparedStatement, int, java.math.BigInteger, org.apache.openjpa.jdbc.schema.Column)"><B>setBigInteger(PreparedStatement, int, BigInteger, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setBigInteger(org.apache.openjpa.jdbc.schema.Column, java.math.BigInteger)"><B>setBigInteger(Column, BigInteger)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setBigInteger(org.apache.openjpa.jdbc.schema.Column, java.math.BigInteger)"><B>setBigInteger(Column, BigInteger)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#setBigInteger(java.sql.PreparedStatement, int, java.math.BigInteger, org.apache.openjpa.jdbc.schema.Column)"><B>setBigInteger(PreparedStatement, int, BigInteger, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBinaryStream(java.sql.PreparedStatement, int, java.io.InputStream, int, org.apache.openjpa.jdbc.schema.Column)"><B>setBinaryStream(PreparedStatement, int, InputStream, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setBinaryStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>setBinaryStream(Column, InputStream, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setBinaryStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>setBinaryStream(Column, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBinaryStream(int, java.io.InputStream, int)"><B>setBinaryStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBinaryStream(java.lang.String, java.io.InputStream, int)"><B>setBinaryStream(String, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setBinaryStream(int, java.io.InputStream, int)"><B>setBinaryStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBlob(java.sql.PreparedStatement, int, java.sql.Blob, org.apache.openjpa.jdbc.schema.Column)"><B>setBlob(PreparedStatement, int, Blob, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setBlob(org.apache.openjpa.jdbc.schema.Column, java.sql.Blob)"><B>setBlob(Column, Blob)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setBlob(org.apache.openjpa.jdbc.schema.Column, java.sql.Blob)"><B>setBlob(Column, Blob)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBlob(int, java.sql.Blob)"><B>setBlob(int, Blob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setBlob(int, java.sql.Blob)"><B>setBlob(int, Blob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setBlobAsObject(boolean)"><B>setBlobAsObject(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to represent blob columns as Java objects rather than
 byte[] fields.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setBlobAsObject(boolean)"><B>setBlobAsObject(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to reverse-map blob columns as containing serialized Java
 objects, rather than the default of using a byte[] field.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBlobObject(java.sql.PreparedStatement, int, java.lang.Object, org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>setBlobObject(PreparedStatement, int, Object, Column, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setBoolean(int, boolean)"><B>setBoolean(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the boolean at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBoolean(java.sql.PreparedStatement, int, boolean, org.apache.openjpa.jdbc.schema.Column)"><B>setBoolean(PreparedStatement, int, boolean, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#setBoolean(java.sql.PreparedStatement, int, boolean, org.apache.openjpa.jdbc.schema.Column)"><B>setBoolean(PreparedStatement, int, boolean, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#setBoolean(java.sql.PreparedStatement, int, boolean, org.apache.openjpa.jdbc.schema.Column)"><B>setBoolean(PreparedStatement, int, boolean, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setBoolean(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>setBoolean(Column, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setBoolean(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>setBoolean(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBoolean(int, boolean)"><B>setBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBoolean(java.lang.String, boolean)"><B>setBoolean(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setBoolean(int, boolean)"><B>setBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setBraceAtSameTabLevel(boolean)"><B>setBraceAtSameTabLevel(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place braces at the same tab level as the code within
 the block.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setBraceOnSameLine(boolean)"><B>setBraceOnSameLine(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place opening braces on the same line as the
 block declaration, or on the next line.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setBrokerFactory(java.lang.String)"><B>setBrokerFactory(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel"><CODE>BrokerFactory</CODE></A> class to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setBrokerFactory(java.lang.String)"><B>setBrokerFactory(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html#setBrokerFactory(org.apache.openjpa.kernel.BrokerFactory)"><B>setBrokerFactory(BrokerFactory)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerFactoryImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerFactoryImpl</A>
<DD>Delegate must be provided before use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setBrokerImpl(java.lang.String)"><B>setBrokerImpl(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string of the <A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel"><CODE>BrokerImpl</CODE></A> extension to create.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setBrokerImpl(java.lang.String)"><B>setBrokerImpl(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setByte(int, byte)"><B>setByte(int, byte)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the byte at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setByte(java.sql.PreparedStatement, int, byte, org.apache.openjpa.jdbc.schema.Column)"><B>setByte(PreparedStatement, int, byte, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setByte(org.apache.openjpa.jdbc.schema.Column, byte)"><B>setByte(Column, byte)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setByte(org.apache.openjpa.jdbc.schema.Column, byte)"><B>setByte(Column, byte)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setByte(int, byte)"><B>setByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setByte(java.lang.String, byte)"><B>setByte(String, byte)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setByte(int, byte)"><B>setByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#setBytecodeWriter(org.apache.openjpa.lib.util.BytecodeWriter)"><B>setBytecodeWriter(BytecodeWriter)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Set the <A HREF="./org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><CODE>BytecodeWriter</CODE></A> to write the bytecode to or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setBytes(java.sql.PreparedStatement, int, byte[], org.apache.openjpa.jdbc.schema.Column)"><B>setBytes(PreparedStatement, int, byte[], Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setBytes(org.apache.openjpa.jdbc.schema.Column, byte[])"><B>setBytes(Column, byte[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setBytes(org.apache.openjpa.jdbc.schema.Column, byte[])"><B>setBytes(Column, byte[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBytes(int, byte[])"><B>setBytes(int, byte[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setBytes(java.lang.String, byte[])"><B>setBytes(String, byte[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setBytes(int, byte[])"><B>setBytes(int, byte[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#setCacheSize(int)"><B>setCacheSize(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>Sets the maximum number of unpinned objects to keep hard
 references to.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#setCacheSize(int)"><B>setCacheSize(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>Sets the maximum number of unpinned objects to keep hard
 references to.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#setCacheSize(int)"><B>setCacheSize(int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The maximum number of hard references to maintain, or -1 for no limit.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setCaching(boolean)"><B>setCaching(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether parsed resource names are cached to avoid duplicate parsing.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setCalendar(java.sql.PreparedStatement, int, java.util.Calendar, org.apache.openjpa.jdbc.schema.Column)"><B>setCalendar(PreparedStatement, int, Calendar, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setCalendar(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar)"><B>setCalendar(Column, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setCalendar(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar)"><B>setCalendar(Column, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setCallbackMode(int)"><B>setCallbackMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setCallbackMode(int, boolean)"><B>setCallbackMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setCandidateCollection(java.util.Collection)"><B>setCandidateCollection(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#setCandidateCollection(java.util.Collection)"><B>setCandidateCollection(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Set a collection of candidates.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setCandidateCollection(java.util.Collection)"><B>setCandidateCollection(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setCandidateCollection(java.util.Collection)"><B>setCandidateCollection(Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Set a collection of candidates.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setCandidateCollection(java.util.Collection)"><B>setCandidateCollection(Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setCandidateExtent(org.apache.openjpa.kernel.Extent)"><B>setCandidateExtent(Extent)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#setCandidateExtent(org.apache.openjpa.kernel.Extent)"><B>setCandidateExtent(Extent)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Set the candidate extent.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setCandidateExtent(org.apache.openjpa.kernel.Extent)"><B>setCandidateExtent(Extent)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setCandidateType(java.lang.Class, boolean)"><B>setCandidateType(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#setCandidateType(java.lang.Class, boolean)"><B>setCandidateType(Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Set the candidate type.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setCandidateType(java.lang.Class, boolean)"><B>setCandidateType(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setCandidateType(java.lang.Class)"><B>setCandidateType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The query result class, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setCanForeignKey(boolean)"><B>setCanForeignKey(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>The user can mark columns as explicitly not having a foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setCanIndex(boolean)"><B>setCanIndex(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>The user can mark columns as explicitly non-indexable.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#setCanIndicateNull(boolean)"><B>setCanIndicateNull(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Whether user has explicitly turned null indicator column off.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#setCanOrderColumn(boolean)"><B>setCanOrderColumn(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Whether we can have an ordering column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setCanUnique(boolean)"><B>setCanUnique(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>The user can mark columns as explicitly not having a unique constraint.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setCascadeAttach(int)"><B>setCascadeAttach(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setCascadeAttach(int)"><B>setCascadeAttach(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for attach operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setCascadeAttach(int)"><B>setCascadeAttach(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setCascadeDelete(int)"><B>setCascadeDelete(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setCascadeDelete(int)"><B>setCascadeDelete(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for deletion.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setCascadeDelete(int)"><B>setCascadeDelete(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setCascadePersist(int)"><B>setCascadePersist(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setCascadePersist(int)"><B>setCascadePersist(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for persist operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setCascadePersist(int)"><B>setCascadePersist(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setCascadeRefresh(int)"><B>setCascadeRefresh(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setCascadeRefresh(int)"><B>setCascadeRefresh(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Cascade behavior for refresh operation.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setCascadeRefresh(int)"><B>setCascadeRefresh(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setCascades(org.apache.openjpa.meta.FieldMetaData)"><B>setCascades(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Set the cached cascades into the field.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setCatalog(java.lang.String)"><B>setCatalog(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#setCause(java.lang.Throwable)"><B>setCause(Throwable)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>The first nested throwable.
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#setChannel(java.lang.String)"><B>setChannel(String)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>The channel to log to.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#setChannel(java.lang.String)"><B>setChannel(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setChar(int, char)"><B>setChar(int, char)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the char at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setChar(java.sql.PreparedStatement, int, char, org.apache.openjpa.jdbc.schema.Column)"><B>setChar(PreparedStatement, int, char, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setChar(org.apache.openjpa.jdbc.schema.Column, char)"><B>setChar(Column, char)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setChar(org.apache.openjpa.jdbc.schema.Column, char)"><B>setChar(Column, char)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setCharacterStream(java.sql.PreparedStatement, int, java.io.Reader, int, org.apache.openjpa.jdbc.schema.Column)"><B>setCharacterStream(PreparedStatement, int, Reader, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setCharacterStream(org.apache.openjpa.jdbc.schema.Column, java.io.Reader, int)"><B>setCharacterStream(Column, Reader, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setCharacterStream(org.apache.openjpa.jdbc.schema.Column, java.io.Reader, int)"><B>setCharacterStream(Column, Reader, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setCharacterStream(int, java.io.Reader, int)"><B>setCharacterStream(int, Reader, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setCharacterStream(java.lang.String, java.io.Reader, int)"><B>setCharacterStream(String, Reader, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setCharacterStream(int, java.io.Reader, int)"><B>setCharacterStream(int, Reader, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>JDBC password.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>The class loader with which to load parsed classes.
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> - 
Method in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataParser.html" title="interface in org.apache.openjpa.lib.meta">MetaDataParser</A>
<DD>The classloader to use to resolve resources, or null for impl-defined
 default.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Classloader to use for class name resolution.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#setClassLoaders(org.apache.openjpa.lib.util.MultiClassLoader)"><B>setClassLoaders(MultiClassLoader)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Set the class loaders of this loader to those of the given loader.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setClassMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setClassMapping(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#setClassMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setClassMapping(ClassMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Set the class mapping using this strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#setClassMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setClassMapping(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#setClassMapping(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>setClassMapping(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setClassName(java.lang.String)"><B>setClassName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The described class name.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#setClassName(java.lang.String)"><B>setClassName(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>The plugin class name.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#setClassNames(java.lang.String[])"><B>setClassNames(String[])</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>The plugin class names.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#setClasspath(org.apache.tools.ant.types.Path)"><B>setClasspath(Path)</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setClasspathScan(java.util.Collection)"><B>setClasspathScan(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of classpath directories or jars to scan for metadata supplied
 by user.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setClasspathScan(java.lang.String)"><B>setClasspathScan(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of classpath directories or jars to scan for metadata supplied
 by user via auto-configuration.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setClassResolver(java.lang.String)"><B>setClassResolver(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util"><CODE>ClassResolver</CODE></A> to use for custom
 class loading.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setClassResolver(org.apache.openjpa.util.ClassResolver)"><B>setClassResolver(ClassResolver)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/util/ClassResolver.html" title="interface in org.apache.openjpa.util"><CODE>ClassResolver</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setClassResolver(java.lang.String)"><B>setClassResolver(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setClassResolver(org.apache.openjpa.util.ClassResolver)"><B>setClassResolver(ClassResolver)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#setClauseIndent(java.lang.String)"><B>setClauseIndent(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setClob(java.sql.PreparedStatement, int, java.sql.Clob, org.apache.openjpa.jdbc.schema.Column)"><B>setClob(PreparedStatement, int, Clob, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setClob(org.apache.openjpa.jdbc.schema.Column, java.sql.Clob)"><B>setClob(Column, Clob)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setClob(org.apache.openjpa.jdbc.schema.Column, java.sql.Clob)"><B>setClob(Column, Clob)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setClob(int, java.sql.Clob)"><B>setClob(int, Clob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setClob(int, java.sql.Clob)"><B>setClob(int, Clob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setClobString(java.sql.PreparedStatement, int, java.lang.String, org.apache.openjpa.jdbc.schema.Column)"><B>setClobString(PreparedStatement, int, String, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#setCloseConnection(boolean)"><B>setCloseConnection(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Whether to close the backing connection when this result is closed.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setCloseOnManagedCommit(boolean)"><B>setCloseOnManagedCommit(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to close the broker when the managed transaction commits.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#setCodeFormat(org.apache.openjpa.lib.util.CodeFormat)"><B>setCodeFormat(CodeFormat)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Set the code formatter for the generated Java code.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#setCodeFormat(org.apache.openjpa.lib.util.CodeFormat)"><B>setCodeFormat(CodeFormat)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Set the code formatter for the generated Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setCodeFormat(org.apache.openjpa.lib.util.CodeFormat)"><B>setCodeFormat(CodeFormat)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set the code formatter for the generated Java code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>I/O information on the key columns / join key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>I/O information on the discriminator columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>I/O for the columns created by the last call to <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)"><CODE>MappingInfo.createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)</CODE></A>,
 or for the foreign key created by the last call to
 <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)"><CODE>MappingInfo.createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>I/O information on the foreign key, or columns if this value doesn't
 have a key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>I/O information on the version columns.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#setColumnName(java.lang.String)"><B>setColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Set the column's name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Columns used by this Discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setColumns(java.util.List)"><B>setColumns(List)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw column data.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setColumns(Column[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The columns that hold the data for this value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Columns used for versioning.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html#setColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LocalConstraint.html" title="class in org.apache.openjpa.jdbc.schema">LocalConstraint</A>
<DD>Set the columns the constraint spans.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#setColumns(org.apache.openjpa.jdbc.meta.FieldMapping, org.apache.openjpa.jdbc.meta.MappingInfo, java.util.List, int)"><B>setColumns(FieldMapping, MappingInfo, List&lt;Column&gt;, int)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Set the given columns as the columns for <code>fm</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/Commentable.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in interface org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A>
<DD>Set comments.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setComments(java.lang.String[])"><B>setComments(String[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setCompatibility(java.lang.String)"><B>setCompatibility(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Backwards compatibility options.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setCompatibility(java.lang.String)"><B>setCompatibility(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>Caches a copy of the configuration.
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#setConfiguration(java.util.Properties)"><B>setConfiguration(Properties)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#setConfiguration(java.util.Properties)"><B>setConfiguration(Properties)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Set configuration properties given by the user.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurable.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurable.html" title="interface in org.apache.openjpa.lib.conf">Configurable</A>
<DD>Invoked prior to setting bean properties.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)"><B>setConfiguration(Configuration)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnection2DriverName(java.lang.String)"><B>setConnection2DriverName(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Class name of the non-XA connection driver.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnection2DriverName(java.lang.String)"><B>setConnection2DriverName(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnection2Password(java.lang.String)"><B>setConnection2Password(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The password for the non-XA data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnection2Password(java.lang.String)"><B>setConnection2Password(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnection2Properties(java.lang.String)"><B>setConnection2Properties(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>These properties provide any additional information needed to
 establish non-XA connections.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnection2Properties(java.lang.String)"><B>setConnection2Properties(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnection2URL(java.lang.String)"><B>setConnection2URL(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The URL for the non-XA data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnection2URL(java.lang.String)"><B>setConnection2URL(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnection2UserName(java.lang.String)"><B>setConnection2UserName(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The user name for the non-XA data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnection2UserName(java.lang.String)"><B>setConnection2UserName(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setConnectionDecorators(java.lang.String)"><B>setConnectionDecorators(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A comma-separated list of the <A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>ConnectionDecorator</CODE></A> for
 adding functionality to JDBC connections.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setConnectionDecorators(org.apache.openjpa.lib.jdbc.ConnectionDecorator[])"><B>setConnectionDecorators(ConnectionDecorator[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/lib/jdbc/ConnectionDecorator.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>ConnectionDecorator</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setConnectionDecorators(java.lang.String)"><B>setConnectionDecorators(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setConnectionDecorators(org.apache.openjpa.lib.jdbc.ConnectionDecorator[])"><B>setConnectionDecorators(ConnectionDecorator[])</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionDriverName(java.lang.String)"><B>setConnectionDriverName(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Class name of the connection driver.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionDriverName(java.lang.String)"><B>setConnectionDriverName(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setConnectionDriverName(java.lang.String)"><B>setConnectionDriverName(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Driver class name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setConnectionDriverName(java.lang.String)"><B>setConnectionDriverName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactory(java.lang.Object)"><B>setConnectionFactory(Object)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactory(java.lang.Object)"><B>setConnectionFactory(Object)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setConnectionFactory(java.lang.Object)"><B>setConnectionFactory(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactory2(java.lang.Object)"><B>setConnectionFactory2(Object)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The non-XA connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactory2(java.lang.Object)"><B>setConnectionFactory2(Object)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setConnectionFactory2(java.lang.Object)"><B>setConnectionFactory2(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactory2Name(java.lang.String)"><B>setConnectionFactory2Name(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The name for the second data store connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactory2Name(java.lang.String)"><B>setConnectionFactory2Name(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactory2Properties(java.lang.String)"><B>setConnectionFactory2Properties(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration properties for the non-XA connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactory2Properties(java.lang.String)"><B>setConnectionFactory2Properties(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactoryMode(java.lang.String)"><B>setConnectionFactoryMode(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The mode of the connection factory in use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactoryMode(java.lang.String)"><B>setConnectionFactoryMode(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactoryModeManaged(boolean)"><B>setConnectionFactoryModeManaged(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether connections are automatically enlisted in global transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactoryModeManaged(boolean)"><B>setConnectionFactoryModeManaged(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactoryName(java.lang.String)"><B>setConnectionFactoryName(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The name for the data store connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactoryName(java.lang.String)"><B>setConnectionFactoryName(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionFactoryProperties(java.lang.String)"><B>setConnectionFactoryProperties(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration properties for the connection factory.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionFactoryProperties(java.lang.String)"><B>setConnectionFactoryProperties(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setConnectionFactoryProperties(java.util.Properties)"><B>setConnectionFactoryProperties(Properties)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Configuration of datasource properties.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setConnectionFactoryProperties(java.util.Properties)"><B>setConnectionFactoryProperties(Properties)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionPassword(java.lang.String)"><B>setConnectionPassword(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The password for the data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionPassword(java.lang.String)"><B>setConnectionPassword(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setConnectionPassword(java.lang.String)"><B>setConnectionPassword(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>JDBC password.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setConnectionPassword(java.lang.String)"><B>setConnectionPassword(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionProperties(java.lang.String)"><B>setConnectionProperties(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>These properties provide any additional information needed to
 establish connections.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionProperties(java.lang.String)"><B>setConnectionProperties(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setConnectionProperties(java.util.Properties)"><B>setConnectionProperties(Properties)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>Configuration of connection.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setConnectionProperties(java.util.Properties)"><B>setConnectionProperties(Properties)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionRetainMode(java.lang.String)"><B>setConnectionRetainMode(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Specifies the behavior of the broker with respect to data store
 connections.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionRetainMode(int)"><B>setConnectionRetainMode(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set the connection retain mode as one of the following symbolic
 constants:
 
 <A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_ALWAYS"><CODE>ConnectionRetainModes.CONN_RETAIN_ALWAYS</CODE></A>
 <A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_TRANS"><CODE>ConnectionRetainModes.CONN_RETAIN_TRANS</CODE></A>
 <A HREF="./org/apache/openjpa/kernel/ConnectionRetainModes.html#CONN_RETAIN_DEMAND"><CODE>ConnectionRetainModes.CONN_RETAIN_DEMAND</CODE></A>
 
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionRetainMode(java.lang.String)"><B>setConnectionRetainMode(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionRetainMode(int)"><B>setConnectionRetainMode(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionURL(java.lang.String)"><B>setConnectionURL(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The URL for the data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionURL(java.lang.String)"><B>setConnectionURL(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setConnectionURL(java.lang.String)"><B>setConnectionURL(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>JDBC URL.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setConnectionURL(java.lang.String)"><B>setConnectionURL(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setConnectionUserName(java.lang.String)"><B>setConnectionUserName(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The user name for the data store connection.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setConnectionUserName(java.lang.String)"><B>setConnectionUserName(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html#setConnectionUserName(java.lang.String)"><B>setConnectionUserName(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema">DriverDataSource</A>
<DD>JDBC user name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setConnectionUserName(java.lang.String)"><B>setConnectionUserName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setConstantJoins(java.lang.Object[], org.apache.openjpa.jdbc.schema.Column[])"><B>setConstantJoins(Object[], Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Set the foreign key's constant joins.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setConstantJoins(org.apache.openjpa.jdbc.schema.Column[], java.lang.Object[])"><B>setConstantJoins(Column[], Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Set the foreign key's constant joins.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#setContext(org.apache.openjpa.kernel.QueryContext)"><B>setContext(QueryContext)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PessimisticLockManager.html" title="class in org.apache.openjpa.jdbc.kernel">PessimisticLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractLockManager.html" title="class in org.apache.openjpa.kernel">AbstractLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#setContext(org.apache.openjpa.kernel.QueryContext)"><B>setContext(QueryContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Called automatically by the system to associate the fetch configuration
 with a context before use.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/LockManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel">LockManager</A>
<DD>Set the context this lock manager is associated with.
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#setContext(org.apache.openjpa.kernel.StoreContext)"><B>setContext(StoreContext)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Set a reference to the corresponding context.
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#setContext(org.apache.openjpa.kernel.QueryContext)"><B>setContext(QueryContext)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Set the current query context.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setCopyObjectIds(boolean)"><B>setCopyObjectIds(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to copy identity objects before returning them to client code.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#setCreateSubclass(boolean)"><B>setCreateSubclass(boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether the enhancer should make its arguments persistence-capable,
 or generate a persistence-capable subclass.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setCursorName(java.lang.String)"><B>setCursorName(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setCursorName(java.lang.String)"><B>setCursorName(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setCursorName(java.lang.String)"><B>setCursorName(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setCustomizer(org.apache.openjpa.jdbc.meta.ReverseCustomizer)"><B>setCustomizer(ReverseCustomizer)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set the customizer.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setCustomizerClass(java.lang.String)"><B>setCustomizerClass(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set a customizer class to use.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setCustomizerProperties(java.lang.String)"><B>setCustomizerProperties(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set a properties file to pass to the customizer class.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#setCycle(java.util.List)"><B>setCycle(List)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>List of edges forming a cycle.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#setData(int, java.lang.Object)"><B>setData(int, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#setData(int, java.lang.Object)"><B>setData(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDataCache(java.lang.String)"><B>setDataCache(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache"><CODE>DataCache</CODE></A> to use for level-2 data store caching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDataCache(java.lang.String)"><B>setDataCache(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDataCacheManager(java.lang.String)"><B>setDataCacheManager(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The data cache manager manages this configuration's cache instances.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDataCacheManager(org.apache.openjpa.datacache.DataCacheManager)"><B>setDataCacheManager(DataCacheManager)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The data cache manager manages this configuration's cache instances.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDataCacheManager(java.lang.String)"><B>setDataCacheManager(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDataCacheManager(org.apache.openjpa.datacache.DataCacheManager)"><B>setDataCacheManager(DataCacheManager)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setDataCacheName(java.lang.String)"><B>setDataCacheName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Set the cache name for this class.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDataCacheTimeout(int)"><B>setDataCacheTimeout(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Default data cache timeout.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDataCacheTimeout(java.lang.Integer)"><B>setDataCacheTimeout(Integer)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDataCacheTimeout(int)"><CODE>OpenJPAConfiguration.setDataCacheTimeout(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDataCacheTimeout(int)"><B>setDataCacheTimeout(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDataCacheTimeout(java.lang.Integer)"><B>setDataCacheTimeout(Integer)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setDataCacheTimeout(int)"><B>setDataCacheTimeout(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The cache timeout for this class.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#setDataStore(org.apache.openjpa.jdbc.kernel.AbstractJDBCSavepointManager.ConnectionSavepoint)"><B>setDataStore(AbstractJDBCSavepointManager.ConnectionSavepoint)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>Set the datastore savepoint.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html#setDataStore(org.apache.openjpa.jdbc.kernel.AbstractJDBCSavepointManager.ConnectionSavepoint)"><B>setDataStore(AbstractJDBCSavepointManager.ConnectionSavepoint)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBC3SavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBC3SavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setDataStoreIdColumnName(java.lang.String)"><B>setDataStoreIdColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for datastore identity columns, or null to the
 mapping's built-in name.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setDataStoreObjectIdFieldUnwrapped(boolean)"><B>setDataStoreObjectIdFieldUnwrapped(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html#setDataStoreSavepoint(java.lang.Object)"><B>setDataStoreSavepoint(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.ConnectionSavepoint.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager.ConnectionSavepoint</A>
<DD>Set the implementation specific savepoint object
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setDate(java.sql.PreparedStatement, int, java.util.Date, org.apache.openjpa.jdbc.schema.Column)"><B>setDate(PreparedStatement, int, Date, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setDate(java.sql.PreparedStatement, int, java.sql.Date, java.util.Calendar, org.apache.openjpa.jdbc.schema.Column)"><B>setDate(PreparedStatement, int, Date, Calendar, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setDate(org.apache.openjpa.jdbc.schema.Column, java.util.Date)"><B>setDate(Column, Date)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setDate(org.apache.openjpa.jdbc.schema.Column, java.sql.Date, java.util.Calendar)"><B>setDate(Column, Date, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setDate(org.apache.openjpa.jdbc.schema.Column, java.util.Date)"><B>setDate(Column, Date)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setDate(org.apache.openjpa.jdbc.schema.Column, java.sql.Date, java.util.Calendar)"><B>setDate(Column, Date, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setDate(int, java.sql.Date)"><B>setDate(int, Date)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setDate(int, java.sql.Date, java.util.Calendar)"><B>setDate(int, Date, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setDate(java.lang.String, java.sql.Date)"><B>setDate(String, Date)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setDate(java.lang.String, java.sql.Date, java.util.Calendar)"><B>setDate(String, Date, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setDate(int, java.sql.Date)"><B>setDate(int, Date)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setDate(int, java.sql.Date, java.util.Calendar)"><B>setDate(int, Date, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setDBDictionary(java.lang.String)"><B>setDBDictionary(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><CODE>DBDictionary</CODE></A> to use to define the RDBMS SQL information.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setDBDictionary(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>setDBDictionary(DBDictionary)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><CODE>DBDictionary</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setDBDictionary(java.lang.String)"><B>setDBDictionary(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setDBDictionary(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>setDBDictionary(DBDictionary)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setDBSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setDBSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Set the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setDecimalDigits(int)"><B>setDecimalDigits(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set the number of decimal digits for the column.
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#setDeclaredCallbacks(int, org.apache.openjpa.event.LifecycleCallbacks[], int)"><B>setDeclaredCallbacks(int, LifecycleCallbacks[], int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Set the callbacks for the given event type.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setDeclaredIndex(int)"><B>setDeclaredIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The relative index of this persistent/transactional field.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setDeclaredInterfacePersistent(boolean)"><B>setDeclaredInterfacePersistent(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setDeclaredType(java.lang.Class)"><B>setDeclaredType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setDeclaredType(java.lang.Class)"><B>setDeclaredType(Class)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Set the declared class of the value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setDeclaredType(java.lang.Class)"><B>setDeclaredType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setDeclaredTypeCode(int)"><B>setDeclaredTypeCode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setDeclaredTypeCode(int)"><B>setDeclaredTypeCode(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Set the type code for the value.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setDeclaredTypeCode(int)"><B>setDeclaredTypeCode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setDeclaringType(java.lang.Class)"><B>setDeclaringType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The declaring class.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setDefault(java.lang.Object)"><B>setDefault(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set the default value for the column.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setDefault(java.lang.String)"><B>setDefault(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The default value for the propert as a string.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setDefaultAccessType(int)"><B>setDefaultAccessType(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>The default access type for base classes with ACCESS_UNKNOWN.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html#setDefaultAccessType(java.lang.String)"><B>setDefaultAccessType(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataDefaults.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataDefaults</A>
<DD>Auto-configuration method for the default access type of base classes 
 with ACCESS_UNKNOWN
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#setDefaultEntryDelimiter(char)"><B>setDefaultEntryDelimiter(char)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>The character to use as a delimiter between property keys and values.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setDefaultFetchGroupExplicit(boolean)"><B>setDefaultFetchGroupExplicit(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether the default fetch group setting is explicit.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setDefaultIdentityType(int)"><B>setDefaultIdentityType(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>The default identity type for unmapped classes without primary 
 key fields.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setDefaultLevel(java.lang.String)"><B>setDefaultLevel(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The string name of the default level for unconfigured log channels;
 used for automatic configuration.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setDefaultLevel(short)"><B>setDefaultLevel(short)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The default level for unconfigured log channels.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setDefaultMissingInfo(boolean)"><B>setDefaultMissingInfo(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setDefaultString(java.lang.String)"><B>setDefaultString(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set the default value for the column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setDeferConstraints(boolean)"><B>setDeferConstraints(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to defer constraints by default.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#setDeferred(boolean)"><B>setDeferred(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Make this constrain deferred.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#setDefiningType(java.lang.Class)"><B>setDefiningType(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>The class that defines this query result, or null if none.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setDefiningType(java.lang.Class)"><B>setDefiningType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The class that defines this query, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#setDelayConstraintResolve(boolean)"><B>setDelayConstraintResolve(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaParser</A>
<DD>Delay resolution of foreign key constraints until
 <A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#resolveConstraints()"><CODE>SchemaParser.resolveConstraints()</CODE></A> is called.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#setDelayConstraintResolve(boolean)"><B>setDelayConstraintResolve(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setDeleteAction(int)"><B>setDeleteAction(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Set the delete action for the key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setDependent(boolean)"><B>setDependent(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>Mark this row as dependent on some other row.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setDescribedType(java.lang.Class)"><B>setDescribedType(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setDescribedType(java.lang.Class)"><B>setDescribedType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Set the class descibed by this metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setDetachable(boolean)"><B>setDetachable(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to make generated classes detachable.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setDetachable(boolean)"><B>setDetachable(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to make generated classes detachable.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setDetachable(boolean)"><B>setDetachable(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether instances are detachable.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setDetachedNew(boolean)"><B>setDetachedNew(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to treat relations to detached instances as new.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setDetachedNew(boolean)"><B>setDetachedNew(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setDetachedNew(boolean)"><B>setDetachedNew(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setDetachedState(java.lang.String)"><B>setDetachedState(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The name of the detach state field, or null if none.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#setDetachedStateField(boolean)"><B>setDetachedStateField(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to add a detached state field to enhanced classes.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#setDetachedStateField(java.lang.String)"><B>setDetachedStateField(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>For auto-configuration of the detached state field.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#setDetachedStateManager(boolean)"><B>setDetachedStateManager(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to use a detached state manager on types that allow it.
<DT><A HREF="./org/apache/openjpa/conf/DetachOptions.html#setDetachedStateTransient(boolean)"><B>setDetachedStateTransient(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/DetachOptions.html" title="class in org.apache.openjpa.conf">DetachOptions</A>
<DD>Whether to use transient detached state.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDetachState(java.lang.String)"><B>setDetachState(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Which field values to include when detaching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDetachState(org.apache.openjpa.conf.DetachOptions)"><B>setDetachState(DetachOptions)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the instance specified by the detach state plugin.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDetachState(java.lang.String)"><B>setDetachState(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDetachState(org.apache.openjpa.conf.DetachOptions)"><B>setDetachState(DetachOptions)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setDetachState(int)"><B>setDetachState(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setDetachState(int)"><B>setDetachState(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#setDetachState(int)"><B>setDetachState(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Detach mode constant to determine which fields are part of the
 detached graph.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setDetachState(org.apache.openjpa.persistence.DetachStateType)"><B>setDetachState(DetachStateType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setDetachState(org.apache.openjpa.persistence.DetachStateType)"><B>setDetachState(DetachStateType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Detach mode constant to determine which fields are part of the
 detached graph.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setDiagnosticContext(java.lang.String)"><B>setDiagnosticContext(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>A string to prefix all log messages with.
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#setDirectory(java.lang.String)"><B>setDirectory(String)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Set the output directory we want the enhancer to write to.
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#setDirectory(java.lang.String)"><B>setDirectory(String)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>Set the output directory we want the enhancer to write to.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#setDirectory(java.io.File)"><B>setDirectory(File)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The directory to write source to.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#setDirectory(java.io.File)"><B>setDirectory(File)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>The directory to write source to.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#setDirectory(java.io.File)"><B>setDirectory(File)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>The base build directory to generate code to.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setDirectory(java.lang.String)"><B>setDirectory(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set the output directory for the generated classes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setDirectory(java.io.File)"><B>setDirectory(File)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>The file to output the generated code to, or null for
 the current directory.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setDiscriminator(org.apache.openjpa.jdbc.meta.Discriminator)"><B>setDiscriminator(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html#setDiscriminator(org.apache.openjpa.jdbc.meta.Discriminator)"><B>setDiscriminator(Discriminator)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">DiscriminatorStrategy</A>
<DD>Set the Discriminator that uses this strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html#setDiscriminator(org.apache.openjpa.jdbc.meta.Discriminator)"><B>setDiscriminator(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html#setDiscriminator(org.apache.openjpa.jdbc.meta.Discriminator)"><B>setDiscriminator(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setDiscriminatorColumnName(java.lang.String)"><B>setDiscriminatorColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for discriminator columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setDiscriminatorStrategy(java.lang.String)"><B>setDiscriminatorStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Default discriminator strategy for base class mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setDiscriminatorStrategy(java.lang.String)"><B>setDiscriminatorStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default discriminator strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setDiscriminatorStrategy(java.lang.String)"><B>setDiscriminatorStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Default discriminator strategy for base class mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#setDistinct(boolean)"><B>setDistinct(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setDistinct(boolean)"><B>setDistinct(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#setDistinct(boolean)"><B>setDistinct(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether this is a SELECT DISTINCT / UNION ALL.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setDistinct(boolean)"><B>setDistinct(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setDocumentLocator(org.xml.sax.Locator)"><B>setDocumentLocator(Locator)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setDouble(int, double)"><B>setDouble(int, double)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the double at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setDouble(java.sql.PreparedStatement, int, double, org.apache.openjpa.jdbc.schema.Column)"><B>setDouble(PreparedStatement, int, double, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#setDouble(java.sql.PreparedStatement, int, double, org.apache.openjpa.jdbc.schema.Column)"><B>setDouble(PreparedStatement, int, double, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#setDouble(java.sql.PreparedStatement, int, double, org.apache.openjpa.jdbc.schema.Column)"><B>setDouble(PreparedStatement, int, double, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setDouble(org.apache.openjpa.jdbc.schema.Column, double)"><B>setDouble(Column, double)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setDouble(org.apache.openjpa.jdbc.schema.Column, double)"><B>setDouble(Column, double)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setDouble(int, double)"><B>setDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setDouble(java.lang.String, double)"><B>setDouble(String, double)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setDouble(int, double)"><B>setDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#setDoubleSpace(boolean)"><B>setDoubleSpace(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>If true, then output two lines after multi-line statements.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setDriverDataSource(java.lang.String)"><B>setDriverDataSource(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/schema/DriverDataSource.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>DriverDataSource</CODE></A> to use for creating a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/DataSource.html" title="class or interface in javax.sql"><CODE>DataSource</CODE></A>
 from a JDBC <CODE>Driver</CODE>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setDriverDataSource(java.lang.String)"><B>setDriverDataSource(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setDropSequences(boolean)"><B>setDropSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether the MappingTool should drop sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setDropSequences(boolean)"><B>setDropSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether the SchemaTool should drop sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setDropSequences(boolean)"><B>setDropSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>If true, sequences that appear to be unused will be dropped.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setDropTables(boolean)"><B>setDropTables(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether the MappingTool should drop tables.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setDropTables(boolean)"><B>setDropTables(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>If true, tables that appear to be unused will be dropped.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setDropUnusedComponents(boolean)"><B>setDropUnusedComponents(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether schema components that are unused by any mapping will be
 dropped from this tool's <A HREF="./org/apache/openjpa/jdbc/schema/SchemaGroup.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>SchemaGroup</CODE></A>, and, depending on
 the schema action, from the database.
<DT><A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html#setDynamicallyInstallAgent(boolean)"><B>setDynamicallyInstallAgent(boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance">InstrumentationFactory</A>
<DD>Configures whether or not this instance should attempt to dynamically
 install an agent in the VM.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDynamicDataStructs(boolean)"><B>setDynamicDataStructs(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set whether to generate dynamic data structures
 where possible for cache and runtime usage.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDynamicDataStructs(java.lang.Boolean)"><B>setDynamicDataStructs(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setDynamicDataStructs(boolean)"><CODE>OpenJPAConfiguration.setDynamicDataStructs(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDynamicDataStructs(boolean)"><B>setDynamicDataStructs(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setDynamicDataStructs(java.lang.Boolean)"><B>setDynamicDataStructs(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setEagerFetchMode(java.lang.String)"><B>setEagerFetchMode(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Specifies the default eager fetch mode to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setEagerFetchMode(int)"><B>setEagerFetchMode(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Set the eager fetch mode as one of the following symbolic constants:
 
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_NONE"><CODE>EagerFetchModes.EAGER_NONE</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_JOIN"><CODE>EagerFetchModes.EAGER_JOIN</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_PARALLEL"><CODE>EagerFetchModes.EAGER_PARALLEL</CODE></A>
 
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setEagerFetchMode(java.lang.String)"><B>setEagerFetchMode(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setEagerFetchMode(int)"><B>setEagerFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setEagerFetchMode(int)"><B>setEagerFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setEagerFetchMode(int)"><B>setEagerFetchMode(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Set the eager fetch mode.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setEagerFetchMode(int)"><B>setEagerFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setEagerFetchMode(int)"><B>setEagerFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>The eager fetch mode, as one of the eager constants in
 <A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCFetchConfiguration</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setEagerFetchMode(org.apache.openjpa.persistence.jdbc.FetchMode)"><B>setEagerFetchMode(FetchMode)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Eager fetch mode in loading relations.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setEagerFetchMode(org.apache.openjpa.persistence.jdbc.FetchMode)"><B>setEagerFetchMode(FetchMode)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#setEagerMap(java.util.Map)"><B>setEagerMap(Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Raw eager information.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setEmbedded(boolean)"><B>setEmbedded(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setEmbedded(boolean)"><B>setEmbedded(boolean)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>This attribute is a hint to the implementation to store this value
 in the same structure as the class, rather than as a separate datastore
 structure.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setEmbedded(boolean)"><B>setEmbedded(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setEmbeddedOnly(boolean)"><B>setEmbeddedOnly(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type can only be used as an embedded object.
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#setEnforcePropertyRestrictions(boolean)"><B>setEnforcePropertyRestrictions(boolean)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>Set whether to fail if the persistent type uses property access and
 bytecode analysis shows that it may be violating OpenJPA's property
 access restrictions.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#setEnforcePropertyRestrictions(boolean)"><B>setEnforcePropertyRestrictions(boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether to fail if the persistent type uses property access and
 bytecode analysis shows that it may be violating OpenJPA's property
 access restrictions.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setEnvClassLoader(java.lang.ClassLoader)"><B>setEnvClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The class environmental loader used when loading this metadata.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#setEnvClassLoader(java.lang.ClassLoader)"><B>setEnvClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Set the environmental class loader to pass on to parsed
 metadata instances.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setEnvClassLoader(java.lang.ClassLoader)"><B>setEnvClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Set the environmental class loader to pass on to parsed
 metadata instances.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setEscapeProcessing(boolean)"><B>setEscapeProcessing(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setEscapeProcessing(boolean)"><B>setEscapeProcessing(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setEscapeProcessing(boolean)"><B>setEscapeProcessing(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setEvictFromDataCache(boolean)"><B>setEvictFromDataCache(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to also evict an object from the store cache when it is
 evicted through this broker.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setEvictFromDataCache(boolean)"><B>setEvictFromDataCache(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setEvictFromDataCache(boolean)"><B>setEvictFromDataCache(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setEvictFromStoreCache(boolean)"><B>setEvictFromStoreCache(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setEvictFromStoreCache(boolean)"><B>setEvictFromStoreCache(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to also evict an object from the store cache when it is
 evicted through this entity manager.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#setEvictionSchedule(java.lang.String)"><B>setEvictionSchedule(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#setExceptionReconnectAttempts(int)"><B>setExceptionReconnectAttempts(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>The number of times to attempt to reconnect after a JMS send exception
 is detected.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setExcludeUnlistedClasses(boolean)"><B>setExcludeUnlistedClasses(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#setExpectedResultCount(int, boolean)"><B>setExpectedResultCount(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setExpectedResultCount(int, boolean)"><B>setExpectedResultCount(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#setExpectedResultCount(int, boolean)"><B>setExpectedResultCount(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>The expected result count for the query.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setExpectedResultCount(int, boolean)"><B>setExpectedResultCount(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setExplicit(boolean)"><B>setExplicit(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is explicitly declared in the metadata.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setExternalizer(java.lang.String)"><B>setExternalizer(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The name of this field's externalizer, or null if none.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setExternalValues(java.lang.String)"><B>setExternalValues(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Properties string mapping field values to external values.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setFactory(java.lang.String)"><B>setFactory(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The name of this field's factory, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setFailedObject(java.lang.Object)"><B>setFailedObject(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setFailedObject(java.lang.Object)"><B>setFailedObject(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the failed object to include in the optimistic lock exception
 that will be thrown if this update results in an update count of 0
 when executed.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setFailedObject(java.lang.Object)"><B>setFailedObject(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>This implementation does not track failed objects.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#setFailedObject(java.lang.Object)"><B>setFailedObject(Object)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>The failed object.
<DT><A HREF="./org/apache/openjpa/event/LifecycleEventManager.html#setFailFast(boolean)"><B>setFailFast(boolean)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LifecycleEventManager.html" title="class in org.apache.openjpa.event">LifecycleEventManager</A>
<DD>Whether to fail after first exception when firing events to listeners.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#setFailFast(boolean)"><B>setFailFast(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>Whether to fail after the first exception thrown by any listener.
<DT><A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html#setFatal(boolean)"><B>setFatal(boolean)</B></A> - 
Method in exception org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BootstrapException.html" title="class in org.apache.openjpa.lib.conf">BootstrapException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#setFatal(boolean)"><B>setFatal(boolean)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>Whether this error is fatal.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set the size of the batch that will be pre-selected when accessing
 elements in a query or relationship.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFetchBatchSize(java.lang.Integer)"><B>setFetchBatchSize(Integer)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFetchBatchSize(int)"><CODE>OpenJPAConfiguration.setFetchBatchSize(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFetchBatchSize(java.lang.Integer)"><B>setFetchBatchSize(Integer)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Set the fetch batch size for large result set support.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Set the fetch batch size for large result set support.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setFetchBatchSize(int)"><B>setFetchBatchSize(int)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setFetchDirection(java.lang.String)"><B>setFetchDirection(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The JDBC fetch direction.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Set the result set fetch direction constant.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setFetchDirection(java.lang.String)"><B>setFetchDirection(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The fetch direction to use as a constant from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html" title="class or interface in java.sql"><CODE>ResultSet</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setFetchDirection(int)"><B>setFetchDirection(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setFetchDirection(org.apache.openjpa.persistence.jdbc.FetchDirection)"><B>setFetchDirection(FetchDirection)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Result set fetch direction.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setFetchDirection(org.apache.openjpa.persistence.jdbc.FetchDirection)"><B>setFetchDirection(FetchDirection)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFetchGroups(java.lang.String)"><B>setFetchGroups(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Comma-separated list of fetch group names that will be pre-set for
 all new <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFetchGroups(java.lang.String[])"><B>setFetchGroups(String[])</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>List of fetch group names that will be pre-set for all new
 <A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel"><CODE>FetchConfiguration</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFetchGroups(java.lang.String)"><B>setFetchGroups(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFetchGroups(java.lang.String[])"><B>setFetchGroups(String[])</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setFetchSize(int)"><B>setFetchSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setFetchSize(int)"><B>setFetchSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#setFetchSize(int)"><B>setFetchSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setFetchSize(int)"><B>setFetchSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#setField(int, java.lang.Object)"><B>setField(int, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Set the data for the field with the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setFieldMapping(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>setFieldMapping(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#setFieldMapping(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>setFieldMapping(FieldMapping)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Set the class mapping using this strategy.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#setFieldMapping(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>setFieldMapping(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html#setFieldMapping(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>setFieldMapping(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#setFieldOverride(boolean)"><B>setFieldOverride(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Whether to use field-level override or class-level override.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setFieldStrategies(java.lang.String)"><B>setFieldStrategies(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Property string mapping field type names to value handler or field
 mapping class names.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setFieldStrategy(java.lang.String, java.lang.String)"><B>setFieldStrategy(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Association of a field value type name with the handler or strategy
 class name.
<DT><A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html#setFile(java.lang.String)"><B>setFile(String)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/MetaDataToolTask.html" title="class in org.apache.openjpa.ant">MetaDataToolTask</A>
<DD>Set the file to write the metadata to.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setFile(java.lang.String)"><B>setFile(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set the output file we want the MappingTool to write to.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setFile(java.lang.String)"><B>setFile(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set the output file we want the SchemaTool to write to.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#setFile(java.lang.String)"><B>setFile(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>Set the XML resource defining this schema.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setFile(java.lang.String)"><B>setFile(String)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The stream to write to.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#setFile(java.io.File)"><B>setFile(File)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The file to generate metadata to.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#setFileName(java.lang.String)"><B>setFileName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#setFile(java.lang.String)"><CODE>FileSchemaFactory.setFile(java.lang.String)</CODE></A>. Retained for
 backwards-compatible auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setFiles(java.util.Collection)"><B>setFiles(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io"><CODE>File</CODE></A>s of metadata files or directories supplied by user.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setFiles(java.lang.String)"><B>setFiles(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of semicolon-separated <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io"><CODE>File</CODE></A>s of metadata files or
 directories supplied by user via auto-configuration.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFilterListeners(java.lang.String)"><B>setFilterListeners(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A comma-separted list of the plugin strings of the query
 <A HREF="./org/apache/openjpa/kernel/exps/FilterListener.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>FilterListener</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFilterListeners(org.apache.openjpa.kernel.exps.FilterListener[])"><B>setFilterListeners(FilterListener[])</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set the query filter listeners.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFilterListeners(java.lang.String)"><B>setFilterListeners(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFilterListeners(org.apache.openjpa.kernel.exps.FilterListener[])"><B>setFilterListeners(FilterListener[])</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setFirstResult(int)"><B>setFirstResult(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setFirstResult(int)"><B>setFirstResult(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setFlag(int, boolean)"><B>setFlag(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Flags are used for bookkeeping information.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setFloat(int, float)"><B>setFloat(int, float)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the float at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setFloat(java.sql.PreparedStatement, int, float, org.apache.openjpa.jdbc.schema.Column)"><B>setFloat(PreparedStatement, int, float, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#setFloat(java.sql.PreparedStatement, int, float, org.apache.openjpa.jdbc.schema.Column)"><B>setFloat(PreparedStatement, int, float, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setFloat(org.apache.openjpa.jdbc.schema.Column, float)"><B>setFloat(Column, float)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setFloat(org.apache.openjpa.jdbc.schema.Column, float)"><B>setFloat(Column, float)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setFloat(int, float)"><B>setFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setFloat(java.lang.String, float)"><B>setFloat(String, float)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setFloat(int, float)"><B>setFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setFlushBeforeDetach(boolean)"><B>setFlushBeforeDetach(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether OpenJPA should flush changes before detaching or serializing an
 entity.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFlushBeforeQueries(java.lang.String)"><B>setFlushBeforeQueries(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Sets whether or not OpenJPA should automatically flush
 modifications to the data store before executing queries.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setFlushBeforeQueries(int)"><B>setFlushBeforeQueries(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set to one of <A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_TRUE"><CODE>QueryFlushModes.FLUSH_TRUE</CODE></A>,
 <A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_FALSE"><CODE>QueryFlushModes.FLUSH_FALSE</CODE></A>, or
 <A HREF="./org/apache/openjpa/kernel/QueryFlushModes.html#FLUSH_WITH_CONNECTION"><CODE>QueryFlushModes.FLUSH_WITH_CONNECTION</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFlushBeforeQueries(java.lang.String)"><B>setFlushBeforeQueries(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setFlushBeforeQueries(int)"><B>setFlushBeforeQueries(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setFlushBeforeQueries(int)"><B>setFlushBeforeQueries(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setFlushBeforeQueries(int)"><B>setFlushBeforeQueries(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The query automatic flush configuration.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setFlushBeforeQueries(int)"><B>setFlushBeforeQueries(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setFlushMode(javax.persistence.FlushModeType)"><B>setFlushMode(FlushModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setFlushMode(javax.persistence.FlushModeType)"><B>setFlushMode(FlushModeType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setFlushMode(javax.persistence.FlushModeType)"><B>setFlushMode(FlushModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>setForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setForeignKey(org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(Row, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>setForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw foreign key information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>setForeignKey(ForeignKey)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>If this value joins to another record, the foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setForeignKey(org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(Row, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Sets this value's foreign key to the given related object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>setForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setForeignKey(org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(Row, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, ColumnIO, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given foreign key to the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, ColumnIO, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given foreign key to the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, ColumnIO, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#setForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setForeignKey(ForeignKey, ColumnIO, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setForeignKeyDeleteAction(int)"><B>setForeignKeyDeleteAction(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default foreign key action for relation keys.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setForeignKeyDeleteAction(java.lang.String)"><B>setForeignKeyDeleteAction(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default foreign key action name for relation keys.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setForeignKeys(boolean)"><B>setForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether to generate foreign key information.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setForeignKeys(boolean)"><B>setForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether to generate foreign key information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setForeignKeys(boolean)"><B>setForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether foreign keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#setForeignKeys(boolean)"><B>setForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#setForeignKeys(boolean)"><B>setForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Set whether foreign keys should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setForeignKeys(boolean)"><B>setForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether foreign keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setFormat(java.lang.String)"><B>setFormat(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD><B>Deprecated.</B>&nbsp;<I>Retained for backwards-compatibility for auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setFrom(org.apache.openjpa.kernel.Query)"><B>setFrom(Query)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Initialize this instance from the values held in the
 specified <A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel"><CODE>Query</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#setFromCmdLine(java.lang.String[])"><B>setFromCmdLine(String[])</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>Parses the given argument list into flag/value pairs, which are stored
 as properties.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setFromSelect(org.apache.openjpa.jdbc.sql.Select)"><B>setFromSelect(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#setFromSelect(org.apache.openjpa.jdbc.sql.Select)"><B>setFromSelect(Select)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Another select instance that creates a temporary table from which
 this select pulls data.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setFromSelect(org.apache.openjpa.jdbc.sql.Select)"><B>setFromSelect(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setGenerateAnnotations(boolean)"><B>setGenerateAnnotations(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Whether to generate annotations along with generated code.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setGenerateAnnotations(boolean)"><B>setGenerateAnnotations(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to generate annotations along with generated code.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#setHaltOnError(boolean)"><B>setHaltOnError(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Set whether we want the task to ignore all errors.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setHandler(org.apache.openjpa.jdbc.meta.ValueHandler)"><B>setHandler(ValueHandler)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setHandler(org.apache.openjpa.jdbc.meta.ValueHandler)"><B>setHandler(ValueHandler)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The handler used for this value, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setHandler(org.apache.openjpa.jdbc.meta.ValueHandler)"><B>setHandler(ValueHandler)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setHierarchyStrategy(java.lang.String)"><B>setHierarchyStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The default strategy for subclasses in this hierarchy.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setHint(java.lang.String, java.lang.Object)"><B>setHint(String, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setHint(java.lang.String, java.lang.Object)"><B>setHint(String, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Sets an arbitrary query hint that may be utilized during
 execution.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setHint(java.lang.String, java.lang.Object)"><B>setHint(String, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setHint(java.lang.String, java.lang.Object)"><B>setHint(String, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setHint(java.lang.String, java.lang.Object)"><B>setHint(String, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setHoldability(int)"><B>setHoldability(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html#setId(java.lang.Object)"><B>setId(Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance">PCDataGenerator.DynamicPCData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#setId(java.lang.String)"><B>setId(String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>An environment-specific identifier for this configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setId(java.lang.String)"><B>setId(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setIdentityClassSuffix(java.lang.String)"><B>setIdentityClassSuffix(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>The suffix to use to create the identity class name for a class, or
 for inner classes, the name of the inner class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setIdentityClassSuffix(java.lang.String)"><B>setIdentityClassSuffix(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Suffix used to create application identity class name from a class name,
 or in the case of inner identity classes, the inner class name.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setIdentitySequenceName(java.lang.String)"><B>setIdentitySequenceName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The datastore identity sequence name, or null for none.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setIdentityStrategy(int)"><B>setIdentityStrategy(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The strategy to use for datastore identity generation.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setIdentityType(int)"><B>setIdentityType(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The type of identity being used.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether changes in the current transaction are taken into account when
 executing queries and iterating extents.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setIgnoreChanges(java.lang.Boolean)"><B>setIgnoreChanges(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setIgnoreChanges(boolean)"><CODE>OpenJPAConfiguration.setIgnoreChanges(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setIgnoreChanges(java.lang.Boolean)"><B>setIgnoreChanges(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to take into account changes in the transaction when executing
 a query or iterating an extent.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Whether this extent will ignore changes made in the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Whether to ignore changes in the current transaction.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Extent.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Extent.html" title="interface in org.apache.openjpa.persistence">Extent</A>
<DD>Whether the extent sees inserts and deletes in the current transaction.
<DT><A HREF="./org/apache/openjpa/persistence/ExtentImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ExtentImpl.html" title="class in org.apache.openjpa.persistence">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to take into account changes in the transaction when executing
 a query or iterating an extent.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Whether to ignore changes in the current transaction.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setIgnoreChanges(boolean)"><B>setIgnoreChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Set whether to ignore errors.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>Set to false if this tool should throw an exception on
 an attempt to generate an id class for a type that does not use
 application identity.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether we want the MappingTool to ignore SQL errors.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether we want the SchemaTool to ignore SQL errors.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether and SQL errors should cause a failure or just issue a warning.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setIgnoreErrors(boolean)"><B>setIgnoreErrors(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>If true, SQLExceptions thrown during schema manipulation will be
 printed but ignored.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setIgnoreNonPersistent(boolean)"><B>setIgnoreNonPersistent(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html#setIgnoreNonPersistent(boolean)"><B>setIgnoreNonPersistent(boolean)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataDefaults.html" title="interface in org.apache.openjpa.meta">MetaDataDefaults</A>
<DD>Whether to ignore members which are not persistent by default
 during metadata population.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#setIgnoreNonPersistent(boolean)"><B>setIgnoreNonPersistent(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#setIgnoreSuperclassCallbacks(int)"><B>setIgnoreSuperclassCallbacks(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Whether to exclude superclass callbacks from events.
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#setIgnoreSystemListeners(boolean)"><B>setIgnoreSystemListeners(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Whether to exclude system listeners from events.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#setIgnoreUnmapped(boolean)"><B>setIgnoreUnmapped(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Whether unmapped classes should be ignored as possible primary
 key values in the table.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#setIgnoreVirtual(boolean)"><B>setIgnoreVirtual(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#setIgnoreUnmapped(boolean)"><CODE>ClassTableJDBCSeq.setIgnoreUnmapped(boolean)</CODE></A>. Retained for
 backwards-compatibility for auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#setImplData(java.lang.Object)"><B>setImplData(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setImplData(java.lang.Object, boolean)"><B>setImplData(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setImplData(java.lang.Object, boolean)"><B>setImplData(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setImplData(java.lang.Object, boolean)"><B>setImplData(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setImplData(java.lang.Object, boolean)"><B>setImplData(Object, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>An object that concrete back ends can associate with each instance.
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Field-level impl data.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#setImplData(java.lang.Object)"><B>setImplData(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Sets the stored instance-level impl data.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#setImplData(java.lang.Object)"><B>setImplData(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setImplData(java.lang.Object, boolean)"><B>setImplData(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setImplData(int, java.lang.Object)"><B>setImplData(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setImplicitBehavior(org.apache.openjpa.kernel.OpCallbacks, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>setImplicitBehavior(OpCallbacks, RuntimeExceptionTranslator)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Set the broker's behavior for implicit actions such as flushing,
 automatic detachment, and exceptions thrown by managed instances outside
 a broker operation.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setImplicitBehavior(org.apache.openjpa.kernel.OpCallbacks, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>setImplicitBehavior(OpCallbacks, RuntimeExceptionTranslator)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setImplicitBehavior(org.apache.openjpa.kernel.OpCallbacks, org.apache.openjpa.util.RuntimeExceptionTranslator)"><B>setImplicitBehavior(OpCallbacks, RuntimeExceptionTranslator)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#setImplicitContainsTypes(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, int)"><B>setImplicitContainsTypes(Value, Value, int)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Set the implicit types of the given values based on the fact that
 the first is supposed to contain the second.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#setImplicitType(java.lang.Class)"><B>setImplicitType(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#setImplicitType(java.lang.Class)"><B>setImplicitType(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#setImplicitType(java.lang.Class)"><B>setImplicitType(Class)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#setImplicitType(org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>setImplicitType(Value, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Set the implicit type of the given value to the given class.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#setImplicitType(java.lang.Class)"><B>setImplicitType(Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Set the implicit type of the value, based on how it is used in the
 filter.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#setImplicitTypes(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>setImplicitTypes(Value, Value, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Set the implicit types of the given values based on the fact that
 they're used together, and based on the operator type.
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html#setImplicitTypes(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.Class)"><B>setImplicitTypes(Value, Value, Class)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setIncrement(int)"><B>setIncrement(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setIncrement(int)"><B>setIncrement(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setAllocate(int)"><CODE>TableJDBCSeq.setAllocate(int)</CODE></A>. Retained for backwards
 compatibility of auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#setIncrement(int)"><B>setIncrement(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's increment.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#setIncrement(int)"><B>setIncrement(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setIncrement(int)"><B>setIncrement(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Sequence increment, or -1 for default.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setInDefaultFetchGroup(boolean)"><B>setInDefaultFetchGroup(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is in the default fetch group.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html#setIndex(int)"><B>setIndex(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Param</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Index on the Discriminator columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw index.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Index on the version columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setIndex(int)"><B>setIndex(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>The index of this row in ordered row list.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Parameter.html#setIndex(int)"><B>setIndex(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Parameter.html" title="interface in org.apache.openjpa.kernel.exps">Parameter</A>
<DD>Set the index of this parameter.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setIndex(int)"><B>setIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The absolute index of this persistent/transactional field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setIndexDiscriminator(boolean)"><B>setIndexDiscriminator(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to index discriminator columns by default.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setIndexes(boolean)"><B>setIndexes(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether to generate index information.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setIndexes(boolean)"><B>setIndexes(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether to generate index information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setIndexes(boolean)"><B>setIndexes(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether indexes on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#setIndexes(boolean)"><B>setIndexes(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#setIndexes(boolean)"><B>setIndexes(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Set whether indexes should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setIndexes(boolean)"><B>setIndexes(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether indexes on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setIndexLogicalForeignKeys(boolean)"><B>setIndexLogicalForeignKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to index logical foreign keys by default.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#setIndexOf(int)"><B>setIndexOf(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setIndexVersion(boolean)"><B>setIndexVersion(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to index version columns by default.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setInFetchGroup(java.lang.String, boolean)"><B>setInFetchGroup(String, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Set whether this field is in the given fetch group.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setInitializer(java.lang.Object)"><B>setInitializer(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The initializer used by the field, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setInitialValue(int)"><B>setInitialValue(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setInitialValue(int)"><B>setInitialValue(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Set the initial number in the table for the GeneratedValue.TABLE
 strategy to use as initial number.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html#setInitialValue(int)"><B>setInitialValue(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NumberVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NumberVersionStrategy</A>
<DD>Set the initial value for version column.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#setInitialValue(int)"><B>setInitialValue(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's initial value.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setInitialValue(int)"><B>setInitialValue(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Initial sequence value, or -1 for default.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setInnerIdentityClasses(boolean)"><B>setInnerIdentityClasses(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Whether or not to generate application identity classes as inner classes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setInnerIdentityClasses(boolean)"><B>setInnerIdentityClasses(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether or not to generate inner classes when creating application
 identity classes.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#setInsertable(int, boolean)"><B>setInsertable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether the column at the given index is insertable in this context.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#setInsertTimestamp(boolean)"><B>setInsertTimestamp(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>If set to <code>true</code>, this properties object will add a
 timestamp to the beginning of the file, just after the header
 (if any) is printed.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setInstantiatingGetter(java.lang.String)"><B>setInstantiatingGetter(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The name of the getter method for the instantiated value of this
 property(as opposed to the string value).
<DT><A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html#setInstrumentation(java.lang.instrument.Instrumentation)"><B>setInstrumentation(Instrumentation)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance">InstrumentationFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setInt(int, int)"><B>setInt(int, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the int at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setInt(java.sql.PreparedStatement, int, int, org.apache.openjpa.jdbc.schema.Column)"><B>setInt(PreparedStatement, int, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setInt(org.apache.openjpa.jdbc.schema.Column, int)"><B>setInt(Column, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setInt(org.apache.openjpa.jdbc.schema.Column, int)"><B>setInt(Column, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setInt(int, int)"><B>setInt(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setInt(java.lang.String, int)"><B>setInt(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setInt(int, int)"><B>setInt(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html#setIntegrityViolation(int)"><B>setIntegrityViolation(int)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ReferentialIntegrityException.html" title="class in org.apache.openjpa.util">ReferentialIntegrityException</A>
<DD>The type of integrity violation that occurred.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setIntercepting(boolean)"><B>setIntercepting(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type's fields are actively intercepted, either by
 redefinition or enhancement.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setInterfaceImpl(java.lang.Class)"><B>setInterfaceImpl(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Set the managed interface implementor class.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setInterfacePropertyAlias(java.lang.Class, java.lang.String, java.lang.String)"><B>setInterfacePropertyAlias(Class, String, String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Alias properties from the given interface during  queries to
 the local field.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Use intermediate field data to store intermediate information that
 might be available before the field is fully loaded.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setIntermediate(int, java.lang.Object)"><B>setIntermediate(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setInternalObject(java.lang.Object)"><B>setInternalObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Set this value from an object.
<DT><A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/BooleanValue.html" title="class in org.apache.openjpa.lib.conf">BooleanValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/DoubleValue.html" title="class in org.apache.openjpa.lib.conf">DoubleValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/FileValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/FileValue.html" title="class in org.apache.openjpa.lib.conf">FileValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/IntValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/IntValue.html" title="class in org.apache.openjpa.lib.conf">IntValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ObjectValue.html" title="class in org.apache.openjpa.lib.conf">ObjectValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setInternalString(java.lang.String)"><B>setInternalString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Set this value from the given string.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#setInterval(int)"><B>setInterval(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>The interval time in minutes between cache checks.
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#setInto(org.apache.openjpa.lib.util.Options)"><B>setInto(Options)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>Set a map of properties to pass to the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/InitialContext.html" title="class or interface in javax.naming"><CODE>InitialContext</CODE></A>
 constructor for JNDI lookups.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html#setInto(org.apache.openjpa.lib.conf.Configuration)"><B>setInto(Configuration)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationProvider.html" title="interface in org.apache.openjpa.lib.conf">ConfigurationProvider</A>
<DD>Set loaded information into the given configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/GenericConfigurable.html#setInto(org.apache.openjpa.lib.util.Options)"><B>setInto(Options)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/GenericConfigurable.html" title="interface in org.apache.openjpa.lib.conf">GenericConfigurable</A>
<DD>Perform any generic configuration based on the data in
 <code>opts</code>.
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#setInto(org.apache.openjpa.lib.conf.Configuration)"><B>setInto(Configuration)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html#setInto(org.apache.openjpa.lib.conf.Configuration, org.apache.openjpa.lib.log.Log)"><B>setInto(Configuration, Log)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/MapConfigurationProvider.html" title="class in org.apache.openjpa.lib.conf">MapConfigurationProvider</A>
<DD>Set properties into configuration.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setInto(org.apache.openjpa.lib.util.Options)"><B>setInto(Options)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Options.html#setInto(java.lang.Object)"><B>setInto(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>
<DD>This method uses reflection to set all the properties in the given
 object that are named by the keys in this map.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setInto(org.apache.openjpa.kernel.Query)"><B>setInto(Query)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Set query template information into the given concrete
 query instance.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#setInto(org.apache.openjpa.lib.util.Options)"><B>setInto(Options)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html#setInto(org.apache.openjpa.lib.conf.Configuration)"><B>setInto(Configuration)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationProviderImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setInverse(java.lang.String)"><B>setInverse(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Logical inverse field.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setInverseManager(java.lang.String)"><B>setInverseManager(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for managing inverse relations.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setInverseManager(java.lang.String)"><B>setInverseManager(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setInverseRelations(boolean)"><B>setInverseRelations(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to generate inverse 1-many/1-1 relations for all many-1/1-1
 relations.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setInverseRelations(boolean)"><B>setInverseRelations(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to generate inverse 1-many/1-1 relations for all many-1/1-1
 relations.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#setIsolate(boolean)"><B>setIsolate(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Whether we want the ClassLoader to be isolated from
 all other ClassLoaders
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setIsolation(int)"><B>setIsolation(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setIsolation(int)"><B>setIsolation(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The isolation level for queries issued to the database.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setIsolation(int)"><B>setIsolation(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setIsolation(org.apache.openjpa.persistence.jdbc.IsolationLevel)"><B>setIsolation(IsolationLevel)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>The isolation level for queries issued to the database.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setIsolation(org.apache.openjpa.persistence.jdbc.IsolationLevel)"><B>setIsolation(IsolationLevel)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setJavaType(int)"><B>setJavaType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setJavaType(int)"><B>setJavaType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The Java type the data in this column is treated as, from
 <A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta"><CODE>JavaTypes</CODE></A> or <A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>JavaSQLTypes</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setJDBCListeners(java.lang.String)"><B>setJDBCListeners(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A comma-separated list of the <A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>JDBCListener</CODE></A> plugins for
 listening to <A HREF="./org/apache/openjpa/lib/jdbc/JDBCEvent.html" title="class in org.apache.openjpa.lib.jdbc"><CODE>JDBCEvent</CODE></A>s.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setJDBCListeners(org.apache.openjpa.lib.jdbc.JDBCListener[])"><B>setJDBCListeners(JDBCListener[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/lib/jdbc/JDBCListener.html" title="interface in org.apache.openjpa.lib.jdbc"><CODE>JDBCListener</CODE></A>s to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setJDBCListeners(java.lang.String)"><B>setJDBCListeners(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setJDBCListeners(org.apache.openjpa.lib.jdbc.JDBCListener[])"><B>setJDBCListeners(JDBCListener[])</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#setJDBCLog(org.apache.openjpa.lib.log.Log)"><B>setJDBCLog(Log)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>The log to write JDBC messages to.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setJoinable(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.jdbc.meta.Joinable)"><B>setJoinable(Column, Joinable)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Add the given column-to-joinable mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setJoinColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setJoinColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>I/O information on the join columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setJoinDirection(int)"><B>setJoinDirection(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setJoinDirection(int)"><B>setJoinDirection(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Direction of the join that the columns of this mapping info form.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setJoinDirection(int)"><B>setJoinDirection(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The join direction.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setJoinDirection(int)"><B>setJoinDirection(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setJoinedSubclass(boolean)"><B>setJoinedSubclass(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Whether there is a join to the superclass table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setJoinForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>setJoinForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Foreign key linking the primary key columns to the superclass table,
 or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setJoinForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey)"><B>setJoinForeignKey(ForeignKey)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Foreign key linking the field table to the class' primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setJoinForeignKeyDeleteAction(int)"><B>setJoinForeignKeyDeleteAction(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default foreign key action for join keys.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setJoinForeignKeyDeleteAction(java.lang.String)"><B>setJoinForeignKeyDeleteAction(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default foreign key action name for join keys.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setJoinIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setJoinIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Index on join foreign key columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setJoinOuter(boolean)"><B>setJoinOuter(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Whether to use an outer join from the class' primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#setJoinOuter(boolean)"><B>setJoinOuter(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Whether the field's table is joined to the class table through an
 outer join.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setJoins(org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Column[])"><B>setJoins(Column[], Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Set the foreign key's joins.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The join syntax to use.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setJoinSyntax(java.lang.String)"><B>setJoinSyntax(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the name of the join syntax to use: sql92, traditional, database
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>The join syntax for this select, as one of the syntax constants from
 <A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html" title="interface in org.apache.openjpa.jdbc.sql"><CODE>JoinSyntaxes</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setJoinSyntax(int)"><B>setJoinSyntax(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setJoinSyntax(org.apache.openjpa.persistence.jdbc.JoinSyntax)"><B>setJoinSyntax(JoinSyntax)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>SQL join syntax.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setJoinSyntax(org.apache.openjpa.persistence.jdbc.JoinSyntax)"><B>setJoinSyntax(JoinSyntax)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setJoinUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>setJoinUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Unique constraint on join foreign key columns.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setJtaDataSource(javax.sql.DataSource)"><B>setJtaDataSource(DataSource)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setJtaDataSourceName(java.lang.String)"><B>setJtaDataSourceName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setKeySequence(int)"><B>setKeySequence(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The sequence of this join in the foreign key.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setLanguage(java.lang.String)"><B>setLanguage(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Set the language for this query.
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#setLevel(short)"><B>setLevel(short)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>The level to log at.
<DT><A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html#setLevel(java.lang.String)"><B>setLevel(String)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/LogOrphanedKeyAction.html" title="class in org.apache.openjpa.event">LogOrphanedKeyAction</A>
<DD>The level to log at.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html#setLevel(short)"><B>setLevel(short)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.LogImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl.LogImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setLexicalHandler(org.xml.sax.ext.LexicalHandler)"><B>setLexicalHandler(LexicalHandler)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>The lexical handler that should be registered with the SAX parser used
 by this class.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setLifecycleListenerCallbackMode(int)"><B>setLifecycleListenerCallbackMode(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>The callback mode for handling exceptions from lifecycle event listeners.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setLifecycleListenerCallbackMode(int)"><B>setLifecycleListenerCallbackMode(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setLifecycleListenerCallbackMode(int)"><B>setLifecycleListenerCallbackMode(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setLifecycleListenerCallbackMode(org.apache.openjpa.persistence.CallbackMode)"><B>setLifecycleListenerCallbackMode(CallbackMode)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setLifecycleListenerCallbackMode(java.util.EnumSet)"><B>setLifecycleListenerCallbackMode(EnumSet&lt;CallbackMode&gt;)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#setLifecycleListenerCallbackMode(org.apache.openjpa.persistence.CallbackMode)"><B>setLifecycleListenerCallbackMode(CallbackMode)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>The <A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><CODE>CallbackMode</CODE></A> flag for handling lifecycle listener
 exceptions.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#setLifecycleListenerCallbackMode(java.util.EnumSet)"><B>setLifecycleListenerCallbackMode(EnumSet&lt;CallbackMode&gt;)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>The <A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><CODE>CallbackMode</CODE></A> flags for handling lifecycle listener
 exceptions.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#setLineLength(int)"><B>setLineLength(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setLinesBetweenSections(int)"><B>setLinesBetweenSections(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>The number of empty lines between sections.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setListener(org.apache.openjpa.lib.conf.ValueListener)"><B>setListener(ValueListener)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Listener for value changes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#setListingIndex(int)"><B>setListingIndex(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>Relative order of result mapping in metadata.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setListingIndex(int)"><B>setListingIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The index in which this field was listed in the metadata.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setListingIndex(int)"><B>setListingIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The index in which this field was listed in the metadata.
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#setListingIndex(int)"><B>setListingIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>The index in which this field was listed in the metadata.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#setLoaded(int, boolean)"><B>setLoaded(int, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#setLoaded(int, boolean)"><B>setLoaded(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ArrayStateImage.html#setLoaded(java.lang.Object[], java.util.BitSet)"><B>setLoaded(Object[], BitSet)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ArrayStateImage.html" title="class in org.apache.openjpa.util">ArrayStateImage</A>
<DD>Set the loaded mask into a state image.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setLoadFetchGroup(java.lang.String)"><B>setLoadFetchGroup(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The fetch group that is to be loaded when this receiver is loaded, or
 null if none set.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setLoadKey(java.lang.String)"><B>setLoadKey(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The key under which this value was loaded, or null.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.ObjectIdLoader.html#setLoadObjectIds()"><B>setLoadObjectIds()</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.ObjectIdLoader.html" title="interface in org.apache.openjpa.enhance">ApplicationIdTool.ObjectIdLoader</A>
<DD>Turn on the loading of all identity classes, even if they don't 
 exist.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setLob(boolean)"><B>setLob(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#setLob(boolean)"><B>setLob(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Set to true for selects that include LOB columns.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setLob(boolean)"><B>setLob(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setLocale(java.sql.PreparedStatement, int, java.util.Locale, org.apache.openjpa.jdbc.schema.Column)"><B>setLocale(PreparedStatement, int, Locale, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setLocale(org.apache.openjpa.jdbc.schema.Column, java.util.Locale)"><B>setLocale(Column, Locale)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setLocale(org.apache.openjpa.jdbc.schema.Column, java.util.Locale)"><B>setLocale(Column, Locale)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setLocation(org.apache.openjpa.lib.xml.Location)"><B>setLocation(Location)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>The XML document location.
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#setLocator(org.xml.sax.Locator)"><B>setLocator(Locator)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setLock(java.lang.Object)"><B>setLock(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setLock(java.lang.Object)"><B>setLock(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setLock(java.lang.Object)"><B>setLock(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setLock(java.lang.Object)"><B>setLock(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>The lock object set for this instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setLock(java.lang.Object)"><B>setLock(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#setLocking(boolean)"><B>setLocking(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#setLockLevel(org.apache.openjpa.kernel.OpenJPAStateManager, int)"><B>setLockLevel(OpenJPAStateManager, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Sets the given instance's lock level to the given number.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setLockManager(java.lang.String)"><B>setLockManager(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for datastore lock management.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setLockManager(java.lang.String)"><B>setLockManager(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The time to wait for an object lock in milliseconds, or -1 for no
 timeout.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setLockTimeout(java.lang.Integer)"><B>setLockTimeout(Integer)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setLockTimeout(int)"><CODE>OpenJPAConfiguration.setLockTimeout(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setLockTimeout(java.lang.Integer)"><B>setLockTimeout(Integer)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The number of milliseconds to wait for an object lock, or -1 for no
 limit.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The number of milliseconds to wait for an object lock, or -1 for no
 limit.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setLockTimeout(int)"><B>setLockTimeout(int)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#setLog(java.lang.String)"><B>setLog(String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Log plugin setting.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setLog(java.lang.String)"><B>setLog(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html#setLog(org.apache.openjpa.lib.log.Log)"><B>setLog(Log)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassAnnotationMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">ClassAnnotationMetaDataFilter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setLog(org.apache.openjpa.lib.log.Log)"><B>setLog(Log)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#setLog(org.apache.openjpa.lib.log.Log)"><B>setLog(Log)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#setLog(org.apache.openjpa.lib.log.Log)"><B>setLog(Log)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>The log to write to.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#setLogFactory(org.apache.openjpa.lib.log.LogFactory)"><B>setLogFactory(LogFactory)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>The log factory.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setLogFactory(org.apache.openjpa.lib.log.LogFactory)"><B>setLogFactory(LogFactory)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html#setLogical(boolean)"><B>setLogical(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/PrimaryKey.html" title="class in org.apache.openjpa.jdbc.schema">PrimaryKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setLoginTimeout(int)"><B>setLoginTimeout(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#setLoginTimeout(int)"><B>setLoginTimeout(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#setLogWriter(java.io.PrintWriter)"><B>setLogWriter(PrintWriter)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#setLogWriter(java.io.PrintWriter)"><B>setLogWriter(PrintWriter)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setLong(int, long)"><B>setLong(int, long)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the long at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html#setLong(java.sql.PreparedStatement, int, long, org.apache.openjpa.jdbc.schema.Column)"><B>setLong(PreparedStatement, int, long, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AccessDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setLong(java.sql.PreparedStatement, int, long, org.apache.openjpa.jdbc.schema.Column)"><B>setLong(PreparedStatement, int, long, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setLong(org.apache.openjpa.jdbc.schema.Column, long)"><B>setLong(Column, long)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setLong(org.apache.openjpa.jdbc.schema.Column, long)"><B>setLong(Column, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setLong(int, long)"><B>setLong(int, long)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setLong(java.lang.String, long)"><B>setLong(String, long)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setLong(int, long)"><B>setLong(int, long)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#setLRS(boolean)"><B>setLRS(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setLRS(boolean)"><B>setLRS(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#setLRS(boolean)"><B>setLRS(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether the result of this select should be treated as a large
 result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setLRS(boolean)"><B>setLRS(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setLRS(boolean)"><B>setLRS(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field is backed by a large result set.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setLRSSize(java.lang.String)"><B>setLRSSize(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>How to obtain the size of large result sets.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setLRSSize(int)"><B>setLRSSize(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Set the fetch configuration large result set size constant.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setLRSSize(java.lang.String)"><B>setLRSSize(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setLRSSize(int)"><B>setLRSSize(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setLRSSize(int)"><B>setLRSSize(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setLRSSize(int)"><B>setLRSSize(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The large result set size mode to use.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setLRSSize(int)"><B>setLRSSize(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setLRSSizeAlgorithm(org.apache.openjpa.persistence.jdbc.LRSSizeAlgorithm)"><B>setLRSSizeAlgorithm(LRSSizeAlgorithm)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>How to determine the size of a large result set.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setLRSSizeAlgorithm(org.apache.openjpa.persistence.jdbc.LRSSizeAlgorithm)"><B>setLRSSizeAlgorithm(LRSSizeAlgorithm)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#setManagedInstanceType(java.lang.Class)"><B>setManagedInstanceType(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Set the exact type of the described instance once it is known.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#setManagedInstanceType(java.lang.Class, boolean)"><B>setManagedInstanceType(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>Set the exact type of the described instance once it is known.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setManagedInterface(boolean)"><B>setManagedInterface(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type is a managed interface
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setManagedRuntime(java.lang.String)"><B>setManagedRuntime(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> to use for managed
 environments.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setManagedRuntime(org.apache.openjpa.ee.ManagedRuntime)"><B>setManagedRuntime(ManagedRuntime)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for integrating with a managed runtime.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setManagedRuntime(java.lang.String)"><B>setManagedRuntime(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setManagedRuntime(org.apache.openjpa.ee.ManagedRuntime)"><B>setManagedRuntime(ManagedRuntime)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#setManageLRS(boolean)"><B>setManageLRS(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Set whether to false LRS relations.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setManagement(int)"><B>setManagement(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return the management level for the field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setMappedBy(java.lang.String)"><B>setMappedBy(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The field that this field shares a mapping with.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html#setMappedMetaDataFactoryDefault(java.lang.String, java.lang.String)"><B>setMappedMetaDataFactoryDefault(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingFactoryValue</A>
<DD>If the <code>Mapping</code> property is set, we check these defaults
 before checking metadata factory defaults.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMapping(java.lang.String)"><B>setMapping(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The name mapping to use for this data store.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMapping(java.lang.String)"><B>setMapping(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setMappingDefaults(java.lang.String)"><B>setMappingDefaults(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>MappingDefaults</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setMappingDefaults(org.apache.openjpa.jdbc.meta.MappingDefaults)"><B>setMappingDefaults(MappingDefaults)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>MappingDefaults</CODE></A> to use with a repository.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setMappingDefaults(java.lang.String)"><B>setMappingDefaults(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setMappingDefaults(org.apache.openjpa.jdbc.meta.MappingDefaults)"><B>setMappingDefaults(MappingDefaults)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#setMappingDefaults(org.apache.openjpa.jdbc.meta.MappingDefaults)"><B>setMappingDefaults(MappingDefaults)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Mapping default.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setMappingFactory(java.lang.String)"><B>setMappingFactory(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> to use for
 loading and storing object-relational mapping data.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setMappingFactory(java.lang.String)"><B>setMappingFactory(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#setMappingFile(java.io.File)"><B>setMappingFile(File)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Allow sequence to have a mapping file separate from its metadata
 source file.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#setMappingOverride(boolean)"><B>setMappingOverride(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Whether to allow later parses of mapping information to override
 earlier information for the same class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setMappingOverride(boolean)"><B>setMappingOverride(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Whether to allow later parses of mapping information to override
 earlier information for the same class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setMappingWriter(java.io.Writer)"><B>setMappingWriter(Writer)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The stream to export the planned mappings to as an XML document.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#setMaxActive(int)"><B>setMaxActive(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The maximum number of sockets that this provider can
 simetaneously open to each peer in the cluster.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The maximum relation depth to traverse when eager fetching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMaxFetchDepth(java.lang.Integer)"><B>setMaxFetchDepth(Integer)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMaxFetchDepth(int)"><CODE>OpenJPAConfiguration.setMaxFetchDepth(int)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMaxFetchDepth(java.lang.Integer)"><B>setMaxFetchDepth(Integer)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Set the maximum depth of the fetched instance graph.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The maximum fetch depth when loading an object.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setMaxFetchDepth(int)"><B>setMaxFetchDepth(int)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setMaxFieldSize(int)"><B>setMaxFieldSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setMaxFieldSize(int)"><B>setMaxFieldSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setMaxFieldSize(int)"><B>setMaxFieldSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#setMaxIdle(int)"><B>setMaxIdle(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The number of idle sockets that this provider can keep open
 to each peer in the cluster.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setMaxResults(int)"><B>setMaxResults(int)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setMaxResults(int)"><B>setMaxResults(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setMaxRows(int)"><B>setMaxRows(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setMaxRows(int)"><B>setMaxRows(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setMaxRows(int)"><B>setMaxRows(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#setMaxSize(int)"><B>setMaxSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#setMaxSize(int)"><B>setMaxSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/LRUMap.html#setMaxSize(int)"><B>setMaxSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/LRUMap.html" title="class in org.apache.openjpa.lib.util">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#setMaxSize(int)"><B>setMaxSize(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/SizedMap.html#setMaxSize(int)"><B>setMaxSize(int)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/SizedMap.html" title="interface in org.apache.openjpa.lib.util">SizedMap</A>
<DD>The maximum number of entries, or Integer.MAX_VALUE for no limit.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setMeta(boolean)"><B>setMeta(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether this action applies to metadata as well as mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setMetadata(org.apache.openjpa.jdbc.ant.ReverseMappingToolTask.Level)"><B>setMetadata(ReverseMappingToolTask.Level)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set the level of the generated metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>setMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Args.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Args</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>setMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>setMetaData(ClassMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A>
<DD>Associate a persistent type with this value.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMetaDataFactory(java.lang.String)"><B>setMetaDataFactory(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta"><CODE>MetaDataFactory</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMetaDataFactory(java.lang.String)"><B>setMetaDataFactory(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setMetaDataFactory(org.apache.openjpa.meta.MetaDataFactory)"><B>setMetaDataFactory(MetaDataFactory)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The I/O used to load metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html#setMetaDataFactoryDefault(java.lang.String, java.lang.String)"><B>setMetaDataFactoryDefault(String, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/MappingFactoryValue.html" title="class in org.apache.openjpa.jdbc.conf">MappingFactoryValue</A>
<DD>Default setting for a given <code>MetaDataFactory</code> alias setting.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setMetaDataFile(java.io.File)"><B>setMetaDataFile(File)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>If adding metadata, the metadata file to add to.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMetaDataRepository(java.lang.String)"><B>setMetaDataRepository(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>A plugin string describing the <A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta"><CODE>MetaDataRepository</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMetaDataRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setMetaDataRepository(MetaDataRepository)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The metadata repository of managed class information.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMetaDataRepository(java.lang.String)"><B>setMetaDataRepository(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMetaDataRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setMetaDataRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html#setMetaDataStructure(java.lang.String, java.lang.String, java.lang.String[], java.lang.String)"><B>setMetaDataStructure(String, String, String[], String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ClassArgParser.html" title="class in org.apache.openjpa.lib.meta">ClassArgParser</A>
<DD>Set the the relevant metadata file structure so that metadata files
 containing class names can be parsed.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Parser.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Parser.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Parser</A>
<DD>The parse mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.Serializer.html" title="interface in org.apache.openjpa.meta">AbstractCFMetaDataFactory.Serializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#setMode(int, boolean)"><B>setMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>The parse mode.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>The parse mode.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#setMode(int, boolean)"><B>setMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setMode(int, boolean)"><B>setMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>The parse mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>The parse mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#setMode(int, boolean)"><B>setMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>The serialization mode according to the expected document type.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#setMultiLine(boolean)"><B>setMultiLine(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>If true, then try to parse multi-line SQL statements.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether brokers or their managed objects will be used by multiple
 concurrent threads.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMultithreaded(java.lang.Boolean)"><B>setMultithreaded(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setMultithreaded(boolean)"><CODE>OpenJPAConfiguration.setMultithreaded(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setMultithreaded(java.lang.Boolean)"><B>setMultithreaded(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether the broker or its managed instances are used in a multithreaded
 environment.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setMultithreaded(boolean)"><B>setMultithreaded(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether the entity manager or its managed instances are used in a
 multithreaded environment.
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Set the name of the identity class; with this option you must supply
 exactly one class to run on.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Sets a string name to be used to identify this cache to end-user needs.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set the column's name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Set the name of the constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>Set the name of the schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>Set the name of the sequence.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Set the name of the table.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Set field name.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#setNestedThrowables(java.lang.Throwable[])"><B>setNestedThrowables(Throwable[])</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>The nested throwables.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#setNewline(java.lang.String)"><B>setNewline(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#setNextSequence(int)"><B>setNextSequence(int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#setNextSequence(int)"><B>setNextSequence(int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#setNextSequence(int)"><B>setNextSequence(int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#setNextSequence(int)"><B>setNextSequence(int)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>The maximum element sequence value for this proxy at load time.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setNextVersion(java.lang.Object)"><B>setNextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setNextVersion(java.lang.Object)"><B>setNextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setNextVersion(java.lang.Object)"><B>setNextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setNextVersion(java.lang.Object)"><B>setNextVersion(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the next version indicator in the datastore pending a successful
 flush.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setNextVersion(java.lang.Object)"><B>setNextVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html#setNodeComparator(java.util.Comparator)"><B>setNodeComparator(Comparator)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/DepthFirstAnalysis.html" title="class in org.apache.openjpa.lib.graph">DepthFirstAnalysis</A>
<DD>Set the comparator that should be used for ordering groups of nodes
 with the same dependencies.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setNonJtaDataSource(javax.sql.DataSource)"><B>setNonJtaDataSource(DataSource)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setNonJtaDataSourceName(java.lang.String)"><B>setNonJtaDataSourceName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setNonOptimisticVersionCheck(boolean)"><B>setNonOptimisticVersionCheck(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether or not to perform a version check on instances being updated
 in a datastore transaction.
<DT><A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html#setNonPCSuperclassCallbacks(int, org.apache.openjpa.event.LifecycleCallbacks[], int)"><B>setNonPCSuperclassCallbacks(int, LifecycleCallbacks[], int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A>
<DD>Set the callbacks for the given event type for non-persistent
 superclass.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether persistent state is accessible outside a transaction by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setNontransactionalRead(java.lang.Boolean)"><B>setNontransactionalRead(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setNontransactionalRead(boolean)"><CODE>OpenJPAConfiguration.setNontransactionalRead(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setNontransactionalRead(java.lang.Boolean)"><B>setNontransactionalRead(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to allow nontransactional access to persistent state.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setNontransactionalRead(boolean)"><B>setNontransactionalRead(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to allow nontransactional access to persistent state.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether persistent state can be modified outside a transaction by
 default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setNontransactionalWrite(java.lang.Boolean)"><B>setNontransactionalWrite(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setNontransactionalWrite(boolean)"><CODE>OpenJPAConfiguration.setNontransactionalWrite(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setNontransactionalWrite(java.lang.Boolean)"><B>setNontransactionalWrite(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to allow nontransactional changes to persistent state.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setNontransactionalWrite(boolean)"><B>setNontransactionalWrite(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to allow nontransactional changes to persistent state.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setNotNull(boolean)"><B>setNotNull(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set whether this is a NOT NULL column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#setNull(java.sql.PreparedStatement, int, int, org.apache.openjpa.jdbc.schema.Column)"><B>setNull(PreparedStatement, int, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setNull(java.sql.PreparedStatement, int, int, org.apache.openjpa.jdbc.schema.Column)"><B>setNull(PreparedStatement, int, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameters to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html#setNull(java.sql.PreparedStatement, int, int, org.apache.openjpa.jdbc.schema.Column)"><B>setNull(PreparedStatement, int, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FoxProDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FoxProDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#setNull(java.sql.PreparedStatement, int, int, org.apache.openjpa.jdbc.schema.Column)"><B>setNull(PreparedStatement, int, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#setNull(java.sql.PreparedStatement, int, int, org.apache.openjpa.jdbc.schema.Column)"><B>setNull(PreparedStatement, int, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setNull(org.apache.openjpa.jdbc.schema.Column)"><B>setNull(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setNull(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>setNull(Column, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setNull(org.apache.openjpa.jdbc.schema.Column)"><B>setNull(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setNull(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>setNull(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setNull(int, int)"><B>setNull(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setNull(int, int, java.lang.String)"><B>setNull(int, int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setNull(java.lang.String, int)"><B>setNull(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setNull(java.lang.String, int, java.lang.String)"><B>setNull(String, int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setNull(int, int)"><B>setNull(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setNull(int, int, java.lang.String)"><B>setNull(int, int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setNullableAsObject(boolean)"><B>setNullableAsObject(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to represent nullable columns as primitive wrappers.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setNullableAsObject(boolean)"><B>setNullableAsObject(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set whether even nullable columns will be mapped to wrappers
 rather than primitives.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setNullIndicatorColumnName(java.lang.String)"><B>setNullIndicatorColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for null indicator columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#setNullInsertable(int, boolean)"><B>setNullInsertable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether this context can insert the given column as null/default in
 this context.
<DT><A HREF="./org/apache/openjpa/lib/xml/Location.html#setNullOnNoLocator(boolean)"><B>setNullOnNoLocator(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/Location.html" title="class in org.apache.openjpa.lib.xml">Location</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#setNullUpdatable(int, boolean)"><B>setNullUpdatable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether this context can set the given column to null/default in
 this context.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setNullValue(int)"><B>setNullValue(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>How the data store should treat null values for this field:
 
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_UNSET"><CODE>FieldMetaData.NULL_UNSET</CODE></A>: no value supplied
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_NONE"><CODE>FieldMetaData.NULL_NONE</CODE></A>: leave null values as null in the data store
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_EXCEPTION"><CODE>FieldMetaData.NULL_EXCEPTION</CODE></A>: throw an exception if this field is null
 at commit
 <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_DEFAULT"><CODE>FieldMetaData.NULL_DEFAULT</CODE></A>: use the database default if this field is
 null at commit
  Defaults to <A HREF="./org/apache/openjpa/meta/FieldMetaData.html#NULL_UNSET"><CODE>FieldMetaData.NULL_UNSET</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setNumber(java.sql.PreparedStatement, int, java.lang.Number, org.apache.openjpa.jdbc.schema.Column)"><B>setNumber(PreparedStatement, int, Number, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setNumber(org.apache.openjpa.jdbc.schema.Column, java.lang.Number)"><B>setNumber(Column, Number)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setNumber(org.apache.openjpa.jdbc.schema.Column, java.lang.Number)"><B>setNumber(Column, Number)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#setNumBroadcastThreads(int)"><B>setNumBroadcastThreads(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The number of worker threads that are used for
 transmitting packets to peers in the cluster.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setObject(int, java.lang.Object)"><B>setObject(int, Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the object at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html#setObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setObject(Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy.CustomUpdate</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setObject(java.sql.PreparedStatement, int, java.lang.Object, int, org.apache.openjpa.jdbc.schema.Column)"><B>setObject(PreparedStatement, int, Object, int, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameters to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, boolean)"><B>setObject(Column, Object, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setObject(Column, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>setObject(Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int, boolean)"><B>setObject(Column, Object, int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>All set column methods delegate to this one.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setObject(java.lang.Object)"><B>setObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Set this value as an object.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setObject(int, java.lang.Object, int, int)"><B>setObject(int, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setObject(int, java.lang.Object, int)"><B>setObject(int, Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setObject(int, java.lang.Object)"><B>setObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setObject(java.lang.String, java.lang.Object, int, int)"><B>setObject(String, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setObject(java.lang.String, java.lang.Object, int)"><B>setObject(String, Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setObject(java.lang.String, java.lang.Object)"><B>setObject(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setObject(int, java.lang.Object, int, int)"><B>setObject(int, Object, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setObject(int, java.lang.Object, int)"><B>setObject(int, Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setObject(int, java.lang.Object)"><B>setObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setObjectId(java.lang.Object)"><B>setObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setObjectId(java.lang.Object)"><B>setObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setObjectId(java.lang.Object)"><B>setObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setObjectId(java.lang.Object)"><B>setObjectId(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the object id for the managed instance.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setObjectId(java.lang.Object)"><B>setObjectId(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setObjectIdType(java.lang.Class, boolean)"><B>setObjectIdType(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The metadata-specified class to use for the object ID.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setOpenJPATables(boolean)"><B>setOpenJPATables(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether to drop OpenJPA tables.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setOpenJPATables(boolean)"><B>setOpenJPATables(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether to drop or reflect on OpenJPA tables.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#setOpenJPATables(boolean)"><B>setOpenJPATables(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Whether to generate info on special tables used by OpenJPA components
 for bookkeeping.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setOpenJPATables(boolean)"><B>setOpenJPATables(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether to act on special tables used by OpenJPA components
 for bookkeeping.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to use optimistic transactions by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setOptimistic(java.lang.Boolean)"><B>setOptimistic(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setOptimistic(boolean)"><CODE>OpenJPAConfiguration.setOptimistic(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setOptimistic(java.lang.Boolean)"><B>setOptimistic(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to use optimistic transactional semantics.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setOptimistic(boolean)"><B>setOptimistic(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to use optimistic transactional semantics.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setOrderColumn(org.apache.openjpa.jdbc.schema.Column)"><B>setOrderColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Field order column, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#setOrderColumn(org.apache.openjpa.jdbc.schema.Column)"><B>setOrderColumn(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Raw synthetic ordering column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setOrderColumnIO(org.apache.openjpa.jdbc.schema.ColumnIO)"><B>setOrderColumnIO(ColumnIO)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>I/O information for order column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setOrderColumnName(java.lang.String)"><B>setOrderColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for order columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setOrderDeclaration(java.lang.String)"><B>setOrderDeclaration(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>String declaring the orderings for this field to be applied on load,
 or null.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setOrderDirtyObjects(boolean)"><B>setOrderDirtyObjects(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setOrderDirtyObjects(boolean)"><B>setOrderDirtyObjects(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#setOrderDirtyObjects(boolean)"><B>setOrderDirtyObjects(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether to maintain the order in which objects are dirtied for
 <A HREF="./org/apache/openjpa/kernel/StoreContext.html#getDirtyObjects()"><CODE>StoreContext.getDirtyObjects()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setOrderDirtyObjects(boolean)"><B>setOrderDirtyObjects(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setOrderDirtyObjects(boolean)"><B>setOrderDirtyObjects(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether dirty objects will be returned in the order they were dirtied.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setOrderLists(boolean)"><B>setOrderLists(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to order lists and arrays using a dedicated ordering column
 by default.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setOrders(org.apache.openjpa.meta.Order[])"><B>setOrders(Order[])</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The orderings for this field to be applied on load.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setOrphanedKeyAction(java.lang.String)"><B>setOrphanedKeyAction(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The action to take when an orphaned key is detected.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setOrphanedKeyAction(org.apache.openjpa.event.OrphanedKeyAction)"><B>setOrphanedKeyAction(OrphanedKeyAction)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The action to take when an orphaned key is detected.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setOrphanedKeyAction(java.lang.String)"><B>setOrphanedKeyAction(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setOrphanedKeyAction(org.apache.openjpa.event.OrphanedKeyAction)"><B>setOrphanedKeyAction(OrphanedKeyAction)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#setOuter(boolean)"><B>setOuter(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setOuter(boolean)"><B>setOuter(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#setOwner(org.apache.openjpa.kernel.OpenJPAStateManager, int)"><B>setOwner(OpenJPAStateManager, int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#setOwner(org.apache.openjpa.kernel.OpenJPAStateManager, int)"><B>setOwner(OpenJPAStateManager, int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxy.html#setOwner(org.apache.openjpa.kernel.OpenJPAStateManager, int)"><B>setOwner(OpenJPAStateManager, int)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxy.html" title="interface in org.apache.openjpa.util">Proxy</A>
<DD>Reset the state of the proxy, and set the owning instance of the
 proxy and the name of the field it is assigned to.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setPackage(java.lang.String)"><B>setPackage(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set the package name for the generated classes.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html#setPackage(java.lang.String)"><B>setPackage(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataSerializer</A>
<DD>The default package for objects being serialized.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setPackageName(java.lang.String)"><B>setPackageName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set the default package for the generated classes; use null to
 indicate no package.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#setParameter(java.lang.String, java.lang.Object)"><B>setParameter(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Set the value for the given parameter.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameter(java.lang.String, java.lang.Object)"><B>setParameter(String, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameter(java.lang.String, java.util.Date, javax.persistence.TemporalType)"><B>setParameter(String, Date, TemporalType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameter(java.lang.String, java.util.Calendar, javax.persistence.TemporalType)"><B>setParameter(String, Calendar, TemporalType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameter(int, java.lang.Object)"><B>setParameter(int, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameter(int, java.util.Date, javax.persistence.TemporalType)"><B>setParameter(int, Date, TemporalType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameter(int, java.util.Calendar, javax.persistence.TemporalType)"><B>setParameter(int, Calendar, TemporalType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameter(int, java.util.Calendar, javax.persistence.TemporalType)"><B>setParameter(int, Calendar, TemporalType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameter(int, java.util.Date, javax.persistence.TemporalType)"><B>setParameter(int, Date, TemporalType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameter(int, java.lang.Object)"><B>setParameter(int, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameter(java.lang.String, java.util.Calendar, javax.persistence.TemporalType)"><B>setParameter(String, Calendar, TemporalType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameter(java.lang.String, java.util.Date, javax.persistence.TemporalType)"><B>setParameter(String, Date, TemporalType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameter(java.lang.String, java.lang.Object)"><B>setParameter(String, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#setParameters(java.sql.PreparedStatement)"><B>setParameters(PreparedStatement)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Populate the parameters of an existing PreparedStatement
 with values from this buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#setParameters(java.util.Map)"><B>setParameters(Map)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Set the values for all the parameters in the given map.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameters(java.util.Map)"><B>setParameters(Map)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Set parameters.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setParameters(java.lang.Object...)"><B>setParameters(Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Set parameters.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameters(java.lang.Object...)"><B>setParameters(Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setParameters(java.util.Map)"><B>setParameters(Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setParent(org.apache.openjpa.jdbc.sql.Select, java.lang.String)"><B>setParent(Select, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#setParent(org.apache.openjpa.jdbc.sql.Select, java.lang.String)"><B>setParent(Select, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Turn this select into a subselect of the given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setParent(org.apache.openjpa.jdbc.sql.Select, java.lang.String)"><B>setParent(Select, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setParseComments(boolean)"><B>setParseComments(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether to parse element comments.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setParseText(boolean)"><B>setParseText(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether to parse element text.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setPCSuperclass(java.lang.Class)"><B>setPCSuperclass(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The persistence capable superclass of the described type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setPCSuperclassMetaData(org.apache.openjpa.meta.ClassMetaData)"><B>setPCSuperclassMetaData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The metadata for this class' superclass.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setPersistenceProviderClassName(java.lang.String)"><B>setPersistenceProviderClassName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setPersistenceUnitName(java.lang.String)"><B>setPersistenceUnitName(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setPersistenceUnitRootUrl(java.net.URL)"><B>setPersistenceUnitRootUrl(URL)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setPersistenceXmlFileUrl(java.net.URL)"><B>setPersistenceXmlFileUrl(URL)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>The location of the persistence.xml resource.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setPolymorphic(int)"><B>setPolymorphic(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setPolymorphic(int)"><B>setPolymorphic(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>The degree to which this relation is polymorphic.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setPolymorphic(int)"><B>setPolymorphic(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setPopulateDataCache(boolean)"><B>setPopulateDataCache(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setPopulateDataCache(boolean)"><B>setPopulateDataCache(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#setPopulateDataCache(boolean)"><B>setPopulateDataCache(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Whether to populate the store cache with objects used by this
 transaction.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setPopulateStoreCache(boolean)"><B>setPopulateStoreCache(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setPopulateStoreCache(boolean)"><B>setPopulateStoreCache(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to populate the store cache with objects used by this
 transaction.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#setPort(int)"><B>setPort(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The port that this provider should listen on.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#setPostLoad(boolean)"><B>setPostLoad(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Whether loading this fetch group causes a post-load callback on the
 loaded instance.
<DT><A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html#setPreFlush(boolean)"><B>setPreFlush(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html" title="class in org.apache.openjpa.kernel">InMemorySavepointManager</A>
<DD>Set whether to call <A HREF="./org/apache/openjpa/kernel/Broker.html#preFlush()"><CODE>Broker.preFlush()</CODE></A>
 when a savepoint is set.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html#setPrependFieldNameToJoinTableInverseJoinColumns(boolean)"><B>setPrependFieldNameToJoinTableInverseJoinColumns(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.html" title="class in org.apache.openjpa.persistence.jdbc">PersistenceMappingDefaults</A>
<DD>Whether to prepend the field name to the default name of inverse join
 columns within join tables.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#setPrettyPrint(boolean)"><B>setPrettyPrint(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>If set to <code>true</code>, pretty-print SQL by running it
 through <A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#prettyPrint(java.lang.Object)"><CODE>SQLFormatter.prettyPrint(java.lang.Object)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#setPrettyPrintLineLength(int)"><B>setPrettyPrintLineLength(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>The number of characters to print per line when
 pretty-printing of SQL is enabled.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setPrimaryKey(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setPrimaryKey(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setPrimaryKey(org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setPrimaryKey(ColumnIO, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setPrimaryKey(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setPrimaryKey(OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the primary key to represent the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setPrimaryKey(org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setPrimaryKey(ColumnIO, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the primary key to represent the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setPrimaryKey(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setPrimaryKey(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setPrimaryKey(org.apache.openjpa.jdbc.schema.ColumnIO, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>setPrimaryKey(ColumnIO, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setPrimaryKey(boolean)"><B>setPrimaryKey(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this is a primary key field.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setPrimaryKeyColumn(java.lang.String)"><B>setPrimaryKeyColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>The name of the table's primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#setPrimaryKeyColumn(java.lang.String)"><B>setPrimaryKeyColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Name of primary key column, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#setPrimaryKeyColumn(java.lang.String)"><B>setPrimaryKeyColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>The name of the primary key column on the schema definition table.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setPrimaryKeyColumnName(java.lang.String)"><B>setPrimaryKeyColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The name of the primary key column.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setPrimaryKeyColumns(org.apache.openjpa.jdbc.schema.Column[])"><B>setPrimaryKeyColumns(Column[])</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The columns this mapping uses to uniquely identify an object.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setPrimaryKeyIndex(int)"><B>setPrimaryKeyIndex(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The absolute primary key index for this field, or -1 if not a primary
 key.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setPrimaryKeyOnJoin(boolean)"><B>setPrimaryKeyOnJoin(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to allow primary keys on join tables.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setPrimaryKeyOnJoin(boolean)"><B>setPrimaryKeyOnJoin(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set to true if join tables are allowed to have primary keys, false
 if all primary key tables will be mapped as persistent classes.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setPrimaryKeys(boolean)"><B>setPrimaryKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether to generate primary key information.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setPrimaryKeys(boolean)"><B>setPrimaryKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether to generate primary key information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setPrimaryKeys(boolean)"><B>setPrimaryKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether primary keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#setPrimaryKeys(boolean)"><B>setPrimaryKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#setPrimaryKeys(boolean)"><B>setPrimaryKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Set whether primary keys should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setPrimaryKeys(boolean)"><B>setPrimaryKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether primary keys on existing tables should be manipulated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setPrimaryKeySchemaName(java.lang.String)"><B>setPrimaryKeySchemaName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The name of the primary key table's schema.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setPrimaryKeyTableName(java.lang.String)"><B>setPrimaryKeyTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>The name of the primary key table.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#setPrimaryKeyValue(java.lang.String)"><B>setPrimaryKeyValue(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>The primary key value for this row.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#setPrimaryKeyValue(java.lang.String)"><B>setPrimaryKeyValue(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Primary key value, if not auto-determined.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#setProductName(java.lang.String)"><B>setProductName(String)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Set the product name.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setProductName(java.lang.String)"><B>setProductName(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#setProperties(java.lang.String)"><B>setProperties(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setProperties(java.lang.String)"><B>setProperties(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>This method loads the named resource as a properties file.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#setProperties(java.lang.String[])"><B>setProperties(String[])</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>The plugin properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#setProperties(java.lang.String)"><B>setProperties(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>The plugin properties.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setPropertiesFile(java.io.File)"><B>setPropertiesFile(File)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>This method loads the named file as a properties file.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setProperty(java.lang.String)"><B>setProperty(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>The property name that will be used when setting or
 getting this value in a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#setProperty(java.lang.String, java.lang.String)"><B>setProperty(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#setProperty(java.lang.String, java.lang.String)"><B>setProperty(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Overrides <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#setProperty(java.lang.String, java.lang.String)" title="class or interface in java.util"><CODE>Properties.setProperty(String,String)</CODE></A> to remove
 the key if the given value is <code>null</code>.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#setProperty(java.lang.String, boolean)"><B>setProperty(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Set the given key to a string version of the given value.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#setProperty(java.lang.String, double)"><B>setProperty(String, double)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Set the given key to a string version of the given value.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#setProperty(java.lang.String, float)"><B>setProperty(String, float)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Set the given key to a string version of the given value.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#setProperty(java.lang.String, int)"><B>setProperty(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Set the given key to a string version of the given value.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#setProperty(java.lang.String, long)"><B>setProperty(String, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Set the given key to a string version of the given value.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setProperty(java.lang.String, java.lang.String)"><B>setProperty(String, String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#setProvider(org.apache.openjpa.event.RemoteCommitProvider)"><B>setProvider(RemoteCommitProvider)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>The cached provider.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setProxyManager(java.lang.String)"><B>setProxyManager(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util"><CODE>ProxyManager</CODE></A> to use for second
 class object proxies.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setProxyManager(org.apache.openjpa.util.ProxyManager)"><B>setProxyManager(ProxyManager)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/util/ProxyManager.html" title="interface in org.apache.openjpa.util"><CODE>ProxyManager</CODE></A> to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setProxyManager(java.lang.String)"><B>setProxyManager(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setProxyManager(org.apache.openjpa.util.ProxyManager)"><B>setProxyManager(ProxyManager)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setProxyType(java.lang.Class)"><B>setProxyType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The type this field was initialized with, and therefore the
 type to use for proxies when loading data into this field.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>Allow direct setting of parsed state for facades that do parsing.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>The query string or template.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#setQuery(java.lang.Object)"><B>setQuery(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>This is invoked when the user or a facade creates a new query with
 an object that the system does not recognize.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setQueryCache(java.lang.String)"><B>setQueryCache(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for level-2 data store query caching.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setQueryCache(java.lang.String)"><B>setQueryCache(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setQueryCacheEnabled(boolean)"><B>setQueryCacheEnabled(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setQueryCacheEnabled(boolean)"><B>setQueryCacheEnabled(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Control whether or not query caching is enabled.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setQueryCacheEnabled(boolean)"><B>setQueryCacheEnabled(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setQueryCompilationCache(java.lang.String)"><B>setQueryCompilationCache(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Configuration settings for the query compilation cache to use.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setQueryCompilationCache(java.lang.String)"><B>setQueryCompilationCache(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Subquery.html#setQueryExpressions(org.apache.openjpa.kernel.exps.QueryExpressions)"><B>setQueryExpressions(QueryExpressions)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Subquery.html" title="interface in org.apache.openjpa.kernel.exps">Subquery</A>
<DD>Set the parsed subquery.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#setQueryResultCacheEnabled(boolean)"><B>setQueryResultCacheEnabled(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>Control whether or not query caching is enabled.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#setQueryResultCacheEnabled(boolean)"><B>setQueryResultCacheEnabled(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setQueryResultCacheEnabled(boolean)"><B>setQueryResultCacheEnabled(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setQueryResultCacheEnabled(boolean)"><B>setQueryResultCacheEnabled(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setQueryString(java.lang.String)"><B>setQueryString(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The full query string, or null if none.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#setQueryTimeout(int)"><B>setQueryTimeout(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>The number of seconds to wait for a query to execute before
 terminating it.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setQueryTimeout(int)"><B>setQueryTimeout(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setQueryTimeout(int)"><B>setQueryTimeout(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#setQueryTimeout(int)"><B>setQueryTimeout(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setQuotedNumbersInQueries(boolean)"><B>setQuotedNumbersInQueries(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to interpret quoted numbers in query strings as numbers.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#setRange(long, long)"><B>setRange(long, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#setRange(long, long)"><B>setRange(long, long)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Set the result range for this select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setRange(long, long)"><B>setRange(long, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setRange(long, long)"><B>setRange(long, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#setRange(long, long)"><B>setRange(long, long)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Set the range of results to return.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setRange(long, long)"><B>setRange(long, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setRaw(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>setRaw(Column, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set a DB understood value for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setRaw(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>setRaw(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setReadLockLevel(java.lang.String)"><B>setReadLockLevel(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The default read lock level to use during non-optimistic transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setReadLockLevel(int)"><B>setReadLockLevel(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The numeric read lock level.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setReadLockLevel(java.lang.String)"><B>setReadLockLevel(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setReadLockLevel(int)"><B>setReadLockLevel(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setReadLockLevel(int)"><B>setReadLockLevel(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setReadLockLevel(int)"><B>setReadLockLevel(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The lock level to use for locking loaded objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setReadLockLevel(int)"><B>setReadLockLevel(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#setReadLockMode(javax.persistence.LockModeType)"><B>setReadLockMode(LockModeType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The lock level to use for locking loaded objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#setReadLockMode(javax.persistence.LockModeType)"><B>setReadLockMode(LockModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setReadLockMode(javax.persistence.LockModeType)"><B>setReadLockMode(LockModeType)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setReadLockMode(javax.persistence.LockModeType)"><B>setReadLockMode(LockModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Whether the query has been marked read-only.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>Lock down the configuration's state.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setReadOnly(boolean)"><B>setReadOnly(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>Whether the query has been marked read-only.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setReadSchema(boolean)"><B>setReadSchema(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether the MappingTool should read the full schema.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setReadSchema(boolean)"><B>setReadSchema(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Set to true to read the entire schema before mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setRecord(boolean)"><B>setRecord(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether the SchemaTool should record to the schema factory.
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#setRecoveryTimeMillis(int)"><B>setRecoveryTimeMillis(int)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>The number of milliseconds to wait before retrying
 to reconnect to a peer after it becomes unreachable.
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#setRecursionDepth(org.apache.openjpa.meta.FieldMetaData, int)"><B>setRecursionDepth(FieldMetaData, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>Recursion depth for the given field.
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.html#setRedefine(boolean)"><B>setRedefine(boolean)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A>
<DD>Whether the enhancer should mutate its arguments, or just run validation
 and optional subclassing logic on them.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setRef(java.sql.PreparedStatement, int, java.sql.Ref, org.apache.openjpa.jdbc.schema.Column)"><B>setRef(PreparedStatement, int, Ref, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setRef(int, java.sql.Ref)"><B>setRef(int, Ref)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setRef(int, java.sql.Ref)"><B>setRef(int, Ref)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#setRegistryName(java.lang.String)"><B>setRegistryName(String)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#setRelation(org.apache.openjpa.jdbc.meta.ClassMapping, int, org.apache.openjpa.jdbc.sql.Joins)"><B>setRelation(ClassMapping, int, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>When joining a relation, set target type and how to deal with
 subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setRelationId(boolean)"><B>setRelationId(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Whether this column stores some form of serialized identity value for
 a related record.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#setRelationId(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.RelationId)"><B>setRelationId(Column, OpenJPAStateManager, RelationId)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setRelationId(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.RelationId)"><B>setRelationId(Column, OpenJPAStateManager, RelationId)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column to the identity of given instance,
 using the given callback to create the column value.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setRelationId(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.RelationId)"><B>setRelationId(Column, OpenJPAStateManager, RelationId)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html#setRelationId(org.apache.openjpa.jdbc.schema.Column, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.RelationId)"><B>setRelationId(Column, OpenJPAStateManager, RelationId)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SecondaryRow.html" title="class in org.apache.openjpa.jdbc.sql">SecondaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setRemote(int, java.lang.Object)"><B>setRemote(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setRemote(int, java.lang.Object)"><B>setRemote(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setRemote(int, java.lang.Object)"><B>setRemote(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setRemote(int, java.lang.Object)"><B>setRemote(int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given field to the given value.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setRemote(int, java.lang.Object)"><B>setRemote(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRemoteCommitEventManager(org.apache.openjpa.event.RemoteCommitEventManager)"><B>setRemoteCommitEventManager(RemoteCommitEventManager)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The remote event manager that manages this configuration's remote
 event listeners.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRemoteCommitEventManager(org.apache.openjpa.event.RemoteCommitEventManager)"><B>setRemoteCommitEventManager(RemoteCommitEventManager)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#setRemoteCommitEventManager(org.apache.openjpa.event.RemoteCommitEventManager)"><B>setRemoteCommitEventManager(RemoteCommitEventManager)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html#setRemoteCommitEventManager(org.apache.openjpa.event.RemoteCommitEventManager)"><B>setRemoteCommitEventManager(RemoteCommitEventManager)</B></A> - 
Method in interface org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event">RemoteCommitProvider</A>
<DD>Set the "owning" remote event manager to notify when remote events
 are received from remote sources.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRemoteCommitProvider(java.lang.String)"><B>setRemoteCommitProvider(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for remote commit notification.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRemoteCommitProvider(java.lang.String)"><B>setRemoteCommitProvider(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#setRemovedFromGraph()"><B>setRemovedFromGraph()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Mark this edge as removed from the graph.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setRepository(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>setRepository(MappingRepository)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Set the repository to use to access mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setRepository(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>setRepository(MappingRepository)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set the repository to use.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Set the repository to load metadata into.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The repository to use to hold metadata.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataParser</A>
<DD>Set the metadata repository for this parser.
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceXMLMetaDataParser</A>
<DD>Set the metadata repository for this parser.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#setRepository(org.apache.openjpa.meta.MetaDataRepository)"><B>setRepository(MetaDataRepository)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Set the metadata repository for this parser.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setRequiresExtent(boolean)"><B>setRequiresExtent(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether the type requires extent management.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Resolve mode.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Resolve mode.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Resolve mode.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Resolve mode.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The resolve mode for this metadata.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The resolve mode for this metadata.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Resolve mode for this field.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Resolve mode for this field.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The metadata resolution mode.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The metadata resolution mode.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Resolve mode for metadata.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Resolve mode for metadata.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setResolve(int)"><B>setResolve(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setResolve(int, boolean)"><B>setResolve(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setResources(java.util.Collection)"><B>setResources(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of resource paths of metadata files or jars supplied by user.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setResources(java.lang.String)"><B>setResources(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of semicolon-separated resource paths of metadata files or jars
 supplied by user via auto-configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#setRestoreFieldState(boolean)"><B>setRestoreFieldState(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>Set whether to retain in-memory copies of field values for restore
 on rollback.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRestoreState(java.lang.String)"><B>setRestoreState(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to restore initial state on rollback by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRestoreState(int)"><B>setRestoreState(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to restore initial state on rollback by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRestoreState(java.lang.String)"><B>setRestoreState(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRestoreState(int)"><B>setRestoreState(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setRestoreState(int)"><B>setRestoreState(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to restore an object's original state on rollback.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setRestoreState(int)"><B>setRestoreState(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setRestoreState(int)"><B>setRestoreState(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setRestoreState(org.apache.openjpa.persistence.RestoreStateType)"><B>setRestoreState(RestoreStateType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setRestoreState(org.apache.openjpa.persistence.RestoreStateType)"><B>setRestoreState(RestoreStateType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to restore an object's original state on rollback.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setResultClass(java.lang.Class)"><B>setResultClass(Class)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Query result element type.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setResultClass(java.lang.Class)"><B>setResultClass(Class)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setResultMapping(java.lang.Class, java.lang.String)"><B>setResultMapping(Class, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#setResultMapping(java.lang.Class, java.lang.String)"><B>setResultMapping(Class, String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Name and scope of a mapping from the result data to its object
 representation.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setResultMapping(java.lang.Class, java.lang.String)"><B>setResultMapping(Class, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setResultSetMappingName(java.lang.String)"><B>setResultSetMappingName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setResultSetType(java.lang.String)"><B>setResultSetType(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The JDBC result set type.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setResultSetType(int)"><B>setResultSetType(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Set the result set constant type.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setResultSetType(java.lang.String)"><B>setResultSetType(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setResultSetType(int)"><B>setResultSetType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setResultSetType(int)"><B>setResultSetType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setResultSetType(int)"><B>setResultSetType(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>The result set type to use as a constant from <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html" title="class or interface in java.sql"><CODE>ResultSet</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setResultSetType(int)"><B>setResultSetType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setResultSetType(org.apache.openjpa.persistence.jdbc.ResultSetType)"><B>setResultSetType(ResultSetType)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Type of JDBC result set to use for query results.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setResultSetType(org.apache.openjpa.persistence.jdbc.ResultSetType)"><B>setResultSetType(ResultSetType)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setResultType(java.lang.Class)"><B>setResultType(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#setResultType(java.lang.Class)"><B>setResultType(Class)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Specify the type of object in which the result of evaluating this query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setResultType(java.lang.Class)"><B>setResultType(Class)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setResultType(java.lang.Class)"><B>setResultType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The query result class, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html#setRetain(boolean)"><B>setRetain(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.RefCountConnection.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager.RefCountConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to retain state after a transaction by default.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRetainState(java.lang.Boolean)"><B>setRetainState(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRetainState(boolean)"><CODE>OpenJPAConfiguration.setRetainState(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRetainState(java.lang.Boolean)"><B>setRetainState(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether objects retain their persistent state on transaction commit.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setRetainState(boolean)"><B>setRetainState(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether objects retain their persistent state on transaction commit.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRetryClassRegistration(boolean)"><B>setRetryClassRegistration(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Whether to warn and defer registration instead of throwing an
 exception when a registered persistent class cannot be processed.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRetryClassRegistration(java.lang.Boolean)"><B>setRetryClassRegistration(Boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Wrapper for JCA usage of <A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRetryClassRegistration(boolean)"><CODE>OpenJPAConfiguration.setRetryClassRegistration(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRetryClassRegistration(boolean)"><B>setRetryClassRegistration(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRetryClassRegistration(java.lang.Boolean)"><B>setRetryClassRegistration(Boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee">JNDIManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in interface org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee">ManagedRuntime</A>
<DD>Sets the rollback only flag on the current transaction.
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#setRollbackOnly()"><B>setRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html" title="class in org.apache.openjpa.ee">SunOneManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html" title="class in org.apache.openjpa.ee">WLSManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setRollbackOnly()"><B>setRollbackOnly()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Mark the current transaction for rollback.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Mark the current transaction for rollback with the specified cause
 of the rollback.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setRollbackOnly()"><B>setRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setRollbackOnly()"><B>setRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setRollbackOnly()"><B>setRollbackOnly()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html#setRollbackOnly(java.lang.Throwable)"><B>setRollbackOnly(Throwable)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityTransaction.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityTransaction</A>
<DD>Mark the current transaction for rollback with the specified cause
 of the rollback.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setRootClasses(java.util.Collection)"><B>setRootClasses(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setRootClasses(java.util.Collection)"><B>setRootClasses(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Root classes for recursive operations.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setRootClasses(java.util.Collection)"><B>setRootClasses(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setRootInstances(java.util.Collection)"><B>setRootInstances(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setRootInstances(java.util.Collection)"><B>setRootInstances(Collection)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Root instances for recursive operations.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setRootInstances(java.util.Collection)"><B>setRootInstances(Collection)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRuntimeUnenhancedClasses(java.lang.String)"><B>setRuntimeUnenhancedClasses(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Specifies how OpenJPA handles unenhanced types.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setRuntimeUnenhancedClasses(int)"><B>setRuntimeUnenhancedClasses(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set the runtime class optimization setting as one of the
 following symbolic constants:
 
 <CODE>RuntimeUnenhancedClasssesModes#SUPPORTED</CODE>
 <CODE>RuntimeUnenhancedClasssesModes#UNSUPPORTED</CODE>
 <CODE>RuntimeUnenhancedClasssesModes#WARN</CODE>
 
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRuntimeUnenhancedClasses(int)"><B>setRuntimeUnenhancedClasses(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setRuntimeUnenhancedClasses(java.lang.String)"><B>setRuntimeUnenhancedClasses(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setSavepoint(java.lang.String)"><B>setSavepoint(String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Set a transactional savepoint where operations after this savepoint
 will be rolled back.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setSavepoint(java.lang.String)"><B>setSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setSavepoint(java.lang.String)"><B>setSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setSavepoint()"><B>setSavepoint()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setSavepoint(java.lang.String)"><B>setSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setSavepoint(java.lang.String)"><B>setSavepoint(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setSavepoint(java.lang.String)"><B>setSavepoint(String)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Set a transactional savepoint where operations after this savepoint
 will be rolled back.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setSavepointManager(java.lang.String)"><B>setSavepointManager(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The plugin to use for savepoint management.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setSavepointManager(java.lang.String)"><B>setSavepointManager(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSchema(java.lang.String)"><B>setSchema(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Default schema for unqualified tables.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSchema(java.lang.String)"><B>setSchema(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setSchemaAction(org.apache.openjpa.jdbc.ant.MappingToolTask.SchemaAction)"><B>setSchemaAction(MappingToolTask.SchemaAction)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set the enumerated SchemaTool action type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setSchemaAction(java.lang.String)"><B>setSchemaAction(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The schema modification policy, or <code>none</code>.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#setSchemaColumn(java.lang.String)"><B>setSchemaColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>The name of the schema column on the schema definition table.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSchemaFactory(java.lang.String)"><B>setSchemaFactory(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The plugin string for the <A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>SchemaFactory</CODE></A> to use to provide
 schema information during system initialization.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSchemaFactory(org.apache.openjpa.jdbc.schema.SchemaFactory)"><B>setSchemaFactory(SchemaFactory)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema"><CODE>SchemaFactory</CODE></A> to use for schema information.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSchemaFactory(java.lang.String)"><B>setSchemaFactory(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSchemaFactory(org.apache.openjpa.jdbc.schema.SchemaFactory)"><B>setSchemaFactory(SchemaFactory)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setSchemaFile(java.lang.String)"><B>setSchemaFile(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set the output file for an XML representation of the planned schema.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Representation of the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Set the schema to use in mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set the schema to reverse map.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Set the schema group to add generated schemas to.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaParser.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaParser</A>
<DD>Set the current schema group; this clears all state from the last group.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Set the schema group the tool will act on.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>setSchemaGroup(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setSchemaName(java.lang.String)"><B>setSchemaName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The default schema name for unqualified tables.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setSchemaName(java.lang.String)"><B>setSchemaName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The column's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#setSchemaName(java.lang.String)"><B>setSchemaName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Set the column table's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#setSchemaName(java.lang.String)"><B>setSchemaName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>The sequence's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#setSchemaName(java.lang.String)"><B>setSchemaName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>The table's schema name.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSchemas(java.lang.String)"><B>setSchemas(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Comma-separated list of modifiable schemas for persistent instances.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSchemas(java.lang.String[])"><B>setSchemas(String[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Modifiable schema components.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSchemas(java.lang.String)"><B>setSchemas(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSchemas(java.lang.String[])"><B>setSchemas(String[])</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setSchemaTool(org.apache.openjpa.jdbc.schema.SchemaTool)"><B>setSchemaTool(SchemaTool)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Set the schema tool to use for schema modification.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setSchemaWriter(java.io.Writer)"><B>setSchemaWriter(Writer)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>The stream to export the planned schema to as an XML document.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setScope(java.lang.Class)"><B>setScope(Class)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>A class defining the scope in which this value is defined.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setScoreBeforeFieldName(boolean)"><B>setScoreBeforeFieldName(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place an underscore before private field names.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setSecondaryTableJoinColumns(java.lang.String, java.util.List)"><B>setSecondaryTableJoinColumns(String, List)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Declare the given class-level join.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#setSelect(org.apache.openjpa.jdbc.sql.SelectImpl)"><B>setSelect(SelectImpl)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>Select for this result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#setSelectAs(java.lang.Object, java.lang.String)"><B>setSelectAs(Object, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>Set that a given id's alias has an AS value.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setSequence(java.lang.String)"><B>setSequence(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Plugin string for the default system <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A>.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setSequence(org.apache.openjpa.kernel.Seq)"><B>setSequence(Seq)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The default system sequence.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setSequence(java.lang.String)"><B>setSequence(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setSequence(org.apache.openjpa.kernel.Seq)"><B>setSequence(Seq)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setSequence(java.lang.String)"><B>setSequence(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>The sequence name.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setSequence(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.TableJDBCSeq.Status, int, boolean, java.sql.Connection)"><B>setSequence(ClassMapping, TableJDBCSeq.Status, int, boolean, Connection)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>Grabs the next handful of sequence numbers.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setSequence(java.lang.String)"><B>setSequence(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Native sequence name.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setSequenceColumn(java.lang.String)"><B>setSequenceColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>The name of the column that holds the sequence value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#setSequenceColumn(java.lang.String)"><B>setSequenceColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Name of sequence column, if any.
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setSequenceFactory(org.apache.openjpa.meta.SequenceMetaData.SequenceFactory)"><B>setSequenceFactory(SequenceMetaData.SequenceFactory)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>A factory to transform spec sequences produced by user factories into
 the OpenJPA sequence type.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setSequenceName(java.lang.String)"><B>setSequenceName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setSequence(java.lang.String)"><CODE>NativeJDBCSeq.setSequence(java.lang.String)</CODE></A>. Retained for
 backwards-compatibility for auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setSequencePlugin(java.lang.String)"><B>setSequencePlugin(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>Plugin string describing the <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setSequences(boolean)"><B>setSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set whether the MappingTool should manipulate sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html#setSequences(boolean)"><B>setSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/SchemaToolTask.html" title="class in org.apache.openjpa.jdbc.ant">SchemaToolTask</A>
<DD>Set whether the SchemaTool should manipulate sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html#setSequences(boolean)"><B>setSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool</A>
<DD>Whether to manipulate sequences.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html#setSequences(boolean)"><B>setSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaGenerator.html" title="class in org.apache.openjpa.jdbc.schema">SchemaGenerator</A>
<DD>Set whether sequences should be generated.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setSequences(boolean)"><B>setSequences(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>Whether sequences should be manipulated.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#setSerializeAnnotations(boolean)"><B>setSerializeAnnotations(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Whether to serialize content originally specified in annotations.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setSerialized(boolean)"><B>setSerialized(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setSerialized(boolean)"><B>setSerialized(boolean)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>Whether this value is serialized when stored.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setSerialized(boolean)"><B>setSerialized(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorage.html#setShort(int, short)"><B>setShort(int, short)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A>
<DD>Set the short at the given index.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setShort(java.sql.PreparedStatement, int, short, org.apache.openjpa.jdbc.schema.Column)"><B>setShort(PreparedStatement, int, short, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setShort(org.apache.openjpa.jdbc.schema.Column, short)"><B>setShort(Column, short)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setShort(org.apache.openjpa.jdbc.schema.Column, short)"><B>setShort(Column, short)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setShort(int, short)"><B>setShort(int, short)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setShort(java.lang.String, short)"><B>setShort(String, short)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setShort(int, short)"><B>setShort(int, short)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#setSize(int)"><B>setSize(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>Allow subclasses that know the size to set it; otherwise we calculate
 it internally.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setSize(int)"><B>setSize(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set the column's size.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#setSoftReferenceSize(int)"><B>setSoftReferenceSize(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>Sets the maximum number of unpinned objects to keep soft
 references to.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#setSoftReferenceSize(int)"><B>setSoftReferenceSize(int)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>Sets the maximum number of unpinned objects to keep soft
 references to.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#setSoftReferenceSize(int)"><B>setSoftReferenceSize(int)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The maximum number of soft references to maintain, or -1 for no limit.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setSource(java.io.File, int)"><B>setSource(File, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#setSource(java.io.File, java.lang.Object, int)"><B>setSource(File, Object, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#setSource(java.io.File, int)"><B>setSource(File, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#setSource(java.io.File, int)"><B>setSource(File, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setSource(java.io.File, int)"><B>setSource(File, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#setSource(java.io.File, int)"><B>setSource(File, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setSource(java.io.File, java.lang.Object, int)"><B>setSource(File, Object, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setSource(java.io.File, java.lang.Object, int)"><B>setSource(File, Object, int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html#setSource(java.lang.String)"><B>setSource(String)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationProviderImpl.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationProviderImpl</A>
<DD>Set the source of information in this provider.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setSourceFile(org.apache.openjpa.meta.ClassMetaData, java.io.File)"><B>setSourceFile(ClassMetaData, File)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set the current source file of the given metadata.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setSourceFile(org.apache.openjpa.meta.SequenceMetaData, java.io.File)"><B>setSourceFile(SequenceMetaData, File)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set the current source file of the given metadata.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setSourceIsSystemId(boolean)"><B>setSourceIsSystemId(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether to use the source name as the XML system id.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#setSourceMode(int)"><B>setSourceMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>The source mode of this query result.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setSourceMode(int)"><B>setSourceMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The source mode this metadata has been loaded under.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setSourceMode(int, boolean)"><B>setSourceMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>The source mode this metadata has been loaded under.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setSourceMode(int)"><B>setSourceMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The source mode determining what metadata to load.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setSourceMode(int, boolean)"><B>setSourceMode(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The source mode determining what metadata to load.
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#setSourceMode(int)"><B>setSourceMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>The source mode of this query.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setSpaceBeforeParen(boolean)"><B>setSpaceBeforeParen(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place a space before parentheses.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setSpaceInParen(boolean)"><B>setSpaceInParen(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Whether to place a space within parentheses.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setSpecification(java.lang.String)"><B>setSpecification(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set the specification that this configuration should use for the
 various properties that need to have different defaults for different
 spec environments.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setSpecification(java.lang.String)"><B>setSpecification(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSQLFactory(java.lang.String)"><B>setSQLFactory(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The SQL factory to use for SQL constructs.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSQLFactory(org.apache.openjpa.jdbc.sql.SQLFactory)"><B>setSQLFactory(SQLFactory)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The SQL factory to use for SQL constructs.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSQLFactory(java.lang.String)"><B>setSQLFactory(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSQLFactory(org.apache.openjpa.jdbc.sql.SQLFactory)"><B>setSQLFactory(SQLFactory)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#setSQLFile(java.lang.String)"><B>setSQLFile(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>Set the output file we want the MappingTool to write a SQL script to.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html#setSQLLog(org.apache.openjpa.lib.log.Log)"><B>setSQLLog(Log)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DataSourceLogs.html" title="class in org.apache.openjpa.lib.jdbc">DataSourceLogs</A>
<DD>The log to write SQL messages to.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html#setStorageGenerator(org.apache.openjpa.enhance.PCDataGenerator)"><B>setStorageGenerator(PCDataGenerator)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance">PCDataGenerator.DynamicPCData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#setStore(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>setStore(JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>Optional store manager used to deserialize blobs containing
 references to persistent objects.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#setStoreDirectory(java.io.File)"><B>setStoreDirectory(File)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#setStoreDirectory(java.io.File)"><B>setStoreDirectory(File)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#setStoreDirectory(java.io.File)"><B>setStoreDirectory(File)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#setStoreDirectory(java.io.File)"><B>setStoreDirectory(File)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Base directory for storing metadata.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#setStoreDirectory(java.io.File)"><B>setStoreDirectory(File)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setStoreEnumOrdinal(boolean)"><B>setStoreEnumOrdinal(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to store enums as the ordinal value rather than the enum name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#setStoreMode(int)"><B>setStoreMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#setStoreMode(int)"><B>setStoreMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#setStoreMode(int)"><B>setStoreMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#setStoreMode(int)"><B>setStoreMode(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Storage mode.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#setStoreMode(int)"><B>setStoreMode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#setStoreOrdinal(boolean)"><B>setStoreOrdinal(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>Whether to store the enum value as its ordinal.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setStoreUnmappedObjectIdString(boolean)"><B>setStoreUnmappedObjectIdString(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Whether to store a relation to an unmapped class by stringifying the
 oid of the related object, rather than storing primary key values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setStrategy(org.apache.openjpa.jdbc.meta.ClassStrategy, java.lang.Boolean)"><B>setStrategy(ClassStrategy, Boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The strategy used to map this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setStrategy(org.apache.openjpa.jdbc.meta.DiscriminatorStrategy, java.lang.Boolean)"><B>setStrategy(DiscriminatorStrategy, Boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>The strategy used for class discrimination.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setStrategy(org.apache.openjpa.jdbc.meta.FieldStrategy, java.lang.Boolean)"><B>setStrategy(FieldStrategy, Boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>The strategy used to map this mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setStrategy(java.lang.String)"><B>setStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Mapping strategy name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setStrategy(org.apache.openjpa.jdbc.meta.VersionStrategy, java.lang.Boolean)"><B>setStrategy(VersionStrategy, Boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>The strategy used for versioning.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html#setStrategyInstaller(org.apache.openjpa.jdbc.meta.StrategyInstaller)"><B>setStrategyInstaller(StrategyInstaller)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>
<DD>Installs mapping strategies on components.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#setStream(java.io.PrintStream)"><B>setStream(PrintStream)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>The stream to write to.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#setStrict(boolean)"><B>setStrict(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#setStrict(boolean)"><B>setStrict(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#setStrict(boolean)"><B>setStrict(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#setStrict(boolean)"><B>setStrict(boolean)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>If true, I/O's must exactly obey the mode directives given, and may
 not load additional information.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#setStrict(boolean)"><B>setStrict(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setStrictIdentityValues(boolean)"><B>setStrictIdentityValues(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to require exact identity value types when creating object
 ids from a class and value.
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#setString(java.lang.String)"><B>setString(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setString(java.sql.PreparedStatement, int, java.lang.String, org.apache.openjpa.jdbc.schema.Column)"><B>setString(PreparedStatement, int, String, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#setString(java.sql.PreparedStatement, int, java.lang.String, org.apache.openjpa.jdbc.schema.Column)"><B>setString(PreparedStatement, int, String, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setString(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>setString(Column, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setString(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>setString(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html#setString(java.lang.String)"><B>setString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginListValue.html" title="class in org.apache.openjpa.lib.conf">PluginListValue</A>
<DD>Override to recognize aliases of the plugin name without the attached
 properties string.
<DT><A HREF="./org/apache/openjpa/lib/conf/PluginValue.html#setString(java.lang.String)"><B>setString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/PluginValue.html" title="class in org.apache.openjpa.lib.conf">PluginValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#setString(java.lang.String)"><B>setString(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Set this value from the given string.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setString(int, java.lang.String)"><B>setString(int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setString(java.lang.String, java.lang.String)"><B>setString(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setString(int, java.lang.String)"><B>setString(int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html#setSubclasses(boolean)"><B>setSubclasses(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAQuery.html" title="interface in org.apache.openjpa.persistence">OpenJPAQuery</A>
<DD>Whether subclasses are included in the query results.
<DT><A HREF="./org/apache/openjpa/persistence/QueryImpl.html#setSubclasses(boolean)"><B>setSubclasses(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryImpl.html" title="class in org.apache.openjpa.persistence">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setSubclassesLoaded(boolean)"><B>setSubclassesLoaded(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Whether this Discriminator has loaded subclasses yet.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSubclassFetchMode(java.lang.String)"><B>setSubclassFetchMode(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Specifies the default subclass fetch mode to use.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSubclassFetchMode(int)"><B>setSubclassFetchMode(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Set the subclass fetch mode as one of the following symbolic constants:
 
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_NONE"><CODE>EagerFetchModes.EAGER_NONE</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_JOIN"><CODE>EagerFetchModes.EAGER_JOIN</CODE></A>
 <A HREF="./org/apache/openjpa/jdbc/kernel/EagerFetchModes.html#EAGER_PARALLEL"><CODE>EagerFetchModes.EAGER_PARALLEL</CODE></A>
 
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSubclassFetchMode(java.lang.String)"><B>setSubclassFetchMode(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSubclassFetchMode(int)"><B>setSubclassFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#setSubclassFetchMode(int)"><B>setSubclassFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#setSubclassFetchMode(int)"><B>setSubclassFetchMode(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Set the subclass fetch mode.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#setSubclassFetchMode(int)"><B>setSubclassFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setSubclassFetchMode(int)"><B>setSubclassFetchMode(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The subclass fetch mode, as one of the eager constants in
 <A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCFetchConfiguration</CODE></A>.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setSubclassFetchMode(org.apache.openjpa.persistence.jdbc.FetchMode)"><B>setSubclassFetchMode(FetchMode)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>Eager fetch mode in loading subclasses.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setSubclassFetchMode(org.apache.openjpa.persistence.jdbc.FetchMode)"><B>setSubclassFetchMode(FetchMode)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setSubclassStrategy(java.lang.String)"><B>setSubclassStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default subclass strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#setSubselect(java.lang.String)"><B>setSubselect(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Set the subquery alias.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#setSubselect(java.lang.String)"><B>setSubselect(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setSubselect(java.lang.String)"><B>setSubselect(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#setSuffix(java.lang.String)"><B>setSuffix(String)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Set a suffix to append to persistent classes to form their identity
 class name.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setSuffix(java.lang.String)"><B>setSuffix(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Expected suffix for metadata resources, or null if unknown.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setSynchronization(javax.transaction.Synchronization)"><B>setSynchronization(Synchronization)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setSynchronizeMappings(java.lang.String)"><B>setSynchronizeMappings(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Whether OpenJPA should try to automatically refresh O/R mapping
 information and the database schema.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setSynchronizeMappings(java.lang.String)"><B>setSynchronizeMappings(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#setSyncMappingInfo(boolean)"><B>setSyncMappingInfo(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>Whether to automatically synchronize mapping info with data available
 from mapped components before serialization.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#setSyncMappingInfo(boolean)"><B>setSyncMappingInfo(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>Whether to automatically synchronize mapping info with data available
 from mapped components before serialization.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setSyncWithManagedTransactions(boolean)"><B>setSyncWithManagedTransactions(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Whether to check for a global transaction upon every managed,
 non-transactional operation.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setSyncWithManagedTransactions(boolean)"><B>setSyncWithManagedTransactions(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setSyncWithManagedTransactions(boolean)"><B>setSyncWithManagedTransactions(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setSyncWithManagedTransactions(boolean)"><B>setSyncWithManagedTransactions(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setSyncWithManagedTransactions(boolean)"><B>setSyncWithManagedTransactions(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Whether to check for a global transaction upon every managed,
 non-transactional operation.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setTable(java.lang.String)"><B>setTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>The sequence table name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#setTable(org.apache.openjpa.jdbc.schema.Table)"><B>setTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>The mapping's primary table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html#setTable(java.lang.String)"><B>setTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/SequenceMapping.html" title="class in org.apache.openjpa.jdbc.meta">SequenceMapping</A>
<DD>Name of sequence table, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#setTable(java.lang.String)"><B>setTable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>The name of the schema definition table.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD><B>Deprecated.</B>&nbsp;<I>Retained for backwards-compatibility for auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setTable(java.lang.String)"><CODE>TableJDBCSeq.setTable(java.lang.String)</CODE></A>. Retained for
 backwards-compatibility        with auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>The given table name.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>The user-supplied name of the table for this field.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The column's table name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>Set the column's table name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#setTableName(java.lang.String)"><B>setTableName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#setTable(java.lang.String)"><CODE>TableSchemaFactory.setTable(java.lang.String)</CODE></A>. Retained for
 backwards-compatible auto-configuration.</I>
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#setTabSpaces(int)"><B>setTabSpaces(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>The number of spaces to use for tabs; 0 means to use actual tab
 characters.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#setTarget(serp.bytecode.Instruction, java.util.Collection)"><B>setTarget(Instruction, Collection)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Set the collection of <CODE>JumpInstruction</CODE>s to the given instruction,
 clearing the collection in the process.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setTarget(java.lang.String)"><B>setTarget(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The name of the column this column joins to, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setTargetField(java.lang.String)"><B>setTargetField(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The name of the field this column joins to, if any.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setTime(java.sql.PreparedStatement, int, java.sql.Time, java.util.Calendar, org.apache.openjpa.jdbc.schema.Column)"><B>setTime(PreparedStatement, int, Time, Calendar, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setTime(org.apache.openjpa.jdbc.schema.Column, java.sql.Time, java.util.Calendar)"><B>setTime(Column, Time, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setTime(org.apache.openjpa.jdbc.schema.Column, java.sql.Time, java.util.Calendar)"><B>setTime(Column, Time, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTime(int, java.sql.Time)"><B>setTime(int, Time)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTime(int, java.sql.Time, java.util.Calendar)"><B>setTime(int, Time, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTime(java.lang.String, java.sql.Time)"><B>setTime(String, Time)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTime(java.lang.String, java.sql.Time, java.util.Calendar)"><B>setTime(String, Time, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setTime(int, java.sql.Time)"><B>setTime(int, Time)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setTime(int, java.sql.Time, java.util.Calendar)"><B>setTime(int, Time, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.Timed.html#setTimeout(long)"><B>setTimeout(long)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataGenerator.Timed.html" title="interface in org.apache.openjpa.datacache">DataCachePCDataGenerator.Timed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LockException.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util">LockException</A>
<DD>The number of milliseconds to wait for a lock.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setTimestamp(java.sql.PreparedStatement, int, java.sql.Timestamp, java.util.Calendar, org.apache.openjpa.jdbc.schema.Column)"><B>setTimestamp(PreparedStatement, int, Timestamp, Calendar, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set the given value as a parameter to the statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setTimestamp(org.apache.openjpa.jdbc.schema.Column, java.sql.Timestamp, java.util.Calendar)"><B>setTimestamp(Column, Timestamp, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setTimestamp(org.apache.openjpa.jdbc.schema.Column, java.sql.Timestamp, java.util.Calendar)"><B>setTimestamp(Column, Timestamp, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTimestamp(int, java.sql.Timestamp)"><B>setTimestamp(int, Timestamp)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTimestamp(int, java.sql.Timestamp, java.util.Calendar)"><B>setTimestamp(int, Timestamp, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTimestamp(java.lang.String, java.sql.Timestamp)"><B>setTimestamp(String, Timestamp)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar)"><B>setTimestamp(String, Timestamp, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setTimestamp(int, java.sql.Timestamp)"><B>setTimestamp(int, Timestamp)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setTimestamp(int, java.sql.Timestamp, java.util.Calendar)"><B>setTimestamp(int, Timestamp, Calendar)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean, boolean, int)"><B>settingBooleanField(PersistenceCapable, int, boolean, boolean, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean, boolean, int)"><B>settingBooleanField(PersistenceCapable, int, boolean, boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean, boolean, int)"><B>settingBooleanField(PersistenceCapable, int, boolean, boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean, boolean, int)"><B>settingBooleanField(PersistenceCapable, int, boolean, boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingBooleanField(org.apache.openjpa.enhance.PersistenceCapable, int, boolean, boolean, int)"><B>settingBooleanField(PersistenceCapable, int, boolean, boolean, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte, byte, int)"><B>settingByteField(PersistenceCapable, int, byte, byte, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte, byte, int)"><B>settingByteField(PersistenceCapable, int, byte, byte, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte, byte, int)"><B>settingByteField(PersistenceCapable, int, byte, byte, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte, byte, int)"><B>settingByteField(PersistenceCapable, int, byte, byte, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingByteField(org.apache.openjpa.enhance.PersistenceCapable, int, byte, byte, int)"><B>settingByteField(PersistenceCapable, int, byte, byte, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char, char, int)"><B>settingCharField(PersistenceCapable, int, char, char, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char, char, int)"><B>settingCharField(PersistenceCapable, int, char, char, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char, char, int)"><B>settingCharField(PersistenceCapable, int, char, char, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char, char, int)"><B>settingCharField(PersistenceCapable, int, char, char, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingCharField(org.apache.openjpa.enhance.PersistenceCapable, int, char, char, int)"><B>settingCharField(PersistenceCapable, int, char, char, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double, double, int)"><B>settingDoubleField(PersistenceCapable, int, double, double, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double, double, int)"><B>settingDoubleField(PersistenceCapable, int, double, double, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double, double, int)"><B>settingDoubleField(PersistenceCapable, int, double, double, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double, double, int)"><B>settingDoubleField(PersistenceCapable, int, double, double, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingDoubleField(org.apache.openjpa.enhance.PersistenceCapable, int, double, double, int)"><B>settingDoubleField(PersistenceCapable, int, double, double, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, boolean, boolean)"><B>settingField(Object, int, boolean, boolean)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, char, char)"><B>settingField(Object, int, char, char)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, byte, byte)"><B>settingField(Object, int, byte, byte)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, short, short)"><B>settingField(Object, int, short, short)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, int, int)"><B>settingField(Object, int, int, int)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, long, long)"><B>settingField(Object, int, long, long)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, float, float)"><B>settingField(Object, int, float, float)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, double, double)"><B>settingField(Object, int, double, double)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, java.lang.String, java.lang.String)"><B>settingField(Object, int, String, String)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html#settingField(java.lang.Object, int, java.lang.Object, java.lang.Object)"><B>settingField(Object, int, Object, Object)</B></A> - 
Static method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float, float, int)"><B>settingFloatField(PersistenceCapable, int, float, float, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float, float, int)"><B>settingFloatField(PersistenceCapable, int, float, float, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float, float, int)"><B>settingFloatField(PersistenceCapable, int, float, float, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float, float, int)"><B>settingFloatField(PersistenceCapable, int, float, float, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingFloatField(org.apache.openjpa.enhance.PersistenceCapable, int, float, float, int)"><B>settingFloatField(PersistenceCapable, int, float, float, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int, int, int)"><B>settingIntField(PersistenceCapable, int, int, int, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int, int, int)"><B>settingIntField(PersistenceCapable, int, int, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int, int, int)"><B>settingIntField(PersistenceCapable, int, int, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int, int, int)"><B>settingIntField(PersistenceCapable, int, int, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingIntField(org.apache.openjpa.enhance.PersistenceCapable, int, int, int, int)"><B>settingIntField(PersistenceCapable, int, int, int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long, long, int)"><B>settingLongField(PersistenceCapable, int, long, long, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long, long, int)"><B>settingLongField(PersistenceCapable, int, long, long, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long, long, int)"><B>settingLongField(PersistenceCapable, int, long, long, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long, long, int)"><B>settingLongField(PersistenceCapable, int, long, long, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingLongField(org.apache.openjpa.enhance.PersistenceCapable, int, long, long, int)"><B>settingLongField(PersistenceCapable, int, long, long, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object, java.lang.Object, int)"><B>settingObjectField(PersistenceCapable, int, Object, Object, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object, java.lang.Object, int)"><B>settingObjectField(PersistenceCapable, int, Object, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object, java.lang.Object, int)"><B>settingObjectField(PersistenceCapable, int, Object, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object, java.lang.Object, int)"><B>settingObjectField(PersistenceCapable, int, Object, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingObjectField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.Object, java.lang.Object, int)"><B>settingObjectField(PersistenceCapable, int, Object, Object, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short, short, int)"><B>settingShortField(PersistenceCapable, int, short, short, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short, short, int)"><B>settingShortField(PersistenceCapable, int, short, short, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short, short, int)"><B>settingShortField(PersistenceCapable, int, short, short, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short, short, int)"><B>settingShortField(PersistenceCapable, int, short, short, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingShortField(org.apache.openjpa.enhance.PersistenceCapable, int, short, short, int)"><B>settingShortField(PersistenceCapable, int, short, short, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#settingStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String, java.lang.String, int)"><B>settingStringField(PersistenceCapable, int, String, String, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Setting state callback.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#settingStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String, java.lang.String, int)"><B>settingStringField(PersistenceCapable, int, String, String, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#settingStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String, java.lang.String, int)"><B>settingStringField(PersistenceCapable, int, String, String, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#settingStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String, java.lang.String, int)"><B>settingStringField(PersistenceCapable, int, String, String, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#settingStringField(org.apache.openjpa.enhance.PersistenceCapable, int, java.lang.String, java.lang.String, int)"><B>settingStringField(PersistenceCapable, int, String, String, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html#setTmpClassLoader(boolean)"><B>setTmpClassLoader(boolean)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/PCEnhancerTask.html" title="class in org.apache.openjpa.ant">PCEnhancerTask</A>
<DD>Set whether or not to use a default class loader for loading
 the unenhanced classes.
<DT><A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html#setToken(java.lang.String)"><B>setToken(String)</B></A> - 
Method in class org.apache.openjpa.ant.<A HREF="./org/apache/openjpa/ant/ApplicationIdToolTask.html" title="class in org.apache.openjpa.ant">ApplicationIdToolTask</A>
<DD>Set the token to separate stringified primary key field values.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#setToken(java.lang.String)"><B>setToken(String)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The token to use to separate stringified primary key field values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#setTool(org.apache.openjpa.jdbc.meta.ReverseMappingTool)"><B>setTool(ReverseMappingTool)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#setTool(org.apache.openjpa.jdbc.meta.ReverseMappingTool)"><B>setTool(ReverseMappingTool)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Set the reverse mapping tool using this customizer.
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#setTopic(java.lang.String)"><B>setTopic(String)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>Sets the JMS Topic name.
<DT><A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html#setTopicConnectionFactory(java.lang.String)"><B>setTopicConnectionFactory(String)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/JMSRemoteCommitProvider.html" title="class in org.apache.openjpa.event">JMSRemoteCommitProvider</A>
<DD>Sets the JMS TopicConnectionFactory name.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#setTrackChanges(boolean)"><B>setTrackChanges(boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Whether proxies produced by this factory will use <A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util"><CODE>ChangeTracker</CODE></A>s
 to try to cut down on data store operations at the cost of some extra
 bookkeeping overhead.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setTrackChangesByType(boolean)"><B>setTrackChangesByType(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setTrackChangesByType(boolean)"><B>setTrackChangesByType(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#setTrackChangesByType(boolean)"><B>setTrackChangesByType(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>If a large number of objects will be created, modified, or deleted
 during this transaction setting this option to true will reduce memory
 usage if you perform periodic flushes by tracking changes at the type
 level instead of the instance level, resulting in more aggressive cache
 invalidation.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setTrackChangesByType(boolean)"><B>setTrackChangesByType(boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#setTrackChangesByType(boolean)"><B>setTrackChangesByType(boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>If a large number of objects will be created, modified, or deleted
 during this transaction setting this option to true will reduce memory
 usage if you perform periodic flushes by tracking changes at the type
 level instead of the instance level, resulting in more aggressive cache
 invalidation.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#setTrackKeys(boolean)"><B>setTrackKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/MapChangeTracker.html#setTrackKeys(boolean)"><B>setTrackKeys(boolean)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTracker.html" title="interface in org.apache.openjpa.util">MapChangeTracker</A>
<DD>Whether to track keys or values.
<DT><A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html#setTrackKeys(boolean)"><B>setTrackKeys(boolean)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/MapChangeTrackerImpl.html" title="class in org.apache.openjpa.util">MapChangeTrackerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#setTrackParameters(boolean)"><B>setTrackParameters(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>Whether to track parameters for the purposes of reporting exceptions.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setTransactionIsolation(java.lang.String)"><B>setTransactionIsolation(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The transaction isolation level to use at the database level.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setTransactionIsolation(int)"><B>setTransactionIsolation(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>Set the proper transaction isolation level constant from
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html" title="class or interface in java.sql"><CODE>Connection</CODE></A>, or -1 for the default level.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setTransactionIsolation(java.lang.String)"><B>setTransactionIsolation(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setTransactionIsolation(int)"><B>setTransactionIsolation(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html#setTransactionIsolation(int)"><B>setTransactionIsolation(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/ConfiguringConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">ConfiguringConnectionDecorator</A>
<DD>The transaction isolation level.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setTransactionIsolation(int)"><B>setTransactionIsolation(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#setTransactionListenerCallbackMode(int)"><B>setTransactionListenerCallbackMode(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>The callback mode for handling exceptions from transaction event
 listeners.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#setTransactionListenerCallbackMode(int)"><B>setTransactionListenerCallbackMode(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#setTransactionListenerCallbackMode(int)"><B>setTransactionListenerCallbackMode(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setTransactionListenerCallbackMode(org.apache.openjpa.persistence.CallbackMode)"><B>setTransactionListenerCallbackMode(CallbackMode)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#setTransactionListenerCallbackMode(java.util.EnumSet)"><B>setTransactionListenerCallbackMode(EnumSet&lt;CallbackMode&gt;)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#setTransactionListenerCallbackMode(org.apache.openjpa.persistence.CallbackMode)"><B>setTransactionListenerCallbackMode(CallbackMode)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>The <A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><CODE>CallbackMode</CODE></A> flag for handling transaction listener
 exceptions.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html#setTransactionListenerCallbackMode(java.util.EnumSet)"><B>setTransactionListenerCallbackMode(EnumSet&lt;CallbackMode&gt;)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManagerSPI.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManagerSPI</A>
<DD>The <A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence"><CODE>CallbackMode</CODE></A> flags for handling transaction listener
 exceptions.
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#setTransactionManagerMethod(java.lang.String)"><B>setTransactionManagerMethod(String)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>Set the method to invoke to get the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionManager.html" title="class or interface in javax.transaction"><CODE>TransactionManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html#setTransactionManagerName(java.lang.String)"><B>setTransactionManagerName(String)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/JNDIManagedRuntime.html" title="class in org.apache.openjpa.ee">JNDIManagedRuntime</A>
<DD>Set the location of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/TransactionManager.html" title="class or interface in javax.transaction"><CODE>TransactionManager</CODE></A> in JNDI.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setTransactionMode(java.lang.String)"><B>setTransactionMode(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Specifies the behavior of the transaction model.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setTransactionMode(java.lang.String)"><B>setTransactionMode(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setTransactionModeManaged(boolean)"><B>setTransactionModeManaged(boolean)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Set whether managed transactions are being used.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setTransactionModeManaged(boolean)"><B>setTransactionModeManaged(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#setTransactionTimeout(int)"><B>setTransactionTimeout(int)</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#setTransactionType(javax.persistence.spi.PersistenceUnitTransactionType)"><B>setTransactionType(PersistenceUnitTransactionType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setTransient(boolean)"><B>setTransient(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Return whether this is a transient field.
<DT><A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html#setTransmitPersistedObjectIds(boolean)"><B>setTransmitPersistedObjectIds(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/RemoteCommitProviderValue.html" title="class in org.apache.openjpa.conf">RemoteCommitProviderValue</A>
<DD>The cached decorators.
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html#setTransmitPersistedObjectIds(boolean)"><B>setTransmitPersistedObjectIds(boolean)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEventManager.html" title="class in org.apache.openjpa.event">RemoteCommitEventManager</A>
<DD>Whether the oids of added instances will be transmitted.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Records the sequence type.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Set the column's SQL type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#setType(int)"><B>setType(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>Set the type of sequence.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel">UUIDHexSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel">UUIDStringSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Traversal bookkeeping info.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setType(java.lang.Class)"><B>setType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#setType(int)"><B>setType(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>The sequence type.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setType(java.lang.Class)"><B>setType(Class)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The value class.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setType(java.lang.Class)"><B>setType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#setType(java.lang.Class)"><B>setType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setType(java.lang.Class)"><B>setType(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#setType(java.lang.Class)"><B>setType(Class)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Set type.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#setTypeAlias(java.lang.String)"><B>setTypeAlias(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Sets the alias for the described type.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setTypeCode(int)"><B>setTypeCode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setTypeCode(int)"><B>setTypeCode(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The type code of the value class.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setTypeCode(int)"><B>setTypeCode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setTypeCode(int)"><B>setTypeCode(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setTyped(java.sql.PreparedStatement, int, java.lang.Object, org.apache.openjpa.jdbc.schema.Column, int, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>setTyped(PreparedStatement, int, Object, Column, int, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set a column value into a prepared statement.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setTypeMap(java.lang.String)"><B>setTypeMap(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set the SQL type map overrides.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setTypeMap(java.util.Properties)"><B>setTypeMap(Properties)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Map of JDBC-name to Java-type-name entries that allows customization
 of reverse mapping columns to field types.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#setTypeMap(java.util.Map)"><B>setTypeMap(Map)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setTypeName(java.lang.String)"><B>setTypeName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>The database-specific SQL type of this column.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setTypeOverride(java.lang.Class)"><B>setTypeOverride(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setTypeOverride(java.lang.Class)"><B>setTypeOverride(Class)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>User-supplied type overriding assumed type based on field.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setTypeOverride(java.lang.Class)"><B>setTypeOverride(Class)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#setTypes(java.util.Set)"><B>setTypes(Set)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>Set of persistent type names supplied by user.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#setTypes(java.lang.String)"><B>setTypes(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>Set of semicolon-separated persistent type names supplied by user via
 auto-configuration.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setUnicodeStream(int, java.io.InputStream, int)"><B>setUnicodeStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setUnicodeStream(int, java.io.InputStream, int)"><B>setUnicodeStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#setUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>setUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Raw unique constraint information.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Index.html#setUnique(boolean)"><B>setUnique(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Index.html" title="class in org.apache.openjpa.jdbc.schema">Index</A>
<DD>Set whether this is a UNIQUE index.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#setUnique(boolean)"><B>setUnique(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#setUnique(boolean)"><B>setUnique(boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Specify that the query will return only 1
 result, rather than a collection.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#setUnique(boolean)"><B>setUnique(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#setUnknown(java.sql.PreparedStatement, int, java.lang.Object, org.apache.openjpa.jdbc.schema.Column)"><B>setUnknown(PreparedStatement, int, Object, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Set a completely unknown parameter into a prepared statement.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#setUnproxyable(java.lang.String)"><B>setUnproxyable(String)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Provided for auto-configuration.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#setup()"><B>setup()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>Setup transient state used by this factory based on the
 current configuration, which will subsequently be locked down.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#setUpdatable(int, boolean)"><B>setUpdatable(int, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>Whether the column at the given index is updatable in this context.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html#setUpdateAction(int)"><B>setUpdateAction(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ForeignKey.html" title="class in org.apache.openjpa.jdbc.schema">ForeignKey</A>
<DD>Set the update action for the key.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setUpdateManager(java.lang.String)"><B>setUpdateManager(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>UpdateManager</CODE></A> to use for managing SQL updates.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html#setUpdateManager(org.apache.openjpa.jdbc.kernel.UpdateManager)"><B>setUpdateManager(UpdateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>
<DD>The <A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>UpdateManager</CODE></A> for runtime data store interaction.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setUpdateManager(java.lang.String)"><B>setUpdateManager(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#setUpdateManager(org.apache.openjpa.jdbc.kernel.UpdateManager)"><B>setUpdateManager(UpdateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setUpdateStrategy(int)"><B>setUpdateStrategy(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Set the update strategy.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setURL(int, java.net.URL)"><B>setURL(int, URL)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#setURL(java.lang.String, java.net.URL)"><B>setURL(String, URL)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#setURL(int, java.net.URL)"><B>setURL(int, URL)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setURLs(java.util.Collection)"><B>setURLs(Collection)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html" title="class or interface in java.net"><CODE>URL</CODE></A>s of metadata files or jars supplied by user.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#setURLs(java.lang.String)"><B>setURLs(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>Set of semicolon-separated <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html" title="class or interface in java.net"><CODE>URL</CODE></A>s of metadata files or jars
 supplied by user via auto-configuration.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html#setUseAliases(boolean)"><B>setUseAliases(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ClassTableJDBCSeq</A>
<DD>Whether to use type alises for primary key values in place of class
 names.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setUseBuiltinIdentityClass(boolean)"><B>setUseBuiltinIdentityClass(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to use single field identity where possible.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setUseBuiltinIdentityClass(boolean)"><B>setUseBuiltinIdentityClass(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use built in identity classes when possible.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setUseClassCriteria(boolean)"><B>setUseClassCriteria(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setUseClassCriteria(boolean)"><B>setUseClassCriteria(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setUseClassCriteria(boolean)"><B>setUseClassCriteria(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Whether to use class criteria when joining to related type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setUseClassCriteria(boolean)"><B>setUseClassCriteria(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#setUseClassCriteria(boolean)"><B>setUseClassCriteria(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Whether to use class criteria when joining to related type.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setUseDataStoreIdentity(boolean)"><B>setUseDataStoreIdentity(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to use datastore identity by default.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setUseDataStoreIdentity(boolean)"><B>setUseDataStoreIdentity(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use datastore identity when possible.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setUseForeignKeyName(boolean)"><B>setUseForeignKeyName(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to use foreign key names to name relations.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setUseForeignKeyName(boolean)"><B>setUseForeignKeyName(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set whether the foreign key name will be used to generate
 relation names.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setUseGenericCollections(boolean)"><B>setUseGenericCollections(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to use generic collections on one-to-many and many-to-many
 relations instead of untyped collections.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setUseGenericCollections(boolean)"><B>setUseGenericCollections(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Whether to use generic collections on one-to-many and many-to-many
 relations instead of untyped collections.
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#setUseParentClassloader(boolean)"><B>setUseParentClassloader(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>Whether we want to delegate to the parent ClassLoader
 for resolveing classes.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html#setUsePCRegistry(boolean)"><B>setUsePCRegistry(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataDefaults.html" title="class in org.apache.openjpa.meta">AbstractMetaDataDefaults</A>
<DD>Whether to attempt to use the information from registered classes
 to populate metadata defaults.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#setUserObject(java.lang.Object)"><B>setUserObject(Object)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Arbitrary user object associated with the edge.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setUseSchemaName(boolean)"><B>setUseSchemaName(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Set whether to use the schema name when naming the classes.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setUseSchemaName(boolean)"><B>setUseSchemaName(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Set whether the schema name will be included in the generated
 class name for each table.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setUsesImplData(java.lang.Boolean)"><B>setUsesImplData(Boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field uses impl data in conjunction with standard
 field data when acting on a <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setUsesIntermediate(boolean)"><B>setUsesIntermediate(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field uses intermediate data when loading/storing
 information through a <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#setValid(boolean)"><B>setValid(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Whether this row has information set on it.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#setValid(boolean)"><B>setValid(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setValidate(int)"><B>setValidate(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The metadata validation level.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#setValidate(int, boolean)"><B>setValidate(int, boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>The metadata validation level.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setValidateFalseReturnsHollow(boolean)"><B>setValidateFalseReturnsHollow(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to return hollow instances to broker lookups with a
 <code>validate</code> parameter of false.
<DT><A HREF="./org/apache/openjpa/conf/Compatibility.html#setValidateTrueChecksStore(boolean)"><B>setValidateTrueChecksStore(boolean)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/Compatibility.html" title="class in org.apache.openjpa.conf">Compatibility</A>
<DD>Whether to check the datastore for the existence of a nontransactional
 cached object in broker lookups with a <code>validate</code> parameter
 of true.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#setValidating(boolean)"><B>setValidating(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Whether this is a validating parser.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Lit.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Lit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>The discriminator value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>Raw discriminator value string.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>The value of this literal.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setValueGenerated(boolean)"><B>setValueGenerated(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setValueIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setValueIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setValueIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setValueIndex(Index)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Index on this value's columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setValueIndex(org.apache.openjpa.jdbc.schema.Index)"><B>setValueIndex(Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setValueMappedBy(java.lang.String)"><B>setValueMappedBy(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html#setValueMappedBy(java.lang.String)"><B>setValueMappedBy(String)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>
<DD>The field that this value shares a mapping with.
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#setValueMappedBy(java.lang.String)"><B>setValueMappedBy(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setValueSequenceName(java.lang.String)"><B>setValueSequenceName(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The value sequence name, or null for none.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setValueStrategy(int)"><B>setValueStrategy(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>The strategy to use for insert value generation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#setValueUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>setValueUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#setValueUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>setValueUnique(Unique)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Unique constraint on this value's columns, or null if none.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#setValueUnique(org.apache.openjpa.jdbc.schema.Unique)"><B>setValueUnique(Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Joins.html#setVariable(java.lang.String)"><B>setVariable(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Joins.html" title="interface in org.apache.openjpa.jdbc.sql">Joins</A>
<DD>Set the variable name being traversed into with the next join.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html#setVariable(java.lang.String)"><B>setVariable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.SelectResult.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.SelectResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#setVariable(java.lang.String)"><B>setVariable(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#setVersion(org.apache.openjpa.jdbc.meta.Version)"><B>setVersion(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html#setVersion(org.apache.openjpa.jdbc.meta.Version)"><B>setVersion(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#setVersion(org.apache.openjpa.jdbc.meta.Version)"><B>setVersion(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html#setVersion(org.apache.openjpa.jdbc.meta.Version)"><B>setVersion(Version)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">VersionStrategy</A>
<DD>Set the version that uses this strategy.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the version indicator for this instance, as loaded from the
 data store.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Sets the current version object that this data was loaded from.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#setVersion(java.lang.Object)"><B>setVersion(Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#setVersion(boolean)"><B>setVersion(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field holds optimistic version information.
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#setVersion(java.lang.Long)"><B>setVersion(Long)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Set the version number of the object.
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#setVersionCheckOnReadLock(boolean)"><B>setVersionCheckOnReadLock(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Whether or not we should force a version check at commit
 time when a read lock is requested in order to verify read
 consistency.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setVersionColumnName(java.lang.String)"><B>setVersionColumnName(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default base name for version identity columns, or null to the mapping's
 built-in name.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#setVersionStrategy(java.lang.String)"><B>setVersionStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>Default version strategy for base class mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#setVersionStrategy(java.lang.String)"><B>setVersionStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>Default version strategy alias.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#setVersionStrategy(java.lang.String)"><B>setVersionStrategy(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Default version strategy for base class mappings.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#setVersionStrategy(org.apache.openjpa.jdbc.meta.VersionStrategy)"><B>setVersionStrategy(VersionStrategy)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#setVersionUpdateOnWriteLock(boolean)"><B>setVersionUpdateOnWriteLock(boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>Whether or not we should force an update to the version at commit
 time when a write lock is requested.
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html#setView(int)"><B>setView(int)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html" title="interface in org.apache.openjpa.util">ProxyMaps.ProxyEntrySet</A>
<DD>Set what entry view this set exposes.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#setWarningAction(java.lang.String)"><B>setWarningAction(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>What to do with SQL warnings.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html#setWarningHandler(org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.SQLWarningHandler)"><B>setWarningHandler(LoggingConnectionDecorator.SQLWarningHandler)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/LoggingConnectionDecorator.html" title="class in org.apache.openjpa.lib.jdbc">LoggingConnectionDecorator</A>
<DD>What to do with SQL warnings.
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#setWeight(double)"><B>setWeight(double)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>Set the weight of the edge.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#setWrapIndent(java.lang.String)"><B>setWrapIndent(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setWriteLockLevel(java.lang.String)"><B>setWriteLockLevel(String)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The default write lock level to use during non-optimistic transactions.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#setWriteLockLevel(int)"><B>setWriteLockLevel(int)</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>The numeric write lock level.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setWriteLockLevel(java.lang.String)"><B>setWriteLockLevel(String)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#setWriteLockLevel(int)"><B>setWriteLockLevel(int)</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#setWriteLockLevel(int)"><B>setWriteLockLevel(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#setWriteLockLevel(int)"><B>setWriteLockLevel(int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>The lock level to use for locking dirtied objects.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#setWriteLockLevel(int)"><B>setWriteLockLevel(int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlan.html#setWriteLockMode(javax.persistence.LockModeType)"><B>setWriteLockMode(LockModeType)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlan.html" title="interface in org.apache.openjpa.persistence">FetchPlan</A>
<DD>The lock level to use for locking dirtied objects.
<DT><A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html#setWriteLockMode(javax.persistence.LockModeType)"><B>setWriteLockMode(LockModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/FetchPlanImpl.html" title="class in org.apache.openjpa.persistence">FetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html#setWriteLockMode(javax.persistence.LockModeType)"><B>setWriteLockMode(LockModeType)</B></A> - 
Method in interface org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlan.html" title="interface in org.apache.openjpa.persistence.jdbc">JDBCFetchPlan</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html#setWriteLockMode(javax.persistence.LockModeType)"><B>setWriteLockMode(LockModeType)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCFetchPlanImpl.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCFetchPlanImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#setWriter(java.io.Writer)"><B>setWriter(Writer)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>The writer to write source to, or null to write to default file.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html#setWriter(java.io.Writer)"><B>setWriter(Writer)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool</A>
<DD>The stream to write to for the creation of SQL scripts.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.html#setWriter(java.io.Writer)"><B>setWriter(Writer)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.html" title="class in org.apache.openjpa.meta">MetaDataTool</A>
<DD>The writer to generate metadata to.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#setXMLAnnotationParser(org.apache.openjpa.persistence.AnnotationPersistenceXMLMetaDataParser)"><B>setXMLAnnotationParser(AnnotationPersistenceXMLMetaDataParser)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Set the JAXB XML annotation parser.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#setXmlname(java.lang.String)"><B>setXmlname(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setXmlname(java.lang.String)"><B>setXmlname(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#setXmlname(java.lang.String)"><B>setXmlname(String)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Set xml element or attribute name.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#setXmlnamespace(java.lang.String)"><B>setXmlnamespace(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setXmlnamespace(java.lang.String)"><B>setXmlnamespace(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#setXmlnamespace(java.lang.String)"><B>setXmlnamespace(String)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Set namespace.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#setXMLParser(org.apache.openjpa.persistence.XMLPersistenceMetaDataParser)"><B>setXMLParser(XMLPersistenceMetaDataParser)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>Set the metadata parser.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#setXmlRootElement(boolean)"><B>setXmlRootElement(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setXmlRootElement(boolean)"><B>setXmlRootElement(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#setXmlRootElement(boolean)"><B>setXmlRootElement(boolean)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#setXmltype(int)"><B>setXmltype(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#setXmltype(int)"><B>setXmltype(int)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#setXmltype(int)"><B>setXmltype(int)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>Set xmltype
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#SHORT"><B>SHORT</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#SHORT_OBJ"><B>SHORT_OBJ</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#shorten(java.lang.String, int)"><B>shorten(String, int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Shorten the specified name to the specified target name.
<DT><A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util"><B>ShortId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for short fields.<DT><A HREF="./org/apache/openjpa/util/ShortId.html#ShortId(java.lang.Class, java.lang.Short)"><B>ShortId(Class, Short)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#ShortId(java.lang.Class, java.lang.String)"><B>ShortId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#ShortId(java.lang.Class, short)"><B>ShortId(Class, short)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#ShortId(java.lang.Class, short, boolean)"><B>ShortId(Class, short, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html#shutdownOnClose"><B>shutdownOnClose</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DerbyDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DerbyDictionary</A>
<DD>If true, we will shutdown the embedded database when closing
 the DataSource.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html#signal()"><B>signal()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent">Condition</A>
<DD>Wakes up one waiting thread.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html#signal(org.apache.openjpa.lib.util.concurrent.WaitQueue.QueuedSync)"><B>signal(WaitQueue.QueuedSync)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue.WaitNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html#signalAll()"><B>signalAll()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Condition.html" title="interface in org.apache.openjpa.lib.util.concurrent">Condition</A>
<DD>Wakes up all waiting threads.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema"><B>SimpleDriverDataSource</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Non-pooling driver data source.<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#SimpleDriverDataSource()"><B>SimpleDriverDataSource()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/SimpleNode.html" title="class in org.apache.openjpa.kernel.jpql"><B>SimpleNode</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/jpql/package-summary.html">org.apache.openjpa.kernel.jpql</A><DD>Base node implementation for all JPQL nodes.<DT><A HREF="./org/apache/openjpa/lib/util/SimpleRegex.html" title="class in org.apache.openjpa.lib.util"><B>SimpleRegex</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Allows for simple regex style testing of strings.<DT><A HREF="./org/apache/openjpa/lib/util/SimpleRegex.html#SimpleRegex(java.lang.String, boolean)"><B>SimpleRegex(String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/SimpleRegex.html" title="class in org.apache.openjpa.lib.util">SimpleRegex</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop"><B>SimpleResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>An almost stateless <A HREF="./org/apache/openjpa/lib/rop/ResultList.html" title="interface in org.apache.openjpa.lib.rop"><CODE>ResultList</CODE></A> designed for use with result
 object providers backed by efficient random-access data structures, such
 as the <A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop"><CODE>ListResultObjectProvider</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#SimpleResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>SimpleResultList(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#simulateLocking"><B>simulateLocking</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html" title="class in org.apache.openjpa.event"><B>SingleJVMRemoteCommitProvider</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Single-JVM-only implementation of <A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitProvider</CODE></A>
 that listens for object modifications and propagates those changes
 to other SingleJVMRemoteCommitProviders in the same JVM.<DT><A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html#SingleJVMRemoteCommitProvider()"><B>SingleJVMRemoteCommitProvider()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/SingleJVMRemoteCommitProvider.html" title="class in org.apache.openjpa.event">SingleJVMRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery.CachedList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#size(org.apache.openjpa.kernel.exps.Value)"><B>size(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#size()"><B>size()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return the number of rows in this result.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Sized.html#size"><B>size</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Sized.html" title="class in org.apache.openjpa.jdbc.sql">Sized</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Override if desired.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#size(org.apache.openjpa.kernel.exps.Value)"><B>size(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return an expression representing the given condition.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#size(org.apache.openjpa.kernel.exps.Value)"><B>size(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#size()"><B>size()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Return the number of items in the input, or <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#MAX_VALUE" title="class or interface in java.lang"><CODE>Integer.MAX_VALUE</CODE></A>
 if the size in unknown.
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns the number of key-value mappings in this map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentLinkedQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentLinkedQueue</A>
<DD>Returns the number of elements in this queue.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns the number of key-value mappings in this Map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns the number of elements in this set.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Return the number of internal class loaders.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#size()"><B>size()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html#SIZE_LAST"><B>SIZE_LAST</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html" title="interface in org.apache.openjpa.jdbc.kernel">LRSSizes</A>
<DD>Mode for using <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/ResultSet.html#last()" title="class or interface in java.sql"><CODE>ResultSet.last()</CODE></A> to calcualte the size of
 large result sets.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html#SIZE_QUERY"><B>SIZE_QUERY</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html" title="interface in org.apache.openjpa.jdbc.kernel">LRSSizes</A>
<DD>Mode for using a query to calculate the size of large result sets.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html#SIZE_UNKNOWN"><B>SIZE_UNKNOWN</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/LRSSizes.html" title="interface in org.apache.openjpa.jdbc.kernel">LRSSizes</A>
<DD>Mode for returning <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#MAX_VALUE" title="class or interface in java.lang"><CODE>Integer.MAX_VALUE</CODE></A> for the size of
 large result sets.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Sized.html" title="class in org.apache.openjpa.jdbc.sql"><B>Sized</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A sized value.<DT><A HREF="./org/apache/openjpa/jdbc/sql/Sized.html#Sized(java.lang.Object, int)"><B>Sized(Object, int)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Sized.html" title="class in org.apache.openjpa.jdbc.sql">Sized</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/SizedMap.html" title="interface in org.apache.openjpa.lib.util"><B>SizedMap</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> type that maintains a maximum size, automatically
 removing entries when the maximum is exceeded.<DT><A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html#skip(long)"><B>skip(long)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/DocTypeReader.html" title="class in org.apache.openjpa.lib.xml">DocTypeReader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html#skipEnhance(serp.bytecode.BCMethod)"><B>skipEnhance(BCMethod)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#sleep(long)"><B>sleep(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Performs a <tt>Thread.sleep</tt> using this unit.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html#sm"><B>sm</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ConnectionInfo.html" title="class in org.apache.openjpa.jdbc.kernel">ConnectionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#smallintTypeName"><B>smallintTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#SOFT"><B>SOFT</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>Soft reference marker.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#SOFT"><B>SOFT</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>Soft reference marker.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html#SOFT"><B>SOFT</B></A> - 
Static variable in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util">ReferenceMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#softMap"><B>softMap</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>The map for expired references.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#softMapOverflowRemoved(java.lang.Object, java.lang.Object)"><B>softMapOverflowRemoved(Object, Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Called from <A HREF="./org/apache/openjpa/lib/util/SizedMap.html#overflowRemoved(java.lang.Object, java.lang.Object)"><CODE>SizedMap.overflowRemoved(java.lang.Object, java.lang.Object)</CODE></A> in the soft map.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#softMapValueExpired(java.lang.Object)"><B>softMapValueExpired(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Called when a value expires from the soft map.
<DT><A HREF="./org/apache/openjpa/lib/rop/SoftRandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop"><B>SoftRandomAccessResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>Specialization of the <A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop"><CODE>RandomAccessResultList</CODE></A> that only maintains
 soft references to instantiated objects.<DT><A HREF="./org/apache/openjpa/lib/rop/SoftRandomAccessResultList.html#SoftRandomAccessResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>SoftRandomAccessResultList(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SoftRandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">SoftRandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta"><B>SourceTracker</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Interface that can optionally be implemented by metadata
 to include the source file from which the metadata was originally parsed.<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTrackers.html" title="class in org.apache.openjpa.lib.meta"><B>SourceTrackers</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Utility class for performing common operations on <A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta"><CODE>SourceTracker</CODE></A>s.<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTrackers.html#SourceTrackers()"><B>SourceTrackers()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTrackers.html" title="class in org.apache.openjpa.lib.meta">SourceTrackers</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#SPEC_JPA"><B>SPEC_JPA</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#splitExpressions(java.lang.String, char, int)"><B>splitExpressions(String, char, int)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Split the given expression list into distinct expressions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Raw.html#sql"><B>sql</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Raw.html" title="class in org.apache.openjpa.jdbc.sql">Raw</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#SQL_ARRAY"><B>SQL_ARRAY</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#SQL_DATE"><B>SQL_DATE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#SQL_OBJECT"><B>SQL_OBJECT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql"><B>SQLBuffer</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Buffer for SQL statements that can be used to create
 java.sql.PreparedStatements.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#SQLBuffer(org.apache.openjpa.jdbc.sql.DBDictionary)"><B>SQLBuffer(DBDictionary)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#SQLBuffer(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>SQLBuffer(SQLBuffer)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Copy constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>SQLEmbed</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>Simple listener which embeds its SQL argument into the query.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#SQLEmbed()"><B>SQLEmbed()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html#sqlEquals(java.lang.String)"><B>sqlEquals(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>
<DD>Compare internal SQL without resolving subselects or stringifying
 parameters.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql"><B>SQLExceptions</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Helper class for converting a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html" title="class or interface in java.sql"><CODE>SQLException</CODE></A> into
 the appropriate OpenJPA type.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html#SQLExceptions()"><B>SQLExceptions()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLExceptions.html" title="class in org.apache.openjpa.jdbc.sql">SQLExceptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>SQLExpression</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><CODE>SQLEmbed</CODE></A> directly</I><DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html#SQLExpression()"><B>SQLExpression()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLExpression</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactory.html" title="interface in org.apache.openjpa.jdbc.sql"><B>SQLFactory</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Factory for SQL constructs.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql"><B>SQLFactoryImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Default factory for SQL abstraction constructs.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#SQLFactoryImpl()"><B>SQLFactoryImpl()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#sqlFactoryPlugin"><B>sqlFactoryPlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html#sqlFile"><B>sqlFile</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/MappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">MappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc"><B>SQLFormatter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/jdbc/package-summary.html">org.apache.openjpa.lib.jdbc</A><DD>Converts single-line SQL strings into nicely-formatted
 multi-line, indented statements.<DT><A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html#SQLFormatter()"><B>SQLFormatter()</B></A> - 
Constructor for class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/SQLFormatter.html" title="class in org.apache.openjpa.lib.jdbc">SQLFormatter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>SQLServerDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for MS SQLServer.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#SQLServerDictionary()"><B>SQLServerDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel"><B>SQLStoreQuery</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>A SQL query.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#SQLStoreQuery(org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>SQLStoreQuery(JDBCStore)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>Construct a query managed by the given context.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>SQLValue</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD><B>Deprecated.</B>&nbsp;<I>Use <A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><CODE>SQLEmbed</CODE></A> directly</I><DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html#SQLValue()"><B>SQLValue()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLValue</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html#sqlWriter"><B>sqlWriter</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">MappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#sqrt(org.apache.openjpa.kernel.exps.Value)"><B>sqrt(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#sqrt(org.apache.openjpa.kernel.exps.Value)"><B>sqrt(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the square root of the given value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#sqrt(org.apache.openjpa.kernel.exps.Value)"><B>sqrt(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#SRC_ANNOTATIONS"><B>SRC_ANNOTATIONS</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#SRC_OTHER"><B>SRC_OTHER</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html#SRC_XML"><B>SRC_XML</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html#start"><B>start</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startCascade(java.lang.Object, org.xml.sax.Attributes)"><B>startCascade(Object, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Lazily parse cascades.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#startCDATA()"><B>startCDATA()</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#startClass(java.lang.String, org.xml.sax.Attributes)"><B>startClass(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Start a class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startClass(java.lang.String, org.xml.sax.Attributes)"><B>startClass(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#startClassElement(java.lang.String, org.xml.sax.Attributes)"><B>startClassElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method marking the start of an element within a declared
 class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startClassElement(java.lang.String, org.xml.sax.Attributes)"><B>startClassElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#startClassMapping(org.apache.openjpa.meta.ClassMetaData, boolean, org.xml.sax.Attributes)"><B>startClassMapping(ClassMetaData, boolean, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startClassMapping(org.apache.openjpa.meta.ClassMetaData, boolean, org.xml.sax.Attributes)"><B>startClassMapping(ClassMetaData, boolean, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to add mapping attributes to class.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#startClassMappingElement(java.lang.String, org.xml.sax.Attributes)"><B>startClassMappingElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startClassMappingElement(java.lang.String, org.xml.sax.Attributes)"><B>startClassMappingElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to parse a mapping element within a class.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/AutomaticManagedRuntime.html" title="class in org.apache.openjpa.ee">AutomaticManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/InvocationManagedRuntime.html" title="class in org.apache.openjpa.ee">InvocationManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>StartConfiguration stub.
<DT><A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/AbstractRemoteCommitProvider.html" title="class in org.apache.openjpa.event">AbstractRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/NativeJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">NativeJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLFactoryImpl.html" title="class in org.apache.openjpa.jdbc.sql">SQLFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Configurable.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configurable.html" title="interface in org.apache.openjpa.lib.conf">Configurable</A>
<DD>Invoked before bean property configuration is begun on this object.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html#startConfiguration()"><B>startConfiguration()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceMetaDataFactory.html" title="class in org.apache.openjpa.persistence">PersistenceMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#startDataRequest(java.lang.Object)"><B>startDataRequest(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#startDataRequest(java.lang.Object)"><B>startDataRequest(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#startDataRequest(java.lang.Object)"><B>startDataRequest(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Informs this receiver about the application element for which a
 subsequent data request will be made.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#startDTD(java.lang.String, java.lang.String, java.lang.String)"><B>startDTD(String, String, String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#startElement(java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#startElement(java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#startElement(java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>Override this method marking the start of some element.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#startElement(java.lang.String)"><B>startElement(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>Start an element with the current attribute settings.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html#startElement(java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.ConfigurationParser.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation.ConfigurationParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startEmbeddedId(org.xml.sax.Attributes)"><B>startEmbeddedId(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse embedded-id.
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#startEntity(java.lang.String)"><B>startEntity(String)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#startFieldMapping(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>startFieldMapping(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>Extend to clear annotation mapping info.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startFieldMapping(org.apache.openjpa.meta.FieldMetaData, org.xml.sax.Attributes)"><B>startFieldMapping(FieldMetaData, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to add field mapping data.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startGeneratedValue(org.xml.sax.Attributes)"><B>startGeneratedValue(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse generated-value.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startId(org.xml.sax.Attributes)"><B>startId(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse id.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startIdClass(org.xml.sax.Attributes)"><B>startIdClass(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse id-class.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#startLob(org.xml.sax.Attributes)"><B>startLob(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startLob(org.xml.sax.Attributes)"><B>startLob(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse lob.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startNamedNativeQuery(org.xml.sax.Attributes)"><B>startNamedNativeQuery(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse native-named-query.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startNamedQuery(org.xml.sax.Attributes)"><B>startNamedQuery(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse named-query.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#startPackage(java.lang.String, org.xml.sax.Attributes)"><B>startPackage(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Start a package.
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#startPackageElement(java.lang.String, org.xml.sax.Attributes)"><B>startPackageElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method marking the start of an element within a declared
 package.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startQueryHint(org.xml.sax.Attributes)"><B>startQueryHint(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse query-hint.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startQueryString(org.xml.sax.Attributes)"><B>startQueryString(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startSequenceGenerator(org.xml.sax.Attributes)"><B>startSequenceGenerator(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse sequence-generator.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#startsWith(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>startsWith(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#startsWith(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>startsWith(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return whether the first string starts with the second.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#startsWith(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>startsWith(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html#startSystemElement(java.lang.String, org.xml.sax.Attributes)"><B>startSystemElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/CFMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">CFMetaDataParser</A>
<DD>Override this method marking the start of an element outside of any
 package or class.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startSystemElement(java.lang.String, org.xml.sax.Attributes)"><B>startSystemElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#startSystemMappingElement(java.lang.String, org.xml.sax.Attributes)"><B>startSystemMappingElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startSystemMappingElement(java.lang.String, org.xml.sax.Attributes)"><B>startSystemMappingElement(String, Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Implement to parse a mapping element outside of any class.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#startTracking()"><B>startTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#startTracking()"><B>startTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#startTracking()"><B>startTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#startTracking()"><B>startTracking()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>Reset the state of the change tracker, and turn change tracking back
 on if it has been disabled.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#startVersion(org.xml.sax.Attributes)"><B>startVersion(Attributes)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Parse version.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>StateComparisonVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Uses a state image to determine whether concurrency violations take place.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#StateComparisonVersionStrategy()"><B>StateComparisonVersionStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.CustomUpdate.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>StateComparisonVersionStrategy.CustomUpdate</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Row implementation we use to pass to versionable mappings so they
 can set up the where conditions we need to add to update statements.<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance"><B>StateManager</B></A> - Interface in <A HREF="./org/apache/openjpa/enhance/package-summary.html">org.apache.openjpa.enhance</A><DD>Internal state manager for managed instances.<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel"><B>StateManagerImpl</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Implementation of the <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A> interface for use
 with this runtime.<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#StateManagerImpl(java.lang.Object, org.apache.openjpa.meta.ClassMetaData, org.apache.openjpa.kernel.BrokerImpl)"><B>StateManagerImpl(Object, ClassMetaData, BrokerImpl)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Constructor; supply id, type metadata, and owning persistence manager.
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#STDERR"><B>STDERR</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#STDOUT"><B>STDOUT</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheScheduler.html" title="class in org.apache.openjpa.datacache">DataCacheScheduler</A>
<DD>Stop the associated thread if there and stop the current runnable.
<DT><A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html#stopTracking()"><B>stopTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractChangeTracker.html" title="class in org.apache.openjpa.util">AbstractChangeTracker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#stopTracking()"><B>stopTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#stopTracking()"><B>stopTracking()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ChangeTracker.html#stopTracking()"><B>stopTracking()</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ChangeTracker.html" title="interface in org.apache.openjpa.util">ChangeTracker</A>
<DD>Tell the tracker to stop tracking changes for its container.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#storageLimitationsFatal"><B>storageLimitationsFatal</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#storageWarning(java.lang.Object, java.lang.Object)"><B>storageWarning(Object, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Warn that a particular value could not be stored precisely.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#store(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>store(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#store(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet)"><B>store(OpenJPAStateManager, BitSet)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html#store"><B>store</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>
<DD>Store.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html#store(org.apache.openjpa.meta.ClassMetaData[], org.apache.openjpa.meta.QueryMetaData[], org.apache.openjpa.meta.SequenceMetaData[], int, java.util.Map)"><B>store(ClassMetaData[], QueryMetaData[], SequenceMetaData[], int, Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MetaDataPlusMappingFactory.html" title="class in org.apache.openjpa.jdbc.meta">MetaDataPlusMappingFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#store(int, java.lang.Object)"><B>store(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#store(int, java.lang.Object)"><B>store(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#store(int, java.lang.Object)"><B>store(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#store(int, java.lang.Object)"><B>store(int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the value of the field with the given index as from the external
 object value.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#store(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>store(OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Store all loaded fields of the state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCData.html#store(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet)"><B>store(OpenJPAStateManager, BitSet)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel">PCData</A>
<DD>Store the given fields from the state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#store(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>store(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#store(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet)"><B>store(OpenJPAStateManager, BitSet)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#store(int, java.lang.Object)"><B>store(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html#store(java.io.OutputStream, java.lang.String)"><B>store(OutputStream, String)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/FormatPreservingProperties.html" title="class in org.apache.openjpa.lib.util">FormatPreservingProperties</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#store(org.apache.openjpa.meta.ClassMetaData[], org.apache.openjpa.meta.QueryMetaData[], org.apache.openjpa.meta.SequenceMetaData[], int, java.util.Map)"><B>store(ClassMetaData[], QueryMetaData[], SequenceMetaData[], int, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#store"><B>store</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#store(org.apache.openjpa.meta.ClassMetaData[], org.apache.openjpa.meta.QueryMetaData[], org.apache.openjpa.meta.SequenceMetaData[], int, java.util.Map)"><B>store(ClassMetaData[], QueryMetaData[], SequenceMetaData[], int, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html#store(org.apache.openjpa.meta.ClassMetaData[], org.apache.openjpa.meta.QueryMetaData[], org.apache.openjpa.meta.SequenceMetaData[], int, java.util.Map)"><B>store(ClassMetaData[], QueryMetaData[], SequenceMetaData[], int, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta">DelegatingMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#store(org.apache.openjpa.meta.ClassMetaData[], org.apache.openjpa.meta.QueryMetaData[], org.apache.openjpa.meta.SequenceMetaData[], int, java.util.Map)"><B>store(ClassMetaData[], QueryMetaData[], SequenceMetaData[], int, Map)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>Store the given metadata.
<DT><A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html#store(org.apache.openjpa.meta.ClassMetaData[], org.apache.openjpa.meta.QueryMetaData[], org.apache.openjpa.meta.SequenceMetaData[], int, java.util.Map)"><B>store(ClassMetaData[], QueryMetaData[], SequenceMetaData[], int, Map)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NoneMetaDataFactory.html" title="class in org.apache.openjpa.meta">NoneMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#STORE"><B>STORE</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#store(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>store(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>Store the data and version information for this object from the
 given state manager.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html#store(org.apache.openjpa.meta.ClassMetaData, java.util.Collection)"><B>store(ClassMetaData, Collection)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html" title="class in org.apache.openjpa.xmlstore">XMLFileHandler</A>
<DD>Stores all instances in <code>datas</code> into the appropriate file,
 as dictated by <code>meta</code>.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#STORE_DEFAULT"><B>STORE_DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#STORE_PER_CLASS"><B>STORE_PER_CLASS</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataFactory.html#STORE_VERBOSE"><B>STORE_VERBOSE</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataFactory.html" title="interface in org.apache.openjpa.meta">MetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeBoolean(int, boolean)"><B>storeBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeBoolean(int, boolean)"><B>storeBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeBoolean(int, boolean)"><B>storeBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeBoolean(int, boolean)"><B>storeBoolean(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeBoolean(int, boolean)"><B>storeBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeBooleanField(int, boolean)"><B>storeBooleanField(int, boolean)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeBooleanField(int, boolean)"><B>storeBooleanField(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeBooleanField(int, boolean)"><B>storeBooleanField(int, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeByte(int, byte)"><B>storeByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeByte(int, byte)"><B>storeByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeByte(int, byte)"><B>storeByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeByte(int, byte)"><B>storeByte(int, byte)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeByte(int, byte)"><B>storeByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeByteField(int, byte)"><B>storeByteField(int, byte)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeByteField(int, byte)"><B>storeByteField(int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeByteField(int, byte)"><B>storeByteField(int, byte)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence"><B>StoreCache</B></A> - Interface in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Represents the L2 cache over the data store.<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence"><B>StoreCacheImpl</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Implements the L2 cache over the data store via delegation to DataCache.<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#StoreCacheImpl(org.apache.openjpa.persistence.EntityManagerFactoryImpl, org.apache.openjpa.datacache.DataCache)"><B>StoreCacheImpl(EntityManagerFactoryImpl, DataCache)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>Constructor; supply delegate.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeChar(int, char)"><B>storeChar(int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeChar(int, char)"><B>storeChar(int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeChar(int, char)"><B>storeChar(int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeChar(int, char)"><B>storeChar(int, char)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeChar(int, char)"><B>storeChar(int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeCharField(int, char)"><B>storeCharField(int, char)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeCharField(int, char)"><B>storeCharField(int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeCharField(int, char)"><B>storeCharField(int, char)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#storeCharsAsNumbers"><B>storeCharsAsNumbers</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>StoreCollectionFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Base class for strategies that are stored as a collection, even if
 their field value is something else.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#StoreCollectionFieldStrategy()"><B>StoreCollectionFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel"><B>StoreContext</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Represents a set of managed objects and their environment.<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html#storeData"><B>storeData</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.Compilation.html" title="class in org.apache.openjpa.kernel">QueryImpl.Compilation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeDouble(int, double)"><B>storeDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeDouble(int, double)"><B>storeDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeDouble(int, double)"><B>storeDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeDouble(int, double)"><B>storeDouble(int, double)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeDouble(int, double)"><B>storeDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeDoubleField(int, double)"><B>storeDoubleField(int, double)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeDoubleField(int, double)"><B>storeDoubleField(int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeDoubleField(int, double)"><B>storeDoubleField(int, double)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util"><B>StoreException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Base exception for data store errors.<DT><A HREF="./org/apache/openjpa/util/StoreException.html#StoreException(java.lang.String)"><B>StoreException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#StoreException(org.apache.openjpa.lib.util.Localizer.Message)"><B>StoreException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#StoreException(java.lang.Throwable)"><B>StoreException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#StoreException(java.lang.String, java.lang.Throwable)"><B>StoreException(String, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreException.html#StoreException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>StoreException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreException.html" title="class in org.apache.openjpa.util">StoreException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html" title="class in org.apache.openjpa.util"><B>StoreFacadeTypeRegistry</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Repository of store-specific facade classes.<DT><A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html#StoreFacadeTypeRegistry()"><B>StoreFacadeTypeRegistry()</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StoreFacadeTypeRegistry.html" title="class in org.apache.openjpa.util">StoreFacadeTypeRegistry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeField(int, java.lang.Object)"><B>storeField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeField(int, java.lang.Object)"><B>storeField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#storeField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, java.lang.Object, java.lang.Object)"><B>storeField(OpenJPAStateManager, FieldMetaData, Object, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Store a given value at the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeField(int, java.lang.Object)"><B>storeField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeField(int, java.lang.Object)"><B>storeField(int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the value of the field with the given index as an object.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#storeField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData)"><B>storeField(OpenJPAStateManager, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Store field-level information from the given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeField(int, java.lang.Object)"><B>storeField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeFloat(int, float)"><B>storeFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeFloat(int, float)"><B>storeFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeFloat(int, float)"><B>storeFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeFloat(int, float)"><B>storeFloat(int, float)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeFloat(int, float)"><B>storeFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeFloatField(int, float)"><B>storeFloatField(int, float)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeFloatField(int, float)"><B>storeFloatField(int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeFloatField(int, float)"><B>storeFloatField(int, float)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#storeImplData(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>storeImplData(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Store impl data from the given state manager.
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#storeImplData(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, boolean)"><B>storeImplData(OpenJPAStateManager, FieldMetaData, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Store impl data for the given field.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeInt(int, int)"><B>storeInt(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeInt(int, int)"><B>storeInt(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeInt(int, int)"><B>storeInt(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeInt(int, int)"><B>storeInt(int, int)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeInt(int, int)"><B>storeInt(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#storeIntermediate(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData)"><B>storeIntermediate(OpenJPAStateManager, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Store the intermediate field value for the given field.
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeIntField(int, int)"><B>storeIntField(int, int)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeIntField(int, int)"><B>storeIntField(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeIntField(int, int)"><B>storeIntField(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#storeLargeNumbersAsStrings"><B>storeLargeNumbersAsStrings</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/StoreListener.html" title="interface in org.apache.openjpa.event"><B>StoreListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Listener for when persistent instances are stored to the database.<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeLong(int, long)"><B>storeLong(int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeLong(int, long)"><B>storeLong(int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeLong(int, long)"><B>storeLong(int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeLong(int, long)"><B>storeLong(int, long)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeLong(int, long)"><B>storeLong(int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeLongField(int, long)"><B>storeLongField(int, long)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeLongField(int, long)"><B>storeLongField(int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeLongField(int, long)"><B>storeLongField(int, long)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel"><B>StoreManager</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Interface to be implemented by data store mechanisms to interact with
 this runtime.<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#storeNull(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, java.lang.Object)"><B>storeNull(OpenJPAStateManager, FieldMetaData, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Store null value at the given field.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeObject(int, java.lang.Object)"><B>storeObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeObject(int, java.lang.Object)"><B>storeObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeObject(int, java.lang.Object)"><B>storeObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeObject(int, java.lang.Object)"><B>storeObject(int, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeObject(int, java.lang.Object)"><B>storeObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeObjectField(int, java.lang.Object)"><B>storeObjectField(int, Object)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeObjectField(int, java.lang.Object)"><B>storeObjectField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html#storeObjectField(int, java.lang.Object)"><B>storeObjectField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SaveFieldManager.html" title="class in org.apache.openjpa.kernel">SaveFieldManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeObjectField(int, java.lang.Object)"><B>storeObjectField(int, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel"><B>StoreQuery</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Component that executes queries against the datastore.<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel"><B>StoreQuery.Executor</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>An executor provides a uniform interface to the mechanism for executing
 either an in-memory or datastore query.<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel"><B>StoreQuery.Range</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A query result range.<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html#StoreQuery.Range()"><B>StoreQuery.Range()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html#StoreQuery.Range(long, long)"><B>StoreQuery.Range(long, long)</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html#storeSchema(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>storeSchema(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/DynamicSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">DynamicSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html#storeSchema(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>storeSchema(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/FileSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">FileSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html#storeSchema(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>storeSchema(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/LazySchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">LazySchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html#storeSchema(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>storeSchema(SchemaGroup)</B></A> - 
Method in interface org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaFactory.html" title="interface in org.apache.openjpa.jdbc.schema">SchemaFactory</A>
<DD>Record the schema group after changes may have been made.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#storeSchema(org.apache.openjpa.jdbc.schema.SchemaGroup)"><B>storeSchema(SchemaGroup)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeShort(int, short)"><B>storeShort(int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeShort(int, short)"><B>storeShort(int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeShort(int, short)"><B>storeShort(int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeShort(int, short)"><B>storeShort(int, short)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeShort(int, short)"><B>storeShort(int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeShortField(int, short)"><B>storeShortField(int, short)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeShortField(int, short)"><B>storeShortField(int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeShortField(int, short)"><B>storeShortField(int, short)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#storesLowerCaseIdentifiers()"><B>storesLowerCaseIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#storesLowerCaseQuotedIdentifiers()"><B>storesLowerCaseQuotedIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#storesMixedCaseIdentifiers()"><B>storesMixedCaseIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#storesMixedCaseQuotedIdentifiers()"><B>storesMixedCaseQuotedIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#storeString(int, java.lang.String)"><B>storeString(int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#storeString(int, java.lang.String)"><B>storeString(int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeString(int, java.lang.String)"><B>storeString(int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html#storeString(int, java.lang.String)"><B>storeString(int, String)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>
<DD>Set the given external value back into the given field.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeString(int, java.lang.String)"><B>storeString(int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/FieldConsumer.html#storeStringField(int, java.lang.String)"><B>storeStringField(int, String)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A>
<DD>Set the value of the given field.
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#storeStringField(int, java.lang.String)"><B>storeStringField(int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#storeStringField(int, java.lang.String)"><B>storeStringField(int, String)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#storesUpperCaseIdentifiers()"><B>storesUpperCaseIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#storesUpperCaseQuotedIdentifiers()"><B>storesUpperCaseQuotedIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCDataImpl.html#storeVersion(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>storeVersion(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCDataImpl.html" title="class in org.apache.openjpa.kernel">PCDataImpl</A>
<DD>Store version information from the given state manager.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta"><B>Strategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Interface implemented by all mapping strategies.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/Strategy.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>Strategy</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Mapping strategy.<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta"><B>StrategyInstaller</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Installs mapping strategies.<DT><A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html#StrategyInstaller(org.apache.openjpa.jdbc.meta.MappingRepository)"><B>StrategyInstaller(MappingRepository)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/StrategyInstaller.html" title="class in org.apache.openjpa.jdbc.meta">StrategyInstaller</A>
<DD>Constructor; supply repository.
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#strict"><B>strict</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#STRING"><B>STRING</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps"><B>StringContains</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD><B>Deprecated.</B>&nbsp;<I>Use <code>matches()</code> instead.</I><DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#StringContains()"><B>StringContains()</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util"><B>StringDistance</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>Utilities for calculating string distance.<DT><A HREF="./org/apache/openjpa/lib/util/StringDistance.html#StringDistance()"><B>StringDistance()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/StringDistance.html" title="class in org.apache.openjpa.lib.util">StringDistance</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>StringFieldStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Direct mapping from a string value to a column.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#StringFieldStrategy()"><B>StringFieldStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util"><B>StringId</B></A> - Class in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD><A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util"><CODE>OpenJPAId</CODE></A> subclass appropriate for String fields.<DT><A HREF="./org/apache/openjpa/util/StringId.html#StringId(java.lang.Class, java.lang.String)"><B>StringId(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html#StringId(java.lang.Class, java.lang.String, boolean)"><B>StringId(Class, String, boolean)</B></A> - 
Constructor for class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#stringLength(org.apache.openjpa.kernel.exps.Value)"><B>stringLength(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#stringLength(org.apache.openjpa.kernel.exps.Value)"><B>stringLength(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Returns the number of characters in the String value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#stringLength(org.apache.openjpa.kernel.exps.Value)"><B>stringLength(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#stringLengthFunction"><B>stringLengthFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf"><B>StringListValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A comma-separated list of string values.<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#StringListValue(java.lang.String)"><B>StringListValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf"><B>StringValue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A string <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/lib/conf/StringValue.html#StringValue(java.lang.String)"><B>StringValue(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringValue.html" title="class in org.apache.openjpa.lib.conf">StringValue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#structTypeName"><B>structTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#subclassFetchMode"><B>subclassFetchMode</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/SubclassFetchMode.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>SubclassFetchMode</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Determines how to eager-fetch subclass data.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>SubclassJoinDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Discriminator strategy that outer joins to all possible subclass tables
 to determine the class of an instance.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html#SubclassJoinDiscriminatorStrategy()"><B>SubclassJoinDiscriminatorStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SubclassJoinDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SubclassJoinDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#subList(int, int)"><B>subList(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#subList(int, int)"><B>subList(int, int)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html#subList(int, int)"><B>subList(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#subList(int, int)"><B>subList(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Subquery.html" title="interface in org.apache.openjpa.kernel.exps"><B>Subquery</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Query value representing a subquery.<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#subs"><B>subs</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#SUBS_ANY_JOINABLE"><B>SUBS_ANY_JOINABLE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to select subclasses but without adding any
 class conditions to the select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#SUBS_EXACT"><B>SUBS_EXACT</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to select this class but without adding any
 class conditions to the select.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#SUBS_JOINABLE"><B>SUBS_JOINABLE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to add conditions to the selcet to select this
 class and joinable subclasses only.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#SUBS_NONE"><B>SUBS_NONE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating to add conditions to the select to select this
 class only.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#substring(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>substring(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractDB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractDB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractSQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AbstractSQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AccessDictionary.html" title="class in org.apache.openjpa.jdbc.sql">AccessDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Invoke this database's substring function.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/FirebirdDictionary.html" title="class in org.apache.openjpa.jdbc.sql">FirebirdDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/H2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">H2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InterbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InterbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html" title="class in org.apache.openjpa.jdbc.sql">JDataStoreDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html#substring(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue, org.apache.openjpa.jdbc.kernel.exps.FilterValue)"><B>substring(SQLBuffer, FilterValue, FilterValue, FilterValue)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PointbaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#substring(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>substring(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring(int)" title="class or interface in java.lang"><CODE>String.substring(int)</CODE></A> function on
 the given target with the given args.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#substring(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>substring(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#substringFunctionName"><B>substringFunctionName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#subtract(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>subtract(Value, Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#subtract(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>subtract(Value, Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return a value representing the second value subtracted from the first.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#subtract(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value)"><B>subtract(Value, Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#subtract(java.lang.Object, java.lang.Class, java.lang.Object, java.lang.Class)"><B>subtract(Object, Class, Object, Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Subtract the given values.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#suffix"><B>suffix</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/SuffixMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta"><B>SuffixMetaDataFilter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Filters metadata iteration based on resource name suffix.<DT><A HREF="./org/apache/openjpa/lib/meta/SuffixMetaDataFilter.html#SuffixMetaDataFilter(java.lang.String)"><B>SuffixMetaDataFilter(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/SuffixMetaDataFilter.html" title="class in org.apache.openjpa.lib.meta">SuffixMetaDataFilter</A>
<DD>Constructor; supply suffix to match against.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#sum(org.apache.openjpa.kernel.exps.Value)"><B>sum(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#sum(org.apache.openjpa.kernel.exps.Value)"><B>sum(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the max of the given value for all matches.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#sum(org.apache.openjpa.kernel.exps.Value)"><B>sum(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>SunOneManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> implementation for SunONE.<DT><A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html#SunOneManagedRuntime()"><B>SunOneManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/SunOneManagedRuntime.html" title="class in org.apache.openjpa.ee">SunOneManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>SuperclassDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Discriminator strategy that delegates to superclass discriminator.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html#SuperclassDiscriminatorStrategy()"><B>SuperclassDiscriminatorStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>SuperclassVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Version strategy that delegates to the suerpclass version.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html#SuperclassVersionStrategy()"><B>SuperclassVersionStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/SuperclassVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">SuperclassVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html#SUPPORTED"><B>SUPPORTED</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html" title="interface in org.apache.openjpa.enhance">RuntimeUnenhancedClasssesModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html#supportedOptions()"><B>supportedOptions()</B></A> - 
Method in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>
<DD>Return the set of option strings supported by this runtime.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#supportedOptions()"><B>supportedOptions()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#supportsAbstractExecutors()"><B>supportsAbstractExecutors()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#supportsAbstractExecutors()"><B>supportsAbstractExecutors()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#supportsAbstractExecutors()"><B>supportsAbstractExecutors()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Return true if this query supports execution against abstract or
 interface types.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsAlterTableWithAddColumn"><B>supportsAlterTableWithAddColumn</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsAlterTableWithAddColumn()"><B>supportsAlterTableWithAddColumn()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsAlterTableWithDropColumn"><B>supportsAlterTableWithDropColumn</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsAlterTableWithDropColumn()"><B>supportsAlterTableWithDropColumn()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsANSI92EntryLevelSQL()"><B>supportsANSI92EntryLevelSQL()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsANSI92FullSQL()"><B>supportsANSI92FullSQL()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsANSI92IntermediateSQL()"><B>supportsANSI92IntermediateSQL()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsAutoAssign"><B>supportsAutoAssign</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsBatchUpdates()"><B>supportsBatchUpdates()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsCascadeDeleteAction"><B>supportsCascadeDeleteAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsCascadeUpdateAction"><B>supportsCascadeUpdateAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCatalogsInDataManipulation()"><B>supportsCatalogsInDataManipulation()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCatalogsInIndexDefinitions()"><B>supportsCatalogsInIndexDefinitions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCatalogsInPrivilegeDefinitions()"><B>supportsCatalogsInPrivilegeDefinitions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCatalogsInProcedureCalls()"><B>supportsCatalogsInProcedureCalls()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCatalogsInTableDefinitions()"><B>supportsCatalogsInTableDefinitions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsColumnAliasing()"><B>supportsColumnAliasing()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsConvert()"><B>supportsConvert()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsConvert(int, int)"><B>supportsConvert(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCoreSQLGrammar()"><B>supportsCoreSQLGrammar()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsCorrelatedSubqueries()"><B>supportsCorrelatedSubqueries()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsCorrelatedSubselect"><B>supportsCorrelatedSubselect</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsDataDefinitionAndDataManipulationTransactions()"><B>supportsDataDefinitionAndDataManipulationTransactions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsDataManipulationTransactionsOnly()"><B>supportsDataManipulationTransactionsOnly()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#supportsDataStoreExecution()"><B>supportsDataStoreExecution()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html#supportsDataStoreExecution()"><B>supportsDataStoreExecution()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#supportsDataStoreExecution()"><B>supportsDataStoreExecution()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#supportsDataStoreExecution()"><B>supportsDataStoreExecution()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#supportsDataStoreExecution()"><B>supportsDataStoreExecution()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#supportsDataStoreExecution()"><B>supportsDataStoreExecution()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>True if this query supports datastore execution, false if it
 can only run in memory.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsDefaultDeleteAction"><B>supportsDefaultDeleteAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsDefaultUpdateAction"><B>supportsDefaultUpdateAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsDeferredConstraints"><B>supportsDeferredConstraints</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsDeferredForeignKeyConstraints()"><B>supportsDeferredForeignKeyConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Whether or not this dictionary supports deferred foreign key constraints.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsDeferredUniqueConstraints()"><B>supportsDeferredUniqueConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Whether or not this dictionary supports deferred unique constraints.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#supportsDeferredUniqueConstraints()"><B>supportsDeferredUniqueConstraints()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsDeleteAction(int)"><B>supportsDeleteAction(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Whether this database supports the given foreign key delete action.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsDifferentTableCorrelationNames()"><B>supportsDifferentTableCorrelationNames()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#supportsEagerSelect(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsEagerSelect(Select, OpenJPAStateManager, JDBCStore, ClassMapping, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html#supportsEagerSelect(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsEagerSelect(Select, OpenJPAStateManager, JDBCStore, ClassMapping, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">ClassStrategy</A>
<DD>Return true if this strategy can perform the given select from
 the given <code>base</code> mapping.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html#supportsEagerSelect(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsEagerSelect(Select, OpenJPAStateManager, JDBCStore, ClassMapping, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#supportsEagerSelect(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsEagerSelect(Select, OpenJPAStateManager, JDBCStore, ClassMapping, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#supportsEagerSelect(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsEagerSelect(Select, OpenJPAStateManager, JDBCStore, ClassMapping, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsExpressionsInOrderBy()"><B>supportsExpressionsInOrderBy()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsExtendedSQLGrammar()"><B>supportsExtendedSQLGrammar()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsForeignKeys"><B>supportsForeignKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsFullOuterJoins()"><B>supportsFullOuterJoins()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsGetGeneratedKeys()"><B>supportsGetGeneratedKeys()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsGroupBy()"><B>supportsGroupBy()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsGroupByBeyondSelect()"><B>supportsGroupByBeyondSelect()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsGroupByUnrelated()"><B>supportsGroupByUnrelated()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsHaving"><B>supportsHaving</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html#supportsIncrementalFlush()"><B>supportsIncrementalFlush()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSavepointManager.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html#supportsIncrementalFlush()"><B>supportsIncrementalFlush()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InMemorySavepointManager.html" title="class in org.apache.openjpa.kernel">InMemorySavepointManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/SavepointManager.html#supportsIncrementalFlush()"><B>supportsIncrementalFlush()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/SavepointManager.html" title="interface in org.apache.openjpa.kernel">SavepointManager</A>
<DD>Return whether the savepoints generated by this manager
 can handle incremental flushes to the datastore.
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#supportsInMemoryExecution()"><B>supportsInMemoryExecution()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#supportsInMemoryExecution()"><B>supportsInMemoryExecution()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html#supportsInMemoryExecution()"><B>supportsInMemoryExecution()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExpressionStoreQuery.html" title="class in org.apache.openjpa.kernel">ExpressionStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html#supportsInMemoryExecution()"><B>supportsInMemoryExecution()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/MethodStoreQuery.html" title="class in org.apache.openjpa.kernel">MethodStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#supportsInMemoryExecution()"><B>supportsInMemoryExecution()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>True if this query supports in-memory execution, false if it
 can only run against the datastore.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsIntegrityEnhancementFacility()"><B>supportsIntegrityEnhancementFacility()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsLikeEscapeClause()"><B>supportsLikeEscapeClause()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsLimitedOuterJoins()"><B>supportsLimitedOuterJoins()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLocking(org.apache.openjpa.jdbc.sql.Select)"><B>supportsLocking(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns true if a "FOR UPDATE" clause can be used for the specified
 Select object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#supportsLocking()"><B>supportsLocking()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#supportsLocking()"><B>supportsLocking()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#supportsLocking(org.apache.openjpa.jdbc.sql.Select)"><B>supportsLocking(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#supportsLocking()"><B>supportsLocking()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Whether this select can be executed for update.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#supportsLocking()"><B>supportsLocking()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLockingWithDistinctClause"><B>supportsLockingWithDistinctClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLockingWithInnerJoin"><B>supportsLockingWithInnerJoin</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLockingWithMultipleTables"><B>supportsLockingWithMultipleTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLockingWithOrderClause"><B>supportsLockingWithOrderClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLockingWithOuterJoin"><B>supportsLockingWithOuterJoin</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsLockingWithSelectRange"><B>supportsLockingWithSelectRange</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsMinimumSQLGrammar()"><B>supportsMinimumSQLGrammar()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsMixedCaseIdentifiers()"><B>supportsMixedCaseIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsMixedCaseQuotedIdentifiers()"><B>supportsMixedCaseQuotedIdentifiers()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsModOperator"><B>supportsModOperator</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsMultipleNontransactionalResultSets"><B>supportsMultipleNontransactionalResultSets</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsMultipleOpenResults()"><B>supportsMultipleOpenResults()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsMultipleResultSets()"><B>supportsMultipleResultSets()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsMultipleTransactions()"><B>supportsMultipleTransactions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsNamedParameters()"><B>supportsNamedParameters()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsNonNullableColumns()"><B>supportsNonNullableColumns()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsNullDeleteAction"><B>supportsNullDeleteAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsNullTableForGetColumns"><B>supportsNullTableForGetColumns</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsNullTableForGetImportedKeys"><B>supportsNullTableForGetImportedKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsNullTableForGetIndexInfo"><B>supportsNullTableForGetIndexInfo</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsNullTableForGetPrimaryKeys"><B>supportsNullTableForGetPrimaryKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsNullUpdateAction"><B>supportsNullUpdateAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsOpenCursorsAcrossCommit()"><B>supportsOpenCursorsAcrossCommit()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsOpenCursorsAcrossRollback()"><B>supportsOpenCursorsAcrossRollback()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsOpenStatementsAcrossCommit()"><B>supportsOpenStatementsAcrossCommit()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsOpenStatementsAcrossRollback()"><B>supportsOpenStatementsAcrossRollback()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsOrderByUnrelated()"><B>supportsOrderByUnrelated()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsOuterJoins()"><B>supportsOuterJoins()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#supportsParameterDeclarations()"><B>supportsParameterDeclarations()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html#supportsParameterDeclarations()"><B>supportsParameterDeclarations()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SQLStoreQuery.html" title="class in org.apache.openjpa.jdbc.kernel">SQLStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html#supportsParameterDeclarations()"><B>supportsParameterDeclarations()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.html#supportsParameterDeclarations()"><B>supportsParameterDeclarations()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>
<DD>Whether this query supports declared parameters.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsPositionedDelete()"><B>supportsPositionedDelete()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsPositionedUpdate()"><B>supportsPositionedUpdate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsQueryTimeout"><B>supportsQueryTimeout</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/GenericResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">GenericResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/SelectResultObjectProvider.html" title="class in org.apache.openjpa.jdbc.kernel">SelectResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Returns false by default.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#supportsRandomAccess(boolean)"><B>supportsRandomAccess(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#supportsRandomAccess(boolean)"><B>supportsRandomAccess(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return true if the result supports random access.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#supportsRandomAccess(boolean)"><B>supportsRandomAccess(boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Return whether this select can support a random access result set type.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#supportsRandomAccess(boolean)"><B>supportsRandomAccess(boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCResultObjectProvider.html" title="class in org.apache.openjpa.kernel">AbstractPCResultObjectProvider</A>
<DD>Override if desired.
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">ListResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/MergedResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">MergedResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RangeResultObjectProvider.html" title="class in org.apache.openjpa.lib.rop">RangeResultObjectProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html#supportsRandomAccess()"><B>supportsRandomAccess()</B></A> - 
Method in interface org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A>
<DD>Return true if this provider supports random access.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html#supportsRandomAccessResultSet(org.apache.openjpa.jdbc.sql.Select, boolean)"><B>supportsRandomAccessResultSet(Select, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DB2Dictionary.html" title="class in org.apache.openjpa.jdbc.sql">DB2Dictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsRandomAccessResultSet(org.apache.openjpa.jdbc.sql.Select, boolean)"><B>supportsRandomAccessResultSet(Select, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return false if the given select requires a forward-only result set.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#supportsRandomAccessResultSet(org.apache.openjpa.jdbc.sql.Select, boolean)"><B>supportsRandomAccessResultSet(Select, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsRestrictDeleteAction"><B>supportsRestrictDeleteAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsRestrictUpdateAction"><B>supportsRestrictUpdateAction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsResultSetConcurrency(int, int)"><B>supportsResultSetConcurrency(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsResultSetHoldability(int)"><B>supportsResultSetHoldability(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsResultSetType(int)"><B>supportsResultSetType(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSavepoints()"><B>supportsSavepoints()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsSchemaForGetColumns"><B>supportsSchemaForGetColumns</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsSchemaForGetTables"><B>supportsSchemaForGetTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSchemasInDataManipulation()"><B>supportsSchemasInDataManipulation()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSchemasInIndexDefinitions()"><B>supportsSchemasInIndexDefinitions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSchemasInPrivilegeDefinitions()"><B>supportsSchemasInPrivilegeDefinitions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSchemasInProcedureCalls()"><B>supportsSchemasInProcedureCalls()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSchemasInTableDefinitions()"><B>supportsSchemasInTableDefinitions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Return whether this mapping can perform the given select type.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#supportsSelect(org.apache.openjpa.jdbc.sql.Select, int, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>supportsSelect(Select, int, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsSelectEndIndex"><B>supportsSelectEndIndex</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsSelectForUpdate"><B>supportsSelectForUpdate</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSelectForUpdate()"><B>supportsSelectForUpdate()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsSelectStartIndex"><B>supportsSelectStartIndex</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html#supportsSetFetchSize"><B>supportsSetFetchSize</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PostgresDictionary.html" title="class in org.apache.openjpa.jdbc.sql">PostgresDictionary</A>
<DD>Some Postgres drivers do not support the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#setFetchSize(int)" title="class or interface in java.sql"><CODE>Statement.setFetchSize(int)</CODE></A>
 method.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsStatementPooling()"><B>supportsStatementPooling()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsStoredProcedures()"><B>supportsStoredProcedures()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSubqueriesInComparisons()"><B>supportsSubqueriesInComparisons()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSubqueriesInExists()"><B>supportsSubqueriesInExists()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSubqueriesInIns()"><B>supportsSubqueriesInIns()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsSubqueriesInQuantifieds()"><B>supportsSubqueriesInQuantifieds()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsSubselect"><B>supportsSubselect</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsTableCorrelationNames()"><B>supportsTableCorrelationNames()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsTimestampNanos"><B>supportsTimestampNanos</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsTransactionIsolationLevel(int)"><B>supportsTransactionIsolationLevel(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsTransactions()"><B>supportsTransactions()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsUnion()"><B>supportsUnion()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#supportsUnionAll()"><B>supportsUnionAll()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsUniqueConstraints"><B>supportsUniqueConstraints</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsUpdateAction(int)"><B>supportsUpdateAction(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Whether this database supports the given foreign key update action.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#supportsXMLColumn"><B>supportsXMLColumn</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html#suspend()"><B>suspend()</B></A> - 
Method in class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/RegistryManagedRuntime.TransactionManagerRegistryFacade.html" title="class in org.apache.openjpa.ee">RegistryManagedRuntime.TransactionManagerRegistryFacade</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#suspendInJTA()"><B>suspendInJTA()</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>Detect whether or not OpenJPA should suspend the transaction in 
 a managed environment.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html#swapSchemaAndCatalog"><B>swapSchemaAndCatalog</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/InformixDictionary.html" title="class in org.apache.openjpa.jdbc.sql">InformixDictionary</A>
<DD>Informix JDBC metadata for all known drivers returns with the
 table catalog and the table schema name swapped.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql"><B>SybaseDictionary</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>Dictionary for Sybase.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html#SybaseDictionary()"><B>SybaseDictionary()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SybaseDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SybaseDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#syncColumn(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.Column, int, boolean, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table, java.lang.Object, boolean)"><B>syncColumn(MetaDataContext, Column, int, boolean, Table, Table, Object, boolean)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Create a copy of the given column with the raw mapping information
 set correctly, and without settings that match defaults.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#syncColumns(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.Column[], boolean)"><B>syncColumns(MetaDataContext, Column[], boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Sets internal column information to match the given mapped columns.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#syncForeignKey(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)"><B>syncForeignKey(MetaDataContext, ForeignKey, Table, Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Sets internal constraint and column information to match given mapped
 constraint.
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#synchronizeMappings"><B>synchronizeMappings</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#syncIndex(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.Index)"><B>syncIndex(MetaDataContext, Index)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Sets internal index information to match given mapped index.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#syncMappingInfo()"><B>syncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Update <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingInfo</CODE></A> with our current mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#syncMappingInfo()"><B>syncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>Update <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingInfo</CODE></A> with our current mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#syncMappingInfo()"><B>syncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Update <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingInfo</CODE></A> with our current mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#syncMappingInfo()"><B>syncMappingInfo()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Update <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingInfo</CODE></A> with our current mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#syncMappingInfo()"><B>syncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#syncMappingInfo()"><B>syncMappingInfo()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Update <A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><CODE>MappingInfo</CODE></A> with our current mapping information.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#syncOrderColumn(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>syncOrderColumn(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Synchronize internal order column information with the given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#syncStrategy(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>syncStrategy(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Synchronize internal mapping strategy information with the given field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html#syncUnique(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.Unique)"><B>syncUnique(MetaDataContext, Unique)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">MappingInfo</A>
<DD>Sets internal constraint information to match given mapped constraint.
<DT><A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>syncVersion(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.abstractstore.<A HREF="./org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>
<DD>Since this store manager does not provide optimistic locking
 support, this method always returns <code>true</code>.
<DT><A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>syncVersion(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>syncVersion(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>syncVersion(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>syncVersion(OpenJPAStateManager, Object)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>Update the version information in the given state manager to the
 version stored in the data store.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><B>syncVersion(OpenJPAStateManager, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html#syncWith(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>syncWith(ClassMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ClassMappingInfo</A>
<DD>Synchronize internal information with the mapping data for the given
 class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html#syncWith(org.apache.openjpa.jdbc.meta.Discriminator)"><B>syncWith(Discriminator)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/DiscriminatorMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">DiscriminatorMappingInfo</A>
<DD>Synchronize internal information with the mapping data for the given
 discriminator.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html#syncWith(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>syncWith(FieldMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">FieldMappingInfo</A>
<DD>Synchronize internal information with the mapping data for the given
 field.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#syncWith(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>syncWith(ValueMapping)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>Synchronize internal information with the mapping data for the given
 value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html#syncWith(org.apache.openjpa.jdbc.meta.Version)"><B>syncWith(Version)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">VersionMappingInfo</A>
<DD>Synchronize internal information with the mapping data for the given
 version.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#syncWithManagedTransaction()"><B>syncWithManagedTransaction()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Attempt to synchronize with a current managed transaction, returning
 true if successful, false if no managed transaction is active.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#syncWithManagedTransaction()"><B>syncWithManagedTransaction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#syncWithManagedTransaction()"><B>syncWithManagedTransaction()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html#SYNTAX_DATABASE"><B>SYNTAX_DATABASE</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html" title="interface in org.apache.openjpa.jdbc.sql">JoinSyntaxes</A>
<DD>Native database join syntax; outer joins are supported.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html#SYNTAX_SQL92"><B>SYNTAX_SQL92</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html" title="interface in org.apache.openjpa.jdbc.sql">JoinSyntaxes</A>
<DD>ANSI SQL 92 join syntax; outer joins are supported.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html#SYNTAX_TRADITIONAL"><B>SYNTAX_TRADITIONAL</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/JoinSyntaxes.html" title="interface in org.apache.openjpa.jdbc.sql">JoinSyntaxes</A>
<DD>Traditional join syntax; outer joins are not supported.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#SYNTHETIC"><B>SYNTHETIC</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Value for using a synthetic detached state field, which is the default.
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#SYSTEM_LOADER"><B>SYSTEM_LOADER</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>The standard system class loader.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#systemSchemas"><B>systemSchemas</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#systemSchemaSet"><B>systemSchemaSet</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#systemTables"><B>systemTables</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#systemTableSet"><B>systemTableSet</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_T_"><!-- --></A><H2>
<B>T</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#tab()"><B>tab()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#tab(int)"><B>tab(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema"><B>Table</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a database table.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#Table()"><B>Table()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#Table(java.lang.String, org.apache.openjpa.jdbc.schema.Schema)"><B>Table(String, Schema)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#TABLE_ASSOCIATION"><B>TABLE_ASSOCIATION</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Association table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#TABLE_BASE"><B>TABLE_BASE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Primary table for a new base class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#TABLE_NONE"><B>TABLE_NONE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Unmapped table.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#TABLE_SECONDARY"><B>TABLE_SECONDARY</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Secondary table of an existing class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#TABLE_SECONDARY_OUTER"><B>TABLE_SECONDARY_OUTER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Secondary table of an existing class.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html#TABLE_SUBCLASS"><B>TABLE_SUBCLASS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool</A>
<DD>Subclass table.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#tableForUpdateClause"><B>tableForUpdateClause</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><B>TableJDBCSeq</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCSeq.html" title="interface in org.apache.openjpa.jdbc.kernel"><CODE>JDBCSeq</CODE></A> implementation that uses a database table
 for sequence number generation.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#TableJDBCSeq()"><B>TableJDBCSeq()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html" title="class in org.apache.openjpa.jdbc.kernel"><B>TableJDBCSeq.Status</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Helper struct to hold status information.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html#TableJDBCSeq.Status()"><B>TableJDBCSeq.Status()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq.Status</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema"><B>TableSchemaFactory</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Factory that uses an XML schema definition stored in a database table
 to record the system schema.<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#TableSchemaFactory()"><B>TableSchemaFactory()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#tableType"><B>tableType</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>The MySQL table type to use when creating tables; defaults to innodb.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#tableTypes"><B>tableTypes</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html#TAG"><B>TAG</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/GetColumn.html" title="class in org.apache.openjpa.jdbc.kernel.exps">GetColumn</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html#TAG"><B>TAG</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLEmbed.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLEmbed</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html#TAG"><B>TAG</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLExpression.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLExpression</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html#TAG"><B>TAG</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/SQLValue.html" title="class in org.apache.openjpa.jdbc.kernel.exps">SQLValue</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/StringContains.html#TAG"><B>TAG</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/StringContains.html" title="class in org.apache.openjpa.kernel.exps">StringContains</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#TAG"><B>TAG</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.QueuedSync.html#takeOver(org.apache.openjpa.lib.util.concurrent.WaitQueue.WaitNode)"><B>takeOver(WaitQueue.WaitNode)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.QueuedSync.html" title="interface in org.apache.openjpa.lib.util.concurrent">WaitQueue.QueuedSync</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#TCLEAN"><B>TCLEAN</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Transient-Clean
<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event"><B>TCPRemoteCommitProvider</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>TCP-based implementation of <A HREF="./org/apache/openjpa/event/RemoteCommitProvider.html" title="interface in org.apache.openjpa.event"><CODE>RemoteCommitProvider</CODE></A> that
 listens for object modifications and propagates those changes to
 other RemoteCommitProviders over TCP sockets.<DT><A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html#TCPRemoteCommitProvider()"><B>TCPRemoteCommitProvider()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TCPRemoteCommitProvider.html" title="class in org.apache.openjpa.event">TCPRemoteCommitProvider</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#TDIRTY"><B>TDIRTY</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Transient-Dirty
<DT><A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html" title="class in org.apache.openjpa.lib.util"><B>TemporaryClassLoader</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>ClassLoader implementation that allows classes to be temporarily
 loaded and then thrown away.<DT><A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html#TemporaryClassLoader(java.lang.ClassLoader)"><B>TemporaryClassLoader(ClassLoader)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TemporaryClassLoader.html" title="class in org.apache.openjpa.lib.util">TemporaryClassLoader</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html#THREAD_LOADER"><B>THREAD_LOADER</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/MultiClassLoader.html" title="class in org.apache.openjpa.lib.util">MultiClassLoader</A>
<DD>Marker that will be replaced with the context loader of the current
 thread whenever it is discovered in the class loader list.
<DT><A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html#throwException(serp.bytecode.Code, java.lang.Class)"><B>throwException(Code, Class)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A>
<DD>Throw an exception of the given type.
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#throwException(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData)"><B>throwException(OpenJPAStateManager, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Throw an inconsistency exception
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#throwsDec(int)"><B>throwsDec(int)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Append the given value to the internal buffer.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#TIME"><B>TIME</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#timedJoin(java.lang.Thread, long)"><B>timedJoin(Thread, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Performs a timed <tt>Thread.join</tt> using this time unit.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#timedWait(java.lang.Object, long)"><B>timedWait(Object, long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Performs a timed <tt>Object.wait</tt> using this time unit.
<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel"><B>TimeSeededSeq</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>A simplistic implementation of a <A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel"><CODE>Seq</CODE></A> used
 to provide datastore ids.<DT><A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html#TimeSeededSeq()"><B>TimeSeededSeq()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/TimeSeededSeq.html" title="class in org.apache.openjpa.kernel">TimeSeededSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html#TIMESTAMP"><B>TIMESTAMP</B></A> - 
Static variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/JavaSQLTypes.html" title="class in org.apache.openjpa.jdbc.meta">JavaSQLTypes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#timestampTypeName"><B>timestampTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>TimestampVersionStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Uses a timestamp for optimistic versioning.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html#TimestampVersionStrategy()"><B>TimestampVersionStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/TimestampVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">TimestampVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#timeTypeName"><B>timeTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>TimeUnit</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>A <tt>TimeUnit</tt> represents time durations at a given unit of
 granularity and provides utility methods to convert across units,
 and to perform timing and delay operations in these units.<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#tinyintTypeName"><B>tinyintTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#TLOADED"><B>TLOADED</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Transient-Loaded
<DT><A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html#tmpClassLoader"><B>tmpClassLoader</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractNonSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractNonSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/AbstractSequentialResultList.html" title="class in org.apache.openjpa.lib.rop">AbstractSequentialResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns an array containing all of the elements in this set.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArraySet.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArraySet</A>
<DD>Returns an array containing all of the elements in this set; the
 runtime type of the returned array is that of the specified array.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#toArray(java.util.Collection, java.lang.Class)"><B>toArray(Collection, Class)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Helper method to return the given collection as an array.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#toArray()"><B>toArray()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#toArray(java.lang.Object[])"><B>toArray(Object[])</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toBroker(javax.persistence.EntityManager)"><B>toBroker(EntityManager)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Return the underlying broker for the given entity manager facade.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toBrokerFactory(javax.persistence.EntityManagerFactory)"><B>toBrokerFactory(EntityManagerFactory)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Return the underlying broker factory for the given persistence manager
 factory facade.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toBulkOperation(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object[], java.util.Map)"><B>toBulkOperation(ClassMapping, Select, JDBCStore, Object[], Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Returns the SQL for a bulk operation, either a DELETE or an UPDATE.
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#toBytes(long)"><B>toBytes(long)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Returns a 8-byte array built from a long.
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#toBytes(long, byte[])"><B>toBytes(long, byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Build a 8-byte array from a long.
<DT><A HREF="./org/apache/openjpa/meta/InheritanceComparator.html#toClass(java.lang.Object)"><B>toClass(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/InheritanceComparator.html" title="class in org.apache.openjpa.meta">InheritanceComparator</A>
<DD>Subclasses can override this method to extract the class to compare
 on from the elements of the collection.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html#toClass(java.lang.Object)"><B>toClass(Object)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataInheritanceComparator.html" title="class in org.apache.openjpa.meta">MetaDataInheritanceComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html#toCollection(java.lang.Object)"><B>toCollection(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html#toCollection(java.lang.Object)"><B>toCollection(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationMapTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationMapTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html#toCollection(java.lang.Object)"><B>toCollection(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StoreCollectionFieldStrategy</A>
<DD>Convert the field value to a collection.
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#toData(org.apache.openjpa.meta.FieldMetaData, java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>toData(FieldMetaData, Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toData(org.apache.openjpa.meta.FieldMetaData, java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>toData(FieldMetaData, Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given field value to a data value for caching.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html#toDataStoreValue(java.lang.Object)"><B>toDataStoreValue(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/FilterValue.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">FilterValue</A>
<DD>Transform the given value into its datastore equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html#toDataStoreValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, java.lang.Object)"><B>toDataStoreValue(Select, ExpContext, ExpState, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>
<DD>Return the datastore value of the given object in the context of this
 value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, Column[], JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>Return the given column value(s) for the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Translate the given external field value to its datastore equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ByteArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayStreamValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html#toDataStoreValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.ValueMapping, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.schema.Column[], java.lang.Object, int)"><B>toDataStoreValue(OpenJPAStateManager, ValueMapping, JDBCStore, Column[], Object, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedValueHandler</A>
<DD>Helper to convert an object value to its datastore equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, Column[], JDBCStore)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Convert the given object to its datastore value(s).
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ImmutableValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ImmutableValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>Return the given object as its foreign key values.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#toDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">XMLValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#toDataStoreValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toDataStoreValue(ValueMapping, Object, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Translate the given value to its datastore equivalent.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toDays(long)"><B>toDays(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>DAYS.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toDelete(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Select, java.lang.Object[])"><B>toDelete(ClassMapping, Select, Object[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a DELETE statement for the specified Select.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toEmbeddedData(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>toEmbeddedData(Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Return the value to cache for the given embedded PC.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#toEmbeddedDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toEmbeddedDataStoreValue(Object, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>Convert the given Java value to its datastore equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#toEmbeddedDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toEmbeddedDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#toEmbeddedDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toEmbeddedDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#toEmbeddedDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toEmbeddedDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#toEmbeddedDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toEmbeddedDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toEmbeddedField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData, java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>toEmbeddedField(OpenJPAStateManager, ValueMetaData, Object, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given data into an embedded PC field value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#toEmbeddedObjectValue(java.lang.Object)"><B>toEmbeddedObjectValue(Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>Convert the given datastore value to its Java equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#toEmbeddedObjectValue(java.lang.Object)"><B>toEmbeddedObjectValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#toEmbeddedObjectValue(java.lang.Object)"><B>toEmbeddedObjectValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#toEmbeddedObjectValue(java.lang.Object)"><B>toEmbeddedObjectValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#toEmbeddedObjectValue(java.lang.Object)"><B>toEmbeddedObjectValue(Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toEntityManager(org.apache.openjpa.kernel.Broker)"><B>toEntityManager(Broker)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Return a persistence manager facade to the given broker retaining
 previously associated persistence context type.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toEntityManagerFactory(org.apache.openjpa.kernel.BrokerFactory)"><B>toEntityManagerFactory(BrokerFactory)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html#toEnumSet(int)"><B>toEnumSet(int)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence">AutoDetachType</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData, java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>toField(OpenJPAStateManager, FieldMetaData, Object, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given data value into its field value.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toHours(long)"><B>toHours(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>HOURS.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html#token"><B>token</B></A> - 
Variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html#TOKEN_DEFAULT"><B>TOKEN_DEFAULT</B></A> - 
Static variable in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#toKeyDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toKeyDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#toKeyDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toKeyDataStoreValue(Object, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Translate the given key value to its datastore equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#toKeyDataStoreValue(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>toKeyDataStoreValue(Object, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/JavaTypes.html#toList(java.lang.Object, java.lang.Class, boolean)"><B>toList(Object, Class, boolean)</B></A> - 
Static method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/JavaTypes.html" title="class in org.apache.openjpa.meta">JavaTypes</A>
<DD>Helper method to return the given array value as a collection.
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#toLong(byte[])"><B>toLong(byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Build a long from first 8 bytes of the array.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#toLowerCase(org.apache.openjpa.kernel.exps.Value)"><B>toLowerCase(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#toLowerCase(org.apache.openjpa.kernel.exps.Value)"><B>toLowerCase(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the upper case of the given value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#toLowerCase(org.apache.openjpa.kernel.exps.Value)"><B>toLowerCase(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toLowerCaseFunction"><B>toLowerCaseFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toMicros(long)"><B>toMicros(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>MICROSECONDS.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toMillis(long)"><B>toMillis(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>MILLISECONDS.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toMinutes(long)"><B>toMinutes(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>MINUTES.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toNanos(long)"><B>toNanos(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>NANOSECONDS.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toNativeJoin(org.apache.openjpa.jdbc.sql.Join)"><B>toNativeJoin(Join)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Use the given join instance to create SQL joining its tables in
 the database's native syntax.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#toNativeJoin(org.apache.openjpa.jdbc.sql.Join)"><B>toNativeJoin(Join)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html#toNestedData(org.apache.openjpa.meta.ValueMetaData, java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>toNestedData(ValueMetaData, Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCachePCDataImpl.html" title="class in org.apache.openjpa.datacache">DataCachePCDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toNestedData(org.apache.openjpa.meta.ValueMetaData, java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>toNestedData(ValueMetaData, Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given nested value to a cachable value.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toNestedField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData, java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>toNestedField(OpenJPAStateManager, ValueMetaData, Object, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given data value to its field value.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toNestedFields(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData, java.util.Collection, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>toNestedFields(OpenJPAStateManager, ValueMetaData, Collection, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given data value to its field value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toObjectValue(ValueMapping, Object, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ByteArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ByteArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayStreamValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayStreamValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/CharArrayValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">CharArrayValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html#toObjectValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.schema.Column[], int)"><B>toObjectValue(OpenJPAStateManager, ValueMapping, Object, JDBCStore, JDBCFetchConfiguration, Column[], int)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedValueHandler</A>
<DD>Helper to convert a datastore value to its object equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EnumValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">EnumValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ObjectIdValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">ObjectIdValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toObjectValue(ValueMapping, Object, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">XMLValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object)"><B>toObjectValue(ValueMapping, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Translate the given datastore value into its Java equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html#toObjectValue(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toObjectValue(ValueMapping, Object, OpenJPAStateManager, JDBCStore, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta">ValueHandler</A>
<DD>Translate the given datastore value into its Java equivalent.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#tool"><B>tool</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toOpenJPAObjectId(org.apache.openjpa.meta.ClassMetaData, java.lang.Object)"><B>toOpenJPAObjectId(ClassMetaData, Object)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Translate from a Persistence identity object to a OpenJPA one.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toOpenJPAObjectIds(org.apache.openjpa.meta.ClassMetaData, java.lang.Object...)"><B>toOpenJPAObjectIds(ClassMetaData, Object...)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Return an array of OpenJPA oids for the given native oid array.
<DT><A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html#toOpenJPAObjectIds(org.apache.openjpa.meta.ClassMetaData, java.util.Collection)"><B>toOpenJPAObjectIds(ClassMetaData, Collection)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/JPAFacadeHelper.html" title="class in org.apache.openjpa.persistence">JPAFacadeHelper</A>
<DD>Return a collection of OpenJPA oids for the given native oid collection.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#toOpenJPAProperties()"><B>toOpenJPAProperties()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>Return a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> containing the properties necessary to create
 a <A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><CODE>Configuration</CODE></A> that reflects the information in this
 persistence unit info.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html#toOpenJPAProperties(javax.persistence.spi.PersistenceUnitInfo)"><B>toOpenJPAProperties(PersistenceUnitInfo)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceUnitInfoImpl.html" title="class in org.apache.openjpa.persistence">PersistenceUnitInfoImpl</A>
<DD>Return a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util"><CODE>Map</CODE></A> containing the properties necessary to create
 a <A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><CODE>Configuration</CODE></A> that reflects the information in the given
 persistence unit info.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toOperation(java.lang.String, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, long, long, java.lang.String)"><B>toOperation(String, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, long, long, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the SQL for the given selecting operation.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toOperation(java.lang.String, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, long, long, java.lang.String, boolean)"><B>toOperation(String, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, long, long, String, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Return the SQL for the given selecting operation.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html#toOperation(java.lang.String, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, long, long, java.lang.String)"><B>toOperation(String, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, long, long, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/HSQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">HSQLDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#toOrderAlias(int)"><B>toOrderAlias(int)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>Helper method to return the proper order alias for the given order
 column index.
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#toPersistenceCapable(java.lang.Object, java.lang.Object)"><B>toPersistenceCapable(Object, Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html#toPersistenceException(java.lang.Throwable)"><B>toPersistenceException(Throwable)</B></A> - 
Static method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html" title="class in org.apache.openjpa.persistence">PersistenceExceptions</A>
<DD>Convert the given throwable to the proper persistence exception.
<DT><A HREF="./org/apache/openjpa/util/ApplicationIds.html#toPKValues(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><B>toPKValues(Object, ClassMetaData)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ApplicationIds.html" title="class in org.apache.openjpa.util">ApplicationIds</A>
<DD>Return the primary key values for the given object id.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#toPolymorphicConstant(org.apache.openjpa.persistence.jdbc.NonpolymorphicType)"><B>toPolymorphicConstant(NonpolymorphicType)</B></A> - 
Static method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>Return the <A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>ValueMapping</CODE></A> <code>POLY_*</code> constant for
 the given enum value.
<DT><A HREF="./org/apache/openjpa/lib/conf/Configuration.html#toProperties(boolean)"><B>toProperties(boolean)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf">Configuration</A>
<DD>A properties representation of this Configuration.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#toProperties(boolean)"><B>toProperties(boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#toProxyableCollectionType(java.lang.Class)"><B>toProxyableCollectionType(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return the concrete type for proxying.
<DT><A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html#toProxyableMapType(java.lang.Class)"><B>toProxyableMapType(Class)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyManagerImpl.html" title="class in org.apache.openjpa.util">ProxyManagerImpl</A>
<DD>Return the concrete type for proxying.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toRelationData(java.lang.Object, org.apache.openjpa.kernel.StoreContext)"><B>toRelationData(Object, StoreContext)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Return the value to cache for the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/RelationId.html#toRelationDataStoreValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column)"><B>toRelationDataStoreValue(OpenJPAStateManager, Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/RelationId.html" title="interface in org.apache.openjpa.jdbc.meta">RelationId</A>
<DD>Return the serialized value for the given related object, now that
 its id has been assigned.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#toRelationDataStoreValue(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.schema.Column)"><B>toRelationDataStoreValue(OpenJPAStateManager, Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toRelationField(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.ValueMetaData, java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><B>toRelationField(OpenJPAStateManager, ValueMetaData, Object, FetchConfiguration, Object)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given data into a relation field value.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractPCData.html#toRelationFields(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, org.apache.openjpa.kernel.FetchConfiguration)"><B>toRelationFields(OpenJPAStateManager, Object, FetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractPCData.html" title="class in org.apache.openjpa.kernel">AbstractPCData</A>
<DD>Transform the given data into relation field values.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#toResult(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, org.apache.openjpa.lib.rop.ResultObjectProvider, org.apache.openjpa.kernel.StoreQuery.Range)"><B>toResult(StoreQuery, StoreQuery.Executor, ResultObjectProvider, StoreQuery.Range)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>Return the query result for the given result object provider.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toSeconds(long)"><B>toSeconds(long)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>Equivalent to <tt>SECONDS.convert(duration, this)</tt>.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.Select, boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toSelect(Select, boolean, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a SELECT statement in the proper join syntax for the given
 instance.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean, long, long)"><B>toSelect(SQLBuffer, JDBCFetchConfiguration, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, boolean, long, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Combine the given components into a SELECT statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean, long, long, boolean)"><B>toSelect(SQLBuffer, JDBCFetchConfiguration, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, boolean, long, long, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Combine the given components into a SELECT statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean, long, long, boolean, boolean)"><B>toSelect(SQLBuffer, JDBCFetchConfiguration, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, boolean, long, long, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean, long, long, org.apache.openjpa.jdbc.sql.Select)"><B>toSelect(SQLBuffer, JDBCFetchConfiguration, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, boolean, long, long, Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Combine the given components into a SELECT statement.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean, long, long)"><B>toSelect(SQLBuffer, JDBCFetchConfiguration, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, boolean, long, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/EmpressDictionary.html" title="class in org.apache.openjpa.jdbc.sql">EmpressDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#toSelect(boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toSelect(boolean, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#toSelect(boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toSelect(boolean, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#toSelect(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.SQLBuffer, boolean, boolean, long, long, org.apache.openjpa.jdbc.sql.Select)"><B>toSelect(SQLBuffer, JDBCFetchConfiguration, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, SQLBuffer, boolean, boolean, long, long, Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#toSelect(boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toSelect(boolean, JDBCFetchConfiguration)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Return this select as a SQL statement formatted for the current
 dictionary.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#toSelect(boolean, org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration)"><B>toSelect(boolean, JDBCFetchConfiguration)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSelectCount(org.apache.openjpa.jdbc.sql.Select)"><B>toSelectCount(Select)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Create a SELECT COUNT statement in the proper join syntax for the
 given instance.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#toSelectCount()"><B>toSelectCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#toSelectCount()"><B>toSelectCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html#toSelectCount()"><B>toSelectCount()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectExecutor.html" title="interface in org.apache.openjpa.jdbc.sql">SelectExecutor</A>
<DD>Return this select as a COUNT SQL statement formatted for the current
 dictionary.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#toSelectCount()"><B>toSelectCount()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.SequenceFactory.html#toSequence(java.lang.Class, java.lang.String)"><B>toSequence(Class, String)</B></A> - 
Method in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.SequenceFactory.html" title="interface in org.apache.openjpa.meta">SequenceMetaData.SequenceFactory</A>
<DD>Transform the given class named in metadata into a sequence.
<DT><A HREF="./org/apache/openjpa/lib/util/Bytes.html#toShort(byte[])"><B>toShort(byte[])</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Bytes.html" title="class in org.apache.openjpa.lib.util">Bytes</A>
<DD>Build a short from first 2 bytes of the array.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toSQL92Join(org.apache.openjpa.jdbc.sql.Join, boolean, boolean)"><B>toSQL92Join(Join, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Use the given join instance to create SQL joining its tables in
 the SQL92 style.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/QueryResultMapping.html" title="class in org.apache.openjpa.jdbc.meta">QueryResultMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Column.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A>
<DD>Returns the column name.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Constraint.html" title="class in org.apache.openjpa.jdbc.schema">Constraint</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Schema.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema">Schema</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Sequence.html" title="class in org.apache.openjpa.jdbc.schema">Sequence</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Table.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html#toString(java.sql.DatabaseMetaData)"><B>toString(DatabaseMetaData)</B></A> - 
Static method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionaryFactory.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionaryFactory</A>
<DD>Return a string containing all the property values of the given
 database metadata.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Raw.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Raw.html" title="class in org.apache.openjpa.jdbc.sql">Raw</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#toString()"><B>toString()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Implement toString to generate SQL string for profiling/debuggging.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.JPQLNode.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.JPQLNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.kernel.jpql.<A HREF="./org/apache/openjpa/kernel/jpql/JPQLExpressionBuilder.ParsedJPQL.html" title="class in org.apache.openjpa.kernel.jpql">JPQLExpressionBuilder.ParsedJPQL</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingConnection.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingConnection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDataSource.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/CodeFormat.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/CodeFormat.html" title="class in org.apache.openjpa.lib.util">CodeFormat</A>
<DD>Return the internal buffer as a string.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.Entry.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap.Entry</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/CopyOnWriteArrayList.html" title="class in org.apache.openjpa.lib.util.concurrent">CopyOnWriteArrayList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Returns a string identifying this lock, as well as its lock
 state.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/Localizer.Message.html" title="class in org.apache.openjpa.lib.util">Localizer.Message</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Return a copy of the internal value template with all parameters
 substituted with their current values.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FetchGroup.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/QueryMetaData.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/QueryMetaData.html" title="class in org.apache.openjpa.meta">QueryMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/SequenceMetaData.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#toString(java.lang.StringBuilder)"><B>toString(StringBuilder)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationBuilder.html" title="class in org.apache.openjpa.persistence">AnnotationBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/ArgumentException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ArgumentException.html" title="class in org.apache.openjpa.persistence">ArgumentException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityExistsException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityExistsException.html" title="class in org.apache.openjpa.persistence">EntityExistsException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityNotFoundException.html" title="class in org.apache.openjpa.persistence">EntityNotFoundException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/InvalidStateException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/InvalidStateException.html" title="class in org.apache.openjpa.persistence">InvalidStateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NonUniqueResultException.html" title="class in org.apache.openjpa.persistence">NonUniqueResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/NoResultException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/NoResultException.html" title="class in org.apache.openjpa.persistence">NoResultException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OptimisticLockException.html" title="class in org.apache.openjpa.persistence">OptimisticLockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceException.html" title="class in org.apache.openjpa.persistence">PersistenceException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/RollbackException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RollbackException.html" title="class in org.apache.openjpa.persistence">RollbackException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigDecimalId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigDecimalId.html" title="class in org.apache.openjpa.util">BigDecimalId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/BigIntegerId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/BigIntegerId.html" title="class in org.apache.openjpa.util">BigIntegerId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ByteId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ByteId.html" title="class in org.apache.openjpa.util">ByteId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CharId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CharId.html" title="class in org.apache.openjpa.util">CharId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DateId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DateId.html" title="class in org.apache.openjpa.util">DateId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/DoubleId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/DoubleId.html" title="class in org.apache.openjpa.util">DoubleId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#toString(java.lang.Object)"><B>toString(Object)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Safely stringify the given object.
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#toString(java.util.Collection)"><B>toString(Collection)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Safely stringify the given objects.
<DT><A HREF="./org/apache/openjpa/util/Exceptions.html#toString(org.apache.openjpa.util.ExceptionInfo)"><B>toString(ExceptionInfo)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Exceptions.html" title="class in org.apache.openjpa.util">Exceptions</A>
<DD>Stringify the given exception.
<DT><A HREF="./org/apache/openjpa/util/FloatId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/FloatId.html" title="class in org.apache.openjpa.util">FloatId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/IntId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/IntId.html" title="class in org.apache.openjpa.util">IntId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/LockException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/LockException.html" title="class in org.apache.openjpa.util">LockException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAException.html#toString()"><B>toString()</B></A> - 
Method in exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAException.html" title="class in org.apache.openjpa.util">OpenJPAException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ShortId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ShortId.html" title="class in org.apache.openjpa.util">ShortId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/StringId.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/StringId.html" title="class in org.apache.openjpa.util">StringId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/ObjectData.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore">ObjectData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toTraditionalJoin(org.apache.openjpa.jdbc.sql.Join)"><B>toTraditionalJoin(Join)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>Use the given join instance to create SQL joining its tables in
 the traditional style.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toUpdate(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.JDBCStore, java.lang.Object[], java.util.Map)"><B>toUpdate(ClassMapping, Select, JDBCStore, Object[], Map)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#toUpperCase(org.apache.openjpa.kernel.exps.Value)"><B>toUpperCase(Value)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#toUpperCase(org.apache.openjpa.kernel.exps.Value)"><B>toUpperCase(Value)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Return the upper case of the given value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#toUpperCase(org.apache.openjpa.kernel.exps.Value)"><B>toUpperCase(Value)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#toUpperCaseFunction"><B>toUpperCaseFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html#toURLAction(java.io.File)"><B>toURLAction(File)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/J2DoPrivHelper.html" title="class in org.apache.openjpa.lib.util">J2DoPrivHelper</A>
<DD>Return a PrivilegedExceptionAction object for f.toURL().
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#toXMLName(java.lang.String)"><B>toXMLName(String)</B></A> - 
Static method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Convert <code>propName</code> to a lowercase-with-hyphens-style string.
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#TRACE"><B>TRACE</B></A> - 
Static variable in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#TRACE"><CODE>Log.TRACE</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message.
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#TRACE"><CODE>Log.TRACE</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#trace(java.lang.Object)"><B>trace(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#trace(java.lang.Object, java.lang.Throwable)"><B>trace(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#TRACE_STR"><B>TRACE_STR</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#transactional(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>transactional(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Make the given instances transactional.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#transactional(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>transactional(Object, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#transactional(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>transactional(Object, boolean, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Make the given object transactional.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#transactional(java.lang.Object, boolean)"><B>transactional(Object, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#transactional(java.lang.Object, boolean)"><B>transactional(Object, boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the given object transactional.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#transactionalAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>transactionalAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>Make the given instances transactional.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#transactionalAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>transactionalAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#transactionalAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><B>transactionalAll(Collection, boolean, OpCallbacks)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Make the given objects transactional.
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#transactionalAll(java.util.Collection, boolean)"><B>transactionalAll(Collection, boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#transactionalAll(java.lang.Object[], boolean)"><B>transactionalAll(Object[], boolean)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#transactionalAll(java.util.Collection, boolean)"><B>transactionalAll(Collection, boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the given objects transactional.
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#transactionalAll(java.lang.Object[], boolean)"><B>transactionalAll(Object[], boolean)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Make the given objects transactional.
<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event"><B>TransactionEvent</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>A transactional event.<DT><A HREF="./org/apache/openjpa/event/TransactionEvent.html#TransactionEvent(org.apache.openjpa.kernel.Broker, int, java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)"><B>TransactionEvent(Broker, int, Collection, Collection, Collection, Collection)</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event">TransactionEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event"><B>TransactionEventManager</B></A> - Class in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Manager that can be used to track and notify transaction listeners
 of transaction-related events.<DT><A HREF="./org/apache/openjpa/event/TransactionEventManager.html#TransactionEventManager()"><B>TransactionEventManager()</B></A> - 
Constructor for class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/TransactionEventManager.html" title="class in org.apache.openjpa.event">TransactionEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#transactionIsolation"><B>transactionIsolation</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/TransactionListener.html" title="interface in org.apache.openjpa.event"><B>TransactionListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>Interface for listening to all <A HREF="./org/apache/openjpa/event/TransactionEvent.html" title="class in org.apache.openjpa.event"><CODE>TransactionEvent</CODE></A>s.<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#transactionMode"><B>transactionMode</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence"><B>TransactionRequiredException</B></A> - Exception in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Transaction required.<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#TransactionRequiredException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable[], java.lang.Object, boolean)"><B>TransactionRequiredException(Localizer.Message, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html#TransactionRequiredException(java.lang.String, java.lang.Throwable[], java.lang.Object, boolean)"><B>TransactionRequiredException(String, Throwable[], Object, boolean)</B></A> - 
Constructor for exception org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/TransactionRequiredException.html" title="class in org.apache.openjpa.persistence">TransactionRequiredException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#transferStackTrace(java.lang.Throwable, java.lang.Throwable)"><B>transferStackTrace(Throwable, Throwable)</B></A> - 
Static method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Transfer the stack from one throwable to another, or return
 false if it cannot be done, possibly due to an unsupported Java version.
<DT><A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html#transform(java.lang.ClassLoader, java.lang.String, java.lang.Class, java.security.ProtectionDomain, byte[])"><B>transform(ClassLoader, String, Class, ProtectionDomain, byte[])</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCClassFileTransformer.html" title="class in org.apache.openjpa.enhance">PCClassFileTransformer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/PCState.html#TRANSIENT"><B>TRANSIENT</B></A> - 
Static variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>
<DD>Transient; unmanaged instance
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#translate(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>translate(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>Translate the user-given id or column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#translate(java.lang.Object, org.apache.openjpa.jdbc.sql.Joins)"><B>translate(Object, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingSeq.html" title="class in org.apache.openjpa.kernel">DelegatingSeq</A>
<DD>Translate the OpenJPA exception.
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Translate the given exception based on the broker's implicit behavior.
<DT><A HREF="./org/apache/openjpa/util/RuntimeExceptionTranslator.html#translate(java.lang.RuntimeException)"><B>translate(RuntimeException)</B></A> - 
Method in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/RuntimeExceptionTranslator.html" title="interface in org.apache.openjpa.util">RuntimeExceptionTranslator</A>
<DD>Translate the given exception.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html#TRANSLATOR"><B>TRANSLATOR</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceExceptions.html" title="class in org.apache.openjpa.persistence">PersistenceExceptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#traverse(org.apache.openjpa.meta.FieldMetaData)"><B>traverse(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#traverse(org.apache.openjpa.meta.FieldMetaData)"><B>traverse(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Traverse the given field to generate (possibly) a new configuration 
 state.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#traverse(org.apache.openjpa.meta.FieldMetaData)"><B>traverse(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html#traverseJDBC(org.apache.openjpa.meta.FieldMetaData)"><B>traverseJDBC(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/DelegatingJDBCFetchConfiguration.html" title="class in org.apache.openjpa.jdbc.kernel">DelegatingJDBCFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html#traverseJDBC(org.apache.openjpa.meta.FieldMetaData)"><B>traverseJDBC(FieldMetaData)</B></A> - 
Method in interface org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfiguration.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCFetchConfiguration</A>
<DD>Convenience method to cast traversal to store-specific type.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html#traverseJDBC(org.apache.openjpa.meta.FieldMetaData)"><B>traverseJDBC(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/JDBCFetchConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCFetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#traversePath(org.apache.openjpa.kernel.exps.Path, java.lang.String)"><B>traversePath(Path, String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Traverse the given field in the given path.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#traversePath(org.apache.openjpa.kernel.exps.Path, java.lang.String, boolean, boolean)"><B>traversePath(Path, String, boolean, boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Traverse the given field in the given path.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#traverseStaticField(java.lang.Class, java.lang.String)"><B>traverseStaticField(Class, String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>Return a constant containing the value of the given static field.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#traverseXPath(org.apache.openjpa.kernel.exps.Path, java.lang.String)"><B>traverseXPath(Path, String)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html#trim(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.Boolean)"><B>trim(Value, Value, Boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.kernel.exps.<A HREF="./org/apache/openjpa/jdbc/kernel/exps/JDBCExpressionFactory.html" title="class in org.apache.openjpa.jdbc.kernel.exps">JDBCExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html#trim(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.Boolean)"><B>trim(Value, Value, Boolean)</B></A> - 
Method in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/ExpressionFactory.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionFactory</A>
<DD>Trims the specified specified trimChar from the specified value.
<DT><A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html#trim(org.apache.openjpa.kernel.exps.Value, org.apache.openjpa.kernel.exps.Value, java.lang.Boolean)"><B>trim(Value, Value, Boolean)</B></A> - 
Method in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/InMemoryExpressionFactory.html" title="class in org.apache.openjpa.kernel.exps">InMemoryExpressionFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#trimBothFunction"><B>trimBothFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#trimLeadingFunction"><B>trimLeadingFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#trimTrailingFunction"><B>trimTrailingFunction</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html#TRUE"><B>TRUE</B></A> - 
Static variable in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/EmbeddedMapping.html#TRUE"><B>TRUE</B></A> - 
Static variable in annotation type org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/EmbeddedMapping.html" title="annotation in org.apache.openjpa.persistence.jdbc">EmbeddedMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html#tryLock()"><B>tryLock()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent">Lock</A>
<DD>Acquires the lock only if it is free at the time of invocation.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html#tryLock(long, org.apache.openjpa.lib.util.concurrent.TimeUnit)"><B>tryLock(long, TimeUnit)</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent">Lock</A>
<DD>Acquires the lock if it is free within the given waiting time and the
 current thread has not been <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#interrupt()" title="class or interface in java.lang"><CODE>interrupted</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#tryLock()"><B>tryLock()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Acquires the lock only if it is not held by another thread at the time
 of invocation.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#tryLock(long, org.apache.openjpa.lib.util.concurrent.TimeUnit)"><B>tryLock(long, TimeUnit)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Acquires the lock if it is not held by another thread within the given
 waiting time and the current thread has not been
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#interrupt()" title="class or interface in java.lang"><CODE>interrupted</CODE></A>.
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#type"><B>type</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#type(java.lang.Object)"><B>type(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>Return the type constant for the given object based on its runtime
 class.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html#type(java.lang.Object)"><B>type(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">AnnotationPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#type(java.lang.Object)"><B>type(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/Type.html" title="annotation in org.apache.openjpa.persistence"><B>Type</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Indicates the persistent type of a field, if different than the
 declared type.<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#type(java.lang.Object)"><B>type(Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Return the type constant for the given object based on its runtime
 class.
<DT><A HREF="./org/apache/openjpa/util/OpenJPAId.html#type"><B>type</B></A> - 
Variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/OpenJPAId.html" title="class in org.apache.openjpa.util">OpenJPAId</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#TYPE_BACK"><B>TYPE_BACK</B></A> - 
Static variable in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>An edge (u, v) is a back edge if it creates a cycle back to an
 ancestor in the graph.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#TYPE_BOOLEAN"><B>TYPE_BOOLEAN</B></A> - 
Static variable in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#TYPE_CHAR_OBJ"><B>TYPE_CHAR_OBJ</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#TYPE_CLASS_QUERIES"><B>TYPE_CLASS_QUERIES</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#TYPE_CLASS_QUERIES"><B>TYPE_CLASS_QUERIES</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#TYPE_CLASS_SEQS"><B>TYPE_CLASS_SEQS</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#TYPE_CLASS_SEQS"><B>TYPE_CLASS_SEQS</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#TYPE_COLLECTION"><B>TYPE_COLLECTION</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#TYPE_CONTIGUOUS"><B>TYPE_CONTIGUOUS</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#TYPE_CROSS"><B>TYPE_CROSS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#TYPE_DEFAULT"><B>TYPE_DEFAULT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#TYPE_FEATURE"><B>TYPE_FEATURE</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#TYPE_FORWARD"><B>TYPE_FORWARD</B></A> - 
Static variable in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>An edge (u, v) is a forward edge if it is not a tree or back edge.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#TYPE_INNER"><B>TYPE_INNER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#TYPE_JOINLESS"><B>TYPE_JOINLESS</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating a select can be made without joins.
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#TYPE_MAP"><B>TYPE_MAP</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#TYPE_META"><B>TYPE_META</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#TYPE_META"><B>TYPE_META</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#TYPE_NON_MAPPED_INTERFACE"><B>TYPE_NON_MAPPED_INTERFACE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#TYPE_NONTRANSACTIONAL"><B>TYPE_NONTRANSACTIONAL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#TYPE_NUMBER"><B>TYPE_NUMBER</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#TYPE_NUMBER"><B>TYPE_NUMBER</B></A> - 
Static variable in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#TYPE_OBJECT"><B>TYPE_OBJECT</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Join.html#TYPE_OUTER"><B>TYPE_OUTER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Join.html" title="class in org.apache.openjpa.jdbc.sql">Join</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html#TYPE_PERSISTENCE_AWARE"><B>TYPE_PERSISTENCE_AWARE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/NonPersistentMetaData.html" title="class in org.apache.openjpa.meta">NonPersistentMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#TYPE_PRODUCT"><B>TYPE_PRODUCT</B></A> - 
Static variable in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html#TYPE_PRODUCT_STORE"><B>TYPE_PRODUCT_STORE</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html" title="interface in org.apache.openjpa.conf">OpenJPAProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#TYPE_QUERY"><B>TYPE_QUERY</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#TYPE_QUERY"><B>TYPE_QUERY</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#TYPE_SEQ"><B>TYPE_SEQ</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#TYPE_SEQ"><B>TYPE_SEQ</B></A> - 
Static variable in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html#TYPE_SPEC"><B>TYPE_SPEC</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html" title="interface in org.apache.openjpa.conf">OpenJPAProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html#TYPE_SPEC_STORE"><B>TYPE_SPEC_STORE</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html" title="interface in org.apache.openjpa.conf">OpenJPAProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#TYPE_SQ_STRING"><B>TYPE_SQ_STRING</B></A> - 
Static variable in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html#TYPE_STORE"><B>TYPE_STORE</B></A> - 
Static variable in interface org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAProductDerivation.html" title="interface in org.apache.openjpa.conf">OpenJPAProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html#TYPE_STRING"><B>TYPE_STRING</B></A> - 
Static variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/AbstractExpressionBuilder.html" title="class in org.apache.openjpa.kernel.exps">AbstractExpressionBuilder</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#TYPE_STRING"><B>TYPE_STRING</B></A> - 
Static variable in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Seq.html#TYPE_TRANSACTIONAL"><B>TYPE_TRANSACTIONAL</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/Edge.html#TYPE_TREE"><B>TYPE_TREE</B></A> - 
Static variable in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/Edge.html" title="class in org.apache.openjpa.lib.graph">Edge</A>
<DD>An edge (u, v) is a tree edge if node v was first discovered by
 traversing the edge.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#TYPE_TWO_PART"><B>TYPE_TWO_PART</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Constant indicating a two-part select and load.
<DT><A HREF="./org/apache/openjpa/kernel/exps/Literal.html#TYPE_UNKNOWN"><B>TYPE_UNKNOWN</B></A> - 
Static variable in interface org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util"><B>TypedProperties</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>A specialization of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html" title="class or interface in java.util"><CODE>Properties</CODE></A> map type with added
 convenience methods to retrieve and set options as primitive values.<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#TypedProperties()"><B>TypedProperties()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/lib/util/TypedProperties.html#TypedProperties(java.util.Properties)"><B>TypedProperties(Properties)</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/TypedProperties.html" title="class in org.apache.openjpa.lib.util">TypedProperties</A>
<DD>Construct the properties instance with the given set of defaults.
<DT><A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html#typeMap"><B>typeMap</B></A> - 
Variable in class org.apache.openjpa.jdbc.ant.<A HREF="./org/apache/openjpa/jdbc/ant/ReverseMappingToolTask.html" title="class in org.apache.openjpa.jdbc.ant">ReverseMappingToolTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#typeMap"><B>typeMap</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html#types"><B>types</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/TypesChangedEvent.html" title="class in org.apache.openjpa.datacache"><B>TypesChangedEvent</B></A> - Class in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>An event indicating that instances of given persistent types have
 been modified.<DT><A HREF="./org/apache/openjpa/datacache/TypesChangedEvent.html#TypesChangedEvent(java.lang.Object, java.util.Collection)"><B>TypesChangedEvent(Object, Collection)</B></A> - 
Constructor for class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/TypesChangedEvent.html" title="class in org.apache.openjpa.datacache">TypesChangedEvent</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/datacache/TypesChangedListener.html" title="interface in org.apache.openjpa.datacache"><B>TypesChangedListener</B></A> - Interface in <A HREF="./org/apache/openjpa/datacache/package-summary.html">org.apache.openjpa.datacache</A><DD>An entity that wishes to be notified when types change.</DL>
<HR>
<A NAME="_U_"><!-- --></A><H2>
<B>U</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/conf/StringListValue.html#unalias(java.lang.String)"><B>unalias(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/StringListValue.html" title="class in org.apache.openjpa.lib.conf">StringListValue</A>
<DD>Unalias the value list.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#unalias(java.lang.String)"><B>unalias(String)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Unalias the given setting.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#unalias(java.lang.String, java.lang.String[], boolean)"><B>unalias(String, String[], boolean)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Unalias the given setting.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#uninversable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>uninversable(ValueMapping)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>Return an exception indicating that the relation is invalid
 because it has is based on an inverse foreign key and has independent
 subclasses.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.html" title="interface in org.apache.openjpa.jdbc.sql"><B>Union</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>SQL UNION.<DT><A HREF="./org/apache/openjpa/jdbc/sql/Union.Selector.html" title="interface in org.apache.openjpa.jdbc.sql"><B>Union.Selector</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/sql/package-summary.html">org.apache.openjpa.jdbc.sql</A><DD>A callback used to create the selects in a SQL union.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Unique.html" title="class in org.apache.openjpa.jdbc.schema"><B>Unique</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Represents a unique constraint.<DT><A HREF="./org/apache/openjpa/jdbc/schema/Unique.html#Unique()"><B>Unique()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Unique.html" title="class in org.apache.openjpa.jdbc.schema">Unique</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/Unique.html#Unique(java.lang.String, org.apache.openjpa.jdbc.schema.Table)"><B>Unique(String, Table)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/Unique.html" title="class in org.apache.openjpa.jdbc.schema">Unique</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/Unique.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>Unique</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Unique constraint definition.<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#uniqueIdentifierAsVarbinary"><B>uniqueIdentifierAsVarbinary</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>Flag whether to treat UNIQUEIDENTIFIER as VARBINARY or VARCHAR
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#unjoinable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>unjoinable(ValueMapping)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>Return an exception indicating that we cannot join to the given relation.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html#unloadable(org.apache.openjpa.jdbc.meta.ValueMapping)"><B>unloadable(ValueMapping)</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationStrategies</A>
<DD>Return an exception indicating that the relation cannot be loaded
 because it has independent subclasses and does not represent a full oid.
<DT><A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractBrokerFactory.html" title="class in org.apache.openjpa.kernel">AbstractBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/BrokerFactory.html#unlock()"><B>unlock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerFactory.html" title="interface in org.apache.openjpa.kernel">BrokerFactory</A>
<DD>Release the internal lock.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBrokerFactory.html" title="class in org.apache.openjpa.kernel">DelegatingBrokerFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingExtent.html" title="class in org.apache.openjpa.kernel">DelegatingExtent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingFetchConfiguration.html" title="class in org.apache.openjpa.kernel">DelegatingFetchConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Extent.html#unlock()"><B>unlock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Extent.html" title="interface in org.apache.openjpa.kernel">Extent</A>
<DD>Release the internal lock.
<DT><A HREF="./org/apache/openjpa/kernel/ExtentImpl.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ExtentImpl.html" title="class in org.apache.openjpa.kernel">ExtentImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html#unlock()"><B>unlock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>
<DD>Release internal lock if multithreaded is true.
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#unlock()"><B>unlock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Unlock the query's internal lock.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>Unlock the state manager.
<DT><A HREF="./org/apache/openjpa/kernel/StoreContext.html#unlock()"><B>unlock()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>
<DD>Releases the internal lock.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html#unlock()"><B>unlock()</B></A> - 
Method in interface org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/Lock.html" title="interface in org.apache.openjpa.lib.util.concurrent">Lock</A>
<DD>Releases the lock.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html#unlock()"><B>unlock()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ReentrantLock.html" title="class in org.apache.openjpa.lib.util.concurrent">ReentrantLock</A>
<DD>Attempts to release this lock.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html#unmappedTable(org.apache.openjpa.jdbc.schema.Table)"><B>unmappedTable(Table)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/PropertiesReverseCustomizer.html" title="class in org.apache.openjpa.jdbc.meta">PropertiesReverseCustomizer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html#unmappedTable(org.apache.openjpa.jdbc.schema.Table)"><B>unmappedTable(Table)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseCustomizer.html" title="interface in org.apache.openjpa.jdbc.meta">ReverseCustomizer</A>
<DD>Notification that a table has gone unmapped.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#unpin(java.lang.Object)"><B>unpin(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#unpin(org.apache.openjpa.datacache.QueryKey)"><B>unpin(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#unpin(java.lang.Object)"><B>unpin(Object)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Unpin the value stored under <code>oid</code> from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#unpin(java.lang.Object)"><B>unpin(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#unpin(org.apache.openjpa.datacache.QueryKey)"><B>unpin(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#unpin(org.apache.openjpa.datacache.QueryKey)"><B>unpin(QueryKey)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Unpin the value stored under <code>key</code> into the cache.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCache.html#unpin(javax.persistence.Query)"><B>unpin(Query)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCache.html" title="interface in org.apache.openjpa.persistence">QueryResultCache</A>
<DD>Unpin a previously-pinned query result.
<DT><A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html#unpin(javax.persistence.Query)"><B>unpin(Query)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryResultCacheImpl.html" title="class in org.apache.openjpa.persistence">QueryResultCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#unpin(java.lang.Class, java.lang.Object)"><B>unpin(Class, Object)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Unpin the data for the given oid from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#unpin(java.lang.Class, java.lang.Object)"><B>unpin(Class, Object)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#unpin(java.lang.Object)"><B>unpin(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Undo a pinning.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#unpinAll(java.util.Collection)"><B>unpinAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#unpinAll(java.lang.Class, boolean)"><B>unpinAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#unpinAll(java.lang.Class, boolean)"><B>unpinAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#unpinAll(java.util.Collection)"><B>unpinAll(Collection)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Unpin all oids from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#unpinAll(java.lang.Class, boolean)"><B>unpinAll(Class, boolean)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Unpin all oids associaed with the given type from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#unpinAll(java.util.Collection)"><B>unpinAll(Collection)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#unpinAll(java.lang.Class, boolean)"><B>unpinAll(Class, boolean)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#unpinAll(java.lang.Class, java.lang.Object...)"><B>unpinAll(Class, Object...)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Unpin the data for the given oids from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCache.html#unpinAll(java.lang.Class, java.util.Collection)"><B>unpinAll(Class, Collection)</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCache.html" title="interface in org.apache.openjpa.persistence">StoreCache</A>
<DD>Unpin the data for the given oids from the cache.
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#unpinAll(java.lang.Class, java.lang.Object...)"><B>unpinAll(Class, Object...)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html#unpinAll(java.lang.Class, java.util.Collection)"><B>unpinAll(Class, Collection)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/StoreCacheImpl.html" title="class in org.apache.openjpa.persistence">StoreCacheImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#unpinInternal(java.lang.Object)"><B>unpinInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>Unpin an object from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html#unpinInternal(org.apache.openjpa.datacache.QueryKey)"><B>unpinInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractQueryCache.html" title="class in org.apache.openjpa.datacache">AbstractQueryCache</A>
<DD>Unpin an object from the cache.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#unpinInternal(java.lang.Object)"><B>unpinInternal(Object)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#unpinInternal(org.apache.openjpa.datacache.QueryKey)"><B>unpinInternal(QueryKey)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html#unq"><B>unq</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser.UniqueInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html#UNRESTRICTED"><B>UNRESTRICTED</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/ColumnIO.html" title="class in org.apache.openjpa.jdbc.schema">ColumnIO</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html#UNSUPPORTED"><B>UNSUPPORTED</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html" title="interface in org.apache.openjpa.enhance">RuntimeUnenhancedClasssesModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html#UNSUPPORTED"><B>UNSUPPORTED</B></A> - 
Static variable in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Embeddable.html" title="interface in org.apache.openjpa.jdbc.meta">Embeddable</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#UNSUPPORTED"><B>UNSUPPORTED</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UnsupportedException.html" title="class in org.apache.openjpa.util"><B>UnsupportedException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Exception type for attempts to perform unsupported operations.<DT><A HREF="./org/apache/openjpa/util/UnsupportedException.html#UnsupportedException()"><B>UnsupportedException()</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UnsupportedException.html" title="class in org.apache.openjpa.util">UnsupportedException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UnsupportedException.html#UnsupportedException(java.lang.String)"><B>UnsupportedException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UnsupportedException.html" title="class in org.apache.openjpa.util">UnsupportedException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UnsupportedException.html#UnsupportedException(org.apache.openjpa.lib.util.Localizer.Message)"><B>UnsupportedException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UnsupportedException.html" title="class in org.apache.openjpa.util">UnsupportedException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UnsupportedException.html#UnsupportedException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>UnsupportedException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UnsupportedException.html" title="class in org.apache.openjpa.util">UnsupportedException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>UntypedPCValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Handler for unknown persistence-capable object fields that stores
 stringified oids.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html#UntypedPCValueHandler()"><B>UntypedPCValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/UntypedPCValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">UntypedPCValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#unwrap(java.lang.Class)"><B>unwrap(Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Return the correct primitive type for the given class, if it is a
 wrapper.
<DT><A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html#update(org.apache.openjpa.datacache.DataCachePCData)"><B>update(DataCachePCData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/AbstractDataCache.html" title="class in org.apache.openjpa.datacache">AbstractDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#update(org.apache.openjpa.datacache.DataCachePCData)"><B>update(DataCachePCData)</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Update the cached value for the given instance.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#update(org.apache.openjpa.datacache.DataCachePCData)"><B>update(DataCachePCData)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html#UPDATE"><B>UPDATE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.CustomMapping.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractUpdateManager.CustomMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Discriminator.html" title="class in org.apache.openjpa.jdbc.meta">Discriminator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Strategy.html" title="interface in org.apache.openjpa.jdbc.meta">Strategy</A>
<DD>Set values for the mapping into the proper rows.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ColumnVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ColumnVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, org.apache.openjpa.jdbc.sql.Row)"><B>update(OpenJPAStateManager, OpenJPAStateManager, JDBCStore, RowManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/EmbedFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">EmbedFieldStrategy</A>
<DD>Update an embedded object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">FullClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.sql.Row)"><B>update(OpenJPAStateManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedBlobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.sql.Row)"><B>update(OpenJPAStateManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedByteArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.sql.Row)"><B>update(OpenJPAStateManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedCharArrayFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.sql.Row)"><B>update(OpenJPAStateManager, Row)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">MaxEmbeddedClobFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/NoneClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">NoneClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyInverseKeyFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/RelationToManyTableFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">RelationToManyTableFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StateComparisonVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StateComparisonVersionStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#update(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager)"><B>update(OpenJPAStateManager, JDBCStore, RowManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/UpdateAction.html" title="enum in org.apache.openjpa.persistence"><B>UpdateAction</B></A> - Enum in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Action to take when a field's value is changed.<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#updateAll()"><B>updateAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#updateAll(java.lang.Object[])"><B>updateAll(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#updateAll(java.util.Map)"><B>updateAll(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#updateAll()"><B>updateAll()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Performs an update of the instances that are satisfied by the query.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#updateAll(java.lang.Object[])"><B>updateAll(Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Performs an update of the instances that are satisfied by the query.
<DT><A HREF="./org/apache/openjpa/kernel/Query.html#updateAll(java.util.Map)"><B>updateAll(Map)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Query.html" title="interface in org.apache.openjpa.kernel">Query</A>
<DD>Performs an update of the instances that are satisfied by the query.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#updateAll()"><B>updateAll()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#updateAll(java.lang.Object[])"><B>updateAll(Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#updateAll(java.util.Map)"><B>updateAll(Map)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateArray(int, java.sql.Array)"><B>updateArray(int, Array)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateArray(java.lang.String, java.sql.Array)"><B>updateArray(String, Array)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateAsciiStream(int, java.io.InputStream, int)"><B>updateAsciiStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateAsciiStream(java.lang.String, java.io.InputStream, int)"><B>updateAsciiStream(String, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBigDecimal(int, java.math.BigDecimal)"><B>updateBigDecimal(int, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBigDecimal(java.lang.String, java.math.BigDecimal)"><B>updateBigDecimal(String, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBinaryStream(int, java.io.InputStream, int)"><B>updateBinaryStream(int, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBinaryStream(java.lang.String, java.io.InputStream, int)"><B>updateBinaryStream(String, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBlob(int, java.sql.Blob)"><B>updateBlob(int, Blob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBlob(java.lang.String, java.sql.Blob)"><B>updateBlob(String, Blob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBoolean(int, boolean)"><B>updateBoolean(int, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBoolean(java.lang.String, boolean)"><B>updateBoolean(String, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateByte(int, byte)"><B>updateByte(int, byte)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateByte(java.lang.String, byte)"><B>updateByte(String, byte)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBytes(int, byte[])"><B>updateBytes(int, byte[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateBytes(java.lang.String, byte[])"><B>updateBytes(String, byte[])</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateCharacterStream(int, java.io.Reader, int)"><B>updateCharacterStream(int, Reader, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateCharacterStream(java.lang.String, java.io.Reader, int)"><B>updateCharacterStream(String, Reader, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateClob(int, java.sql.Clob)"><B>updateClob(int, Clob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateClob(java.lang.String, java.sql.Clob)"><B>updateClob(String, Clob)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateDate(int, java.sql.Date)"><B>updateDate(int, Date)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateDate(java.lang.String, java.sql.Date)"><B>updateDate(String, Date)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateDouble(int, double)"><B>updateDouble(int, double)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateDouble(java.lang.String, double)"><B>updateDouble(String, double)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateFloat(int, float)"><B>updateFloat(int, float)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateFloat(java.lang.String, float)"><B>updateFloat(String, float)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html#updateInMemory(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>updateInMemory(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingQuery.html" title="class in org.apache.openjpa.kernel">DelegatingQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/QueryContext.html#updateInMemory(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>updateInMemory(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryContext.html" title="interface in org.apache.openjpa.kernel">QueryContext</A>
<DD>Helper method to update the objects found by executing a query on
 the given executor.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.html#updateInMemory(org.apache.openjpa.kernel.StoreQuery, org.apache.openjpa.kernel.StoreQuery.Executor, java.lang.Object[])"><B>updateInMemory(StoreQuery, StoreQuery.Executor, Object[])</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.html" title="class in org.apache.openjpa.kernel">QueryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateInt(int, int)"><B>updateInt(int, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateInt(java.lang.String, int)"><B>updateInt(String, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/UpdateListener.html" title="interface in org.apache.openjpa.event"><B>UpdateListener</B></A> - Interface in <A HREF="./org/apache/openjpa/event/package-summary.html">org.apache.openjpa.event</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateLong(int, long)"><B>updateLong(int, long)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateLong(java.lang.String, long)"><B>updateLong(String, long)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>UpdateManager</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>This interface is used to customize the way that updates are made to
 database records.<DT><A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html#updateManagerPlugin"><B>updateManagerPlugin</B></A> - 
Variable in class org.apache.openjpa.jdbc.conf.<A HREF="./org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.html" title="class in org.apache.openjpa.jdbc.conf">JDBCConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateNull(int)"><B>updateNull(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateNull(java.lang.String)"><B>updateNull(String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateObject(int, java.lang.Object, int)"><B>updateObject(int, Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateObject(int, java.lang.Object)"><B>updateObject(int, Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateObject(java.lang.String, java.lang.Object, int)"><B>updateObject(String, Object, int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateObject(java.lang.String, java.lang.Object)"><B>updateObject(String, Object)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateRef(int, java.sql.Ref)"><B>updateRef(int, Ref)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateRef(java.lang.String, java.sql.Ref)"><B>updateRef(String, Ref)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateRow()"><B>updateRow()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html#updates"><B>updates</B></A> - 
Variable in class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/QueryExpressions.html" title="class in org.apache.openjpa.kernel.exps">QueryExpressions</A>
<DD>Map of <A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta"><CODE>FieldMetaData</CODE></A>,<A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Value</CODE></A> for update statements.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#updatesAreDetected(int)"><B>updatesAreDetected(int)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateShort(int, short)"><B>updateShort(int, short)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateShort(java.lang.String, short)"><B>updateShort(String, short)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta"><B>UpdateStrategies</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Strategies for persistent value updates.<DT><A HREF="./org/apache/openjpa/meta/UpdateStrategies.html#UpdateStrategies()"><B>UpdateStrategies()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/UpdateStrategies.html" title="class in org.apache.openjpa.meta">UpdateStrategies</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateString(int, java.lang.String)"><B>updateString(int, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateString(java.lang.String, java.lang.String)"><B>updateString(String, String)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateTime(int, java.sql.Time)"><B>updateTime(int, Time)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateTime(java.lang.String, java.sql.Time)"><B>updateTime(String, Time)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateTimestamp(int, java.sql.Timestamp)"><B>updateTimestamp(int, Timestamp)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#updateTimestamp(java.lang.String, java.sql.Timestamp)"><B>updateTimestamp(String, Timestamp)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>URLMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over the metadata resource represented by a URL.<DT><A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html#URLMetaDataIterator(java.net.URL)"><B>URLMetaDataIterator(URL)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/URLMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">URLMetaDataIterator</A>
<DD>Constructor; supply resource URL.
<DT><A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html#urls"><B>urls</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/AbstractCFMetaDataFactory.html" title="class in org.apache.openjpa.meta">AbstractCFMetaDataFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#useBuiltinIdentityClass"><B>useBuiltinIdentityClass</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html#useClassCriteria()"><B>useClassCriteria()</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaults.html" title="interface in org.apache.openjpa.jdbc.meta">MappingDefaults</A>
<DD>The default for whether relations use the related object's
 expected class as part of the join criteria.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html#useClassCriteria()"><B>useClassCriteria()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.html" title="class in org.apache.openjpa.jdbc.meta">MappingDefaultsImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html#useClassCriteria()"><B>useClassCriteria()</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/NoneMappingDefaults.html" title="class in org.apache.openjpa.jdbc.meta">NoneMappingDefaults</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html#useClobs"><B>useClobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MySQLDictionary.html" title="class in org.apache.openjpa.jdbc.sql">MySQLDictionary</A>
<DD>Whether to use clobs.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#useDataStoreIdentity"><B>useDataStoreIdentity</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#useForeignKeyName"><B>useForeignKeyName</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#useGenericCollections()"><B>useGenericCollections()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Whether to use generic collections on one-to-many and many-to-many
 relations instead of untyped collections.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#useGenericCollections"><B>useGenericCollections</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useGetBestRowIdentifierForPrimaryKeys"><B>useGetBestRowIdentifierForPrimaryKeys</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useGetBytesForBlobs"><B>useGetBytesForBlobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useGetObjectForBlobs"><B>useGetObjectForBlobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useGetStringForClobs"><B>useGetStringForClobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html#useParent"><B>useParent</B></A> - 
Variable in class org.apache.openjpa.lib.ant.<A HREF="./org/apache/openjpa/lib/ant/AbstractTask.html" title="class in org.apache.openjpa.lib.ant">AbstractTask</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#usePropertyBasedAccess()"><B>usePropertyBasedAccess()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Whether to use property-based access on generated code.
<DT><A HREF="./org/apache/openjpa/util/ExceptionInfo.html#USER"><B>USER</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ExceptionInfo.html" title="interface in org.apache.openjpa.util">ExceptionInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util"><B>UserException</B></A> - Exception in <A HREF="./org/apache/openjpa/util/package-summary.html">org.apache.openjpa.util</A><DD>Base exception type for user errors.<DT><A HREF="./org/apache/openjpa/util/UserException.html#UserException()"><B>UserException()</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#UserException(java.lang.String)"><B>UserException(String)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#UserException(org.apache.openjpa.lib.util.Localizer.Message)"><B>UserException(Localizer.Message)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#UserException(java.lang.Throwable)"><B>UserException(Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#UserException(java.lang.String, java.lang.Throwable)"><B>UserException(String, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/UserException.html#UserException(org.apache.openjpa.lib.util.Localizer.Message, java.lang.Throwable)"><B>UserException(Localizer.Message, Throwable)</B></A> - 
Constructor for exception org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/UserException.html" title="class in org.apache.openjpa.util">UserException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#useSchemaName"><B>useSchemaName</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useSchemaName"><B>useSchemaName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#usesDetachedState()"><B>usesDetachedState()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Whether an instance of this type has detached state.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useSetBytesForBlobs"><B>useSetBytesForBlobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#useSetFormOfUseForUnicode"><B>useSetFormOfUseForUnicode</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>If true, then OpenJPA will attempt to use the special
 OraclePreparedStatement.setFormOfUse method to
 configure statements that it detects are operating on unicode fields.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#useSetStringForClobs"><B>useSetStringForClobs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#usesImplData(org.apache.openjpa.meta.ClassMetaData)"><B>usesImplData(ClassMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Whether the given type might have cacheable class-level impl data.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#usesImplData(org.apache.openjpa.meta.FieldMetaData)"><B>usesImplData(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Whether the given field might have cacheable impl data.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#usesImplData()"><B>usesImplData()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field uses impl data in conjunction with standard
 field data when acting on a <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html#usesIntermediate(org.apache.openjpa.meta.FieldMetaData)"><B>usesIntermediate(FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A>
<DD>Whether the given field uses a cacheable intermediate value.
<DT><A HREF="./org/apache/openjpa/meta/FieldMetaData.html#usesIntermediate()"><B>usesIntermediate()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>
<DD>Whether this field uses intermediate data when loading/storing
 information through a <A HREF="./org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel"><CODE>OpenJPAStateManager</CODE></A>.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#usesLocalFilePerTable()"><B>usesLocalFilePerTable()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html#usesLocalFiles()"><B>usesLocalFiles()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingDatabaseMetaData.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingDatabaseMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#useTriggersForAutoAssign"><B>useTriggersForAutoAssign</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>If true, then simulate auto-assigned values in Oracle by
 using a trigger that inserts a sequence value into the
 primary key value when a row is inserted.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/Utils.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>Utils</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>This class groups together the functionality of java.util.concurrent that
 cannot be fully and reliably implemented in backport, but for which some
 form of emulation is possible.<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#UUID_HEX"><B>UUID_HEX</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>"uuid-hex" value strategy.
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html#UUID_HEX"><B>UUID_HEX</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence">Generator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#UUID_STRING"><B>UUID_STRING</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>"uuid-string" value strategy.
<DT><A HREF="./org/apache/openjpa/persistence/Generator.html#UUID_STRING"><B>UUID_STRING</B></A> - 
Static variable in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/Generator.html" title="interface in org.apache.openjpa.persistence">Generator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html" title="class in org.apache.openjpa.lib.util"><B>UUIDGenerator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/package-summary.html">org.apache.openjpa.lib.util</A><DD>UUID value generator.<DT><A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html#UUIDGenerator()"><B>UUIDGenerator()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/UUIDGenerator.html" title="class in org.apache.openjpa.lib.util">UUIDGenerator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/UUIDHexSeq.html" title="class in org.apache.openjpa.kernel"><B>UUIDHexSeq</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Sequence for generating 32-character hex UUID strings.<DT><A HREF="./org/apache/openjpa/kernel/UUIDStringSeq.html" title="class in org.apache.openjpa.kernel"><B>UUIDStringSeq</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD>Sequence for generating 16-character UUID strings.</DL>
<HR>
<A NAME="_V_"><!-- --></A><H2>
<B>V</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps"><B>Val</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/kernel/exps/package-summary.html">org.apache.openjpa.jdbc.kernel.exps</A><DD>A Value represents any non-operator in a query filter, including
 constants, variables, and object fields.<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps"><B>Val</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>An in-memory representation of a <A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Value</CODE></A>.<DT><A HREF="./org/apache/openjpa/kernel/exps/Val.html#Val()"><B>Val()</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/Val.html" title="class in org.apache.openjpa.kernel.exps">Val</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#VALID"><B>VALID</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#validate(org.apache.openjpa.kernel.StoreQuery)"><B>validate(StoreQuery)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery.AbstractExecutor</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html#validate(org.apache.openjpa.kernel.StoreQuery)"><B>validate(StoreQuery)</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A>
<DD>Validate components of query.
<DT><A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html#validate()"><B>validate()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/AbstractProductDerivation.html" title="class in org.apache.openjpa.lib.conf">AbstractProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html#validate()"><B>validate()</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ProductDerivation.html" title="interface in org.apache.openjpa.lib.conf">ProductDerivation</A>
<DD>Ensure that this derivation is valid.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html#validate()"><B>validate()</B></A> - 
Method in class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JDBCPersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence.jdbc">JDBCPersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html#validate()"><B>validate()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceProductDerivation.html" title="class in org.apache.openjpa.persistence">PersistenceProductDerivation</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#VALIDATE_MAPPING"><B>VALIDATE_MAPPING</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Bit flag to validate mappings.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#VALIDATE_META"><B>VALIDATE_META</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Bit flag to validate metadata.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#VALIDATE_NONE"><B>VALIDATE_NONE</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Constant to not validate any metadata.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#VALIDATE_RUNTIME"><B>VALIDATE_RUNTIME</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Bit flag for runtime validation.
<DT><A HREF="./org/apache/openjpa/meta/MetaDataRepository.html#VALIDATE_UNENHANCED"><B>VALIDATE_UNENHANCED</B></A> - 
Static variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>
<DD>Bit flag to validate unenhanced metadata only.
<DT><A HREF="./org/apache/openjpa/kernel/Broker.html#validateChanges()"><B>validateChanges()</B></A> - 
Method in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Broker.html" title="interface in org.apache.openjpa.kernel">Broker</A>
<DD>Validate the changes made in this transaction, reporting any optimistic
 violations, constraint violations, etc.
<DT><A HREF="./org/apache/openjpa/kernel/BrokerImpl.html#validateChanges()"><B>validateChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/BrokerImpl.html" title="class in org.apache.openjpa.kernel">BrokerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html#validateChanges()"><B>validateChanges()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingBroker.html" title="class in org.apache.openjpa.kernel">DelegatingBroker</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html#validateChanges()"><B>validateChanges()</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/EntityManagerImpl.html" title="class in org.apache.openjpa.persistence">EntityManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html#validateChanges()"><B>validateChanges()</B></A> - 
Method in interface org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/OpenJPAEntityManager.html" title="interface in org.apache.openjpa.persistence">OpenJPAEntityManager</A>
<DD>Validate the changes made in this transaction, reporting any optimistic
 violations, constraint violations, etc.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html#validateDataStoreExtensionPrefix(java.lang.String)"><B>validateDataStoreExtensionPrefix(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#validateDataStoreExtensionPrefix(java.lang.String)"><B>validateDataStoreExtensionPrefix(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#validateDataStoreExtensionPrefix(java.lang.String)"><B>validateDataStoreExtensionPrefix(String)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Return true if extensions starting with the given official datastore
 prefix should be validated for this runtime.
<DT><A HREF="./org/apache/openjpa/meta/Extensions.html#validateExtensionKeys()"><B>validateExtensionKeys()</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A>
<DD>Helper method to issue warnings for any extensions that we
 recognize but do not use.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#validateMapping(boolean)"><B>validateMapping(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Validate mapping data.
<DT><A HREF="./org/apache/openjpa/meta/ClassMetaData.html#validateMeta(boolean)"><B>validateMeta(boolean)</B></A> - 
Method in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>
<DD>Validate resolved metadata.
<DT><A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html" title="class in org.apache.openjpa.lib.xml"><B>ValidatingErrorHandler</B></A> - Class in <A HREF="./org/apache/openjpa/lib/xml/package-summary.html">org.apache.openjpa.lib.xml</A><DD>ErrorHandler implementation which overrides the default
 behavior of ignoring parse errors to throw a <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/SAXException.html" title="class or interface in org.xml.sax"><CODE>SAXException</CODE></A> instead.<DT><A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html#ValidatingErrorHandler()"><B>ValidatingErrorHandler()</B></A> - 
Constructor for class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html" title="class in org.apache.openjpa.lib.xml">ValidatingErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#validationSQL"><B>validationSQL</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html#value"><B>value</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Calendard.html" title="class in org.apache.openjpa.jdbc.sql">Calendard</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Sized.html#value"><B>value</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Sized.html" title="class in org.apache.openjpa.jdbc.sql">Sized</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps"><B>Value</B></A> - Interface in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD>Interface for any non-operator in a query filter, including
 constants, variables, and object fields.<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><B>Value</B></A> - Class in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>A configuration value.<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#Value()"><B>Value()</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#Value(java.lang.String)"><B>Value(String)</B></A> - 
Constructor for class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#value(java.lang.Object)"><B>value(Object)</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>Return the value of the given key.
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#valueChanged(org.apache.openjpa.lib.conf.Value)"><B>valueChanged(Value)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/Value.html#valueChanged()"><B>valueChanged()</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>
<DD>Subclasses should call this method when their inernal value changes.
<DT><A HREF="./org/apache/openjpa/lib/conf/ValueListener.html#valueChanged(org.apache.openjpa.lib.conf.Value)"><B>valueChanged(Value)</B></A> - 
Method in interface org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ValueListener.html" title="interface in org.apache.openjpa.lib.conf">ValueListener</A>
<DD>Callback used by <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> objects to notify listener of change.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#valueExpired(java.lang.Object)"><B>valueExpired(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html#valueExpired(java.lang.Object)"><B>valueExpired(Object)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashMap.html" title="class in org.apache.openjpa.lib.util">ReferenceHashMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html#valueExpired(java.lang.Object)"><B>valueExpired(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util">ReferenceMap</A>
<DD>Overridable callback for when a value reference expires.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueHandler.html" title="interface in org.apache.openjpa.jdbc.meta"><B>ValueHandler</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Maps a value to a relational schema.<DT><A HREF="./org/apache/openjpa/lib/conf/ValueListener.html" title="interface in org.apache.openjpa.lib.conf"><B>ValueListener</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/conf/package-summary.html">org.apache.openjpa.lib.conf</A><DD>Components can listen on <A HREF="./org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> objects for changes directly.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>ValueMapDiscriminatorStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Maps metadata-given values to classes.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html#ValueMapDiscriminatorStrategy()"><B>ValueMapDiscriminatorStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/ValueMapDiscriminatorStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">ValueMapDiscriminatorStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta"><B>ValueMapping</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Specialization of value metadata for relational databases.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta"><B>ValueMappingImpl</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Standalone <A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta"><CODE>ValueMapping</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#ValueMappingImpl(org.apache.openjpa.jdbc.meta.FieldMapping)"><B>ValueMappingImpl(FieldMapping)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#ValueMappingImpl()"><B>ValueMappingImpl()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>Constructor for deserialization.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><B>ValueMappingInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Information about the mapping from a field value to the schema, in
 raw form.<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html#ValueMappingInfo()"><B>ValueMappingInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta"><B>ValueMetaData</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Holds metadata on a value; this could be a field value, key value, or
 element value.<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta"><B>ValueMetaDataImpl</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Default <A HREF="./org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta"><CODE>ValueMetaData</CODE></A> implementation.<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#ValueMetaDataImpl(org.apache.openjpa.meta.FieldMetaData)"><B>ValueMetaDataImpl(FieldMetaData)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html#ValueMetaDataImpl()"><B>ValueMetaDataImpl()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueMetaDataImpl.html" title="class in org.apache.openjpa.meta">ValueMetaDataImpl</A>
<DD>Constructor for serialization.
<DT><A HREF="./org/apache/openjpa/persistence/AutoClearType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AutoClearType.html" title="enum in org.apache.openjpa.persistence">AutoClearType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence">AutoDetachType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/CallbackMode.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence">CallbackMode</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/ConnectionRetainMode.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ConnectionRetainMode.html" title="enum in org.apache.openjpa.persistence">ConnectionRetainMode</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/DetachStateType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/DetachStateType.html" title="enum in org.apache.openjpa.persistence">DetachStateType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/FetchDirection.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/FetchDirection.html" title="enum in org.apache.openjpa.persistence.jdbc">FetchDirection</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/FetchMode.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/FetchMode.html" title="enum in org.apache.openjpa.persistence.jdbc">FetchMode</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ForeignKeyAction.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/ForeignKeyAction.html" title="enum in org.apache.openjpa.persistence.jdbc">ForeignKeyAction</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html" title="enum in org.apache.openjpa.persistence.jdbc">IsolationLevel</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JoinSyntax.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JoinSyntax.html" title="enum in org.apache.openjpa.persistence.jdbc">JoinSyntax</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/LRSSizeAlgorithm.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/LRSSizeAlgorithm.html" title="enum in org.apache.openjpa.persistence.jdbc">LRSSizeAlgorithm</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/NonpolymorphicType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/NonpolymorphicType.html" title="enum in org.apache.openjpa.persistence.jdbc">NonpolymorphicType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ResultSetType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/ResultSetType.html" title="enum in org.apache.openjpa.persistence.jdbc">ResultSetType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/MetaDataTag.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/MetaDataTag.html" title="enum in org.apache.openjpa.persistence">MetaDataTag</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceStrategy.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceStrategy.html" title="enum in org.apache.openjpa.persistence">PersistenceStrategy</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/QueryOperationType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryOperationType.html" title="enum in org.apache.openjpa.persistence">QueryOperationType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/RestoreStateType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RestoreStateType.html" title="enum in org.apache.openjpa.persistence">RestoreStateType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/persistence/UpdateAction.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/UpdateAction.html" title="enum in org.apache.openjpa.persistence">UpdateAction</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html#values()"><B>values()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentHashMap</A>
<DD>Returns a collection view of the values contained in this map.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html#values()"><B>values()</B></A> - 
Method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashMap.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashMap</A>
<DD>Returns a Collection view of the values contained in this HashMap.
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html#values()"><B>values()</B></A> - 
Static method in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/TimeUnit.html" title="class in org.apache.openjpa.lib.util.concurrent">TimeUnit</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AutoClearType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AutoClearType.html" title="enum in org.apache.openjpa.persistence">AutoClearType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/AutoDetachType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AutoDetachType.html" title="enum in org.apache.openjpa.persistence">AutoDetachType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/CallbackMode.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/CallbackMode.html" title="enum in org.apache.openjpa.persistence">CallbackMode</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/ConnectionRetainMode.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/ConnectionRetainMode.html" title="enum in org.apache.openjpa.persistence">ConnectionRetainMode</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/DetachStateType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/DetachStateType.html" title="enum in org.apache.openjpa.persistence">DetachStateType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/FetchDirection.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/FetchDirection.html" title="enum in org.apache.openjpa.persistence.jdbc">FetchDirection</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/FetchMode.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/FetchMode.html" title="enum in org.apache.openjpa.persistence.jdbc">FetchMode</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ForeignKeyAction.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/ForeignKeyAction.html" title="enum in org.apache.openjpa.persistence.jdbc">ForeignKeyAction</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/IsolationLevel.html" title="enum in org.apache.openjpa.persistence.jdbc">IsolationLevel</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/JoinSyntax.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/JoinSyntax.html" title="enum in org.apache.openjpa.persistence.jdbc">JoinSyntax</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/LRSSizeAlgorithm.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/LRSSizeAlgorithm.html" title="enum in org.apache.openjpa.persistence.jdbc">LRSSizeAlgorithm</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/NonpolymorphicType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/NonpolymorphicType.html" title="enum in org.apache.openjpa.persistence.jdbc">NonpolymorphicType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/ResultSetType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/ResultSetType.html" title="enum in org.apache.openjpa.persistence.jdbc">ResultSetType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/MetaDataTag.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/MetaDataTag.html" title="enum in org.apache.openjpa.persistence">MetaDataTag</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/PersistenceStrategy.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/PersistenceStrategy.html" title="enum in org.apache.openjpa.persistence">PersistenceStrategy</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/QueryOperationType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/QueryOperationType.html" title="enum in org.apache.openjpa.persistence">QueryOperationType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/RestoreStateType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/RestoreStateType.html" title="enum in org.apache.openjpa.persistence">RestoreStateType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/persistence/UpdateAction.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/UpdateAction.html" title="enum in org.apache.openjpa.persistence">UpdateAction</A>
<DD>Returns an array containing the constants of this enum type, in
the order they're declared.
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#values()"><B>values()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#values()"><B>values()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.html#values(org.apache.openjpa.util.ProxyMap)"><B>values(ProxyMap)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.html" title="class in org.apache.openjpa.util">ProxyMaps</A>
<DD>Override for <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#values()" title="class or interface in java.util"><CODE>Map.values()</CODE></A>.
<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta"><B>ValueStrategies</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Strategies for persistent value generation.<DT><A HREF="./org/apache/openjpa/meta/ValueStrategies.html#ValueStrategies()"><B>ValueStrategies()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta">ValueStrategies</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><B>ValueTableJDBCSeq</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/kernel/package-summary.html">org.apache.openjpa.jdbc.kernel</A><DD>Specialization of the <A HREF="./org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><CODE>TableJDBCSeq</CODE></A> that maintains multiple
 sequence counts.<DT><A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#ValueTableJDBCSeq()"><B>ValueTableJDBCSeq()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">ValueTableJDBCSeq</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#varbinaryTypeName"><B>varbinaryTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#varcharTypeName"><B>varcharTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#VENDOR_DATADIRECT"><B>VENDOR_DATADIRECT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#VENDOR_JTDS"><B>VENDOR_JTDS</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#VENDOR_MICROSOFT"><B>VENDOR_MICROSOFT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#VENDOR_NAME"><B>VENDOR_NAME</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html#VENDOR_NETDIRECT"><B>VENDOR_NETDIRECT</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" title="class in org.apache.openjpa.jdbc.sql">SQLServerDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html#VENDOR_ORACLE"><B>VENDOR_ORACLE</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/OracleDictionary.html" title="class in org.apache.openjpa.jdbc.sql">OracleDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#VENDOR_OTHER"><B>VENDOR_OTHER</B></A> - 
Static variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html#VERBOSE"><B>VERBOSE</B></A> - 
Static variable in interface org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/MetaDataSerializer.html" title="interface in org.apache.openjpa.lib.meta">MetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html#vers"><B>vers</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractVersionStrategy</A>
<DD>The owning version.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta"><B>Version</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Handles optimistic lock versioning for a class.<DT><A HREF="./org/apache/openjpa/jdbc/meta/Version.html#Version(org.apache.openjpa.jdbc.meta.ClassMapping)"><B>Version(ClassMapping)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/Version.html" title="class in org.apache.openjpa.jdbc.meta">Version</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/lib/util/JavaVersions.html#VERSION"><B>VERSION</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/JavaVersions.html" title="class in org.apache.openjpa.lib.util">JavaVersions</A>
<DD>Java version; one of 2, 3, 4, 5, 6, or 7.
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#VERSION_DIFFERENT"><B>VERSION_DIFFERENT</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#VERSION_EARLIER"><B>VERSION_EARLIER</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#VERSION_ID"><B>VERSION_ID</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#VERSION_LATER"><B>VERSION_LATER</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html#VERSION_NUMBER"><B>VERSION_NUMBER</B></A> - 
Static variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAVersion.html" title="class in org.apache.openjpa.conf">OpenJPAVersion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StoreManager.html#VERSION_SAME"><B>VERSION_SAME</B></A> - 
Static variable in interface org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StoreManager.html" title="interface in org.apache.openjpa.kernel">StoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/VersionColumn.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>VersionColumn</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Surrogate version column.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/VersionColumns.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>VersionColumns</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows the specification of multiple version columns for complex versioning.<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel"><B>VersionLockManager</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/package-summary.html">org.apache.openjpa.kernel</A><DD><A HREF="./org/apache/openjpa/kernel/LockManager.html" title="interface in org.apache.openjpa.kernel"><CODE>LockManager</CODE></A> implementation that provides support
 for version checking and version updating when locks are acquired.<DT><A HREF="./org/apache/openjpa/kernel/VersionLockManager.html#VersionLockManager()"><B>VersionLockManager()</B></A> - 
Constructor for class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/VersionLockManager.html" title="class in org.apache.openjpa.kernel">VersionLockManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta"><B>VersionMappingInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Information about the mapping from a version indicator to the schema, in
 raw form.<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html#VersionMappingInfo()"><B>VersionMappingInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/VersionMappingInfo.html" title="class in org.apache.openjpa.jdbc.meta">VersionMappingInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html#versionStrategy"><B>versionStrategy</B></A> - 
Variable in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ReverseMappingTool.Flags.html" title="class in org.apache.openjpa.jdbc.meta">ReverseMappingTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/VersionStrategy.html" title="interface in org.apache.openjpa.jdbc.meta"><B>VersionStrategy</B></A> - Interface in <A HREF="./org/apache/openjpa/jdbc/meta/package-summary.html">org.apache.openjpa.jdbc.meta</A><DD>Handles optimistic lock versioning for a class.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/VersionStrategy.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>VersionStrategy</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Version mapping strategy.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>VerticalClassStrategy</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Mapping for subclasses that join to their superclass table.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html#VerticalClassStrategy()"><B>VerticalClassStrategy()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/VerticalClassStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">VerticalClassStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html#VIEW_ENTRIES"><B>VIEW_ENTRIES</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html" title="interface in org.apache.openjpa.util">ProxyMaps.ProxyEntrySet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html#VIEW_KEYS"><B>VIEW_KEYS</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html" title="interface in org.apache.openjpa.util">ProxyMaps.ProxyEntrySet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html#VIEW_VALUES"><B>VIEW_VALUES</B></A> - 
Static variable in interface org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ProxyMaps.ProxyEntrySet.html" title="interface in org.apache.openjpa.util">ProxyMaps.ProxyEntrySet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#visit(java.lang.Object, org.apache.openjpa.lib.graph.NodeInfo)"><B>visit(Object, NodeInfo)</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>Visit the node.
</DL>
<HR>
<A NAME="_W_"><!-- --></A><H2>
<B>W</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>WaitQueue</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>Base class for internal queue classes for semaphores, etc.<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html#WaitQueue()"><B>WaitQueue()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.QueuedSync.html" title="interface in org.apache.openjpa.lib.util.concurrent"><B>WaitQueue.QueuedSync</B></A> - Interface in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent"><B>WaitQueue.WaitNode</B></A> - Class in <A HREF="./org/apache/openjpa/lib/util/concurrent/package-summary.html">org.apache.openjpa.lib.util.concurrent</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html#WaitQueue.WaitNode()"><B>WaitQueue.WaitNode()</B></A> - 
Constructor for class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/WaitQueue.WaitNode.html" title="class in org.apache.openjpa.lib.util.concurrent">WaitQueue.WaitNode</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html#walk()"><B>walk()</B></A> - 
Method in class org.apache.openjpa.lib.graph.<A HREF="./org/apache/openjpa/lib/graph/BreadthFirstWalk.html" title="class in org.apache.openjpa.lib.graph">BreadthFirstWalk</A>
<DD>Begins the breadth first traversal.
<DT><A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html#WARN"><B>WARN</B></A> - 
Static variable in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html" title="interface in org.apache.openjpa.enhance">RuntimeUnenhancedClasssesModes</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/AbstractLog.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/AbstractLog.html" title="class in org.apache.openjpa.lib.log">AbstractLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/CommonsLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">CommonsLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#WARN"><B>WARN</B></A> - 
Static variable in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#WARN"><CODE>Log.WARN</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in interface org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</A>
<DD>Write out a log message at the <A HREF="./org/apache/openjpa/lib/log/Log.html#WARN"><CODE>Log.WARN</CODE></A>
 level with the stringification of <code>o</code> as the body
 of the message, also outputting <code>t</code> to the log.
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/Log4JLogFactory.LogAdapter.html" title="class in org.apache.openjpa.lib.log">Log4JLogFactory.LogAdapter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#warn(java.lang.Object)"><B>warn(Object)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html#warn(java.lang.Object, java.lang.Throwable)"><B>warn(Object, Throwable)</B></A> - 
Method in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/NoneLogFactory.NoneLog.html" title="class in org.apache.openjpa.lib.log">NoneLogFactory.NoneLog</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html#WARN_STR"><B>WARN_STR</B></A> - 
Static variable in class org.apache.openjpa.lib.log.<A HREF="./org/apache/openjpa/lib/log/LogFactoryImpl.html" title="class in org.apache.openjpa.lib.log">LogFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/InverseManager.html#warnConsistency(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.meta.FieldMetaData)"><B>warnConsistency(OpenJPAStateManager, FieldMetaData)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/InverseManager.html" title="class in org.apache.openjpa.kernel">InverseManager</A>
<DD>Log an inconsistency warning
<DT><A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html#warning(org.xml.sax.SAXParseException)"><B>warning(SAXParseException)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/ValidatingErrorHandler.html" title="class in org.apache.openjpa.lib.xml">ValidatingErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>WASManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> implementation that allows synchronization with a
 WebSphere managed transaction.<DT><A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html#WASManagedRuntime()"><B>WASManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WASManagedRuntime.html" title="class in org.apache.openjpa.ee">WASManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html#wasNull()"><B>wasNull()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/AbstractResult.html" title="class in org.apache.openjpa.jdbc.sql">AbstractResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html#wasNull()"><B>wasNull()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/MergedResult.html" title="class in org.apache.openjpa.jdbc.sql">MergedResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Result.html#wasNull()"><B>wasNull()</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>
<DD>Return true if the last value fetched was null.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html#wasNull()"><B>wasNull()</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/ResultSetResult.html" title="class in org.apache.openjpa.jdbc.sql">ResultSetResult</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html#wasNull()"><B>wasNull()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingCallableStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingCallableStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html#wasNull()"><B>wasNull()</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingResultSet.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingResultSet</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html#WEAK"><B>WEAK</B></A> - 
Static variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/ConcurrentReferenceHashSet.html" title="class in org.apache.openjpa.lib.util.concurrent">ConcurrentReferenceHashSet</A>
<DD>Weak reference marker.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html#WEAK"><B>WEAK</B></A> - 
Static variable in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceHashSet.html" title="class in org.apache.openjpa.lib.util">ReferenceHashSet</A>
<DD>Weak reference marker.
<DT><A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html#WEAK"><B>WEAK</B></A> - 
Static variable in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ReferenceMap.html" title="interface in org.apache.openjpa.lib.util">ReferenceMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#where(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, java.lang.Object)"><B>where(OpenJPAStateManager, JDBCStore, RowManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html#where(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, java.lang.Object)"><B>where(OpenJPAStateManager, JDBCStore, RowManager, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldStrategy.html" title="interface in org.apache.openjpa.jdbc.meta">FieldStrategy</A>
<DD>Add a WHERE condition to the row for this field such that the field's
 current DB value must equal the given previous value.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html#where(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, java.lang.Object)"><B>where(OpenJPAStateManager, JDBCStore, RowManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/AbstractFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">AbstractFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html#where(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, java.lang.Object)"><B>where(OpenJPAStateManager, JDBCStore, RowManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html#where(org.apache.openjpa.jdbc.meta.ValueMapping, java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.jdbc.schema.Column[])"><B>where(ValueMapping, Object, JDBCStore, Row, Column[])</B></A> - 
Static method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/HandlerStrategies.html" title="class in org.apache.openjpa.jdbc.meta.strats">HandlerStrategies</A>
<DD>Add where conditions to the given row.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html#where(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, java.lang.Object)"><B>where(OpenJPAStateManager, JDBCStore, RowManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/PrimitiveFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">PrimitiveFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html#where(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.sql.RowManager, java.lang.Object)"><B>where(OpenJPAStateManager, JDBCStore, RowManager, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/StringFieldStrategy.html" title="class in org.apache.openjpa.jdbc.meta.strats">StringFieldStrategy</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#where(org.apache.openjpa.jdbc.sql.Joins)"><B>where(Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#where(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>where(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#where(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>where(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#where(java.lang.String)"><B>where(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#where(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>where(String, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#where(org.apache.openjpa.jdbc.sql.Joins)"><B>where(Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given where conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#where(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>where(SQLBuffer)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given where conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#where(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>where(SQLBuffer, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given where conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#where(java.lang.String)"><B>where(String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given where conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#where(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>where(String, Joins)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add the given where conditions.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#where(org.apache.openjpa.jdbc.sql.Joins)"><B>where(Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#where(org.apache.openjpa.jdbc.sql.SQLBuffer)"><B>where(SQLBuffer)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#where(org.apache.openjpa.jdbc.sql.SQLBuffer, org.apache.openjpa.jdbc.sql.Joins)"><B>where(SQLBuffer, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#where(java.lang.String)"><B>where(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#where(java.lang.String, org.apache.openjpa.jdbc.sql.Joins)"><B>where(String, Joins)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereArray(org.apache.openjpa.jdbc.schema.Column, java.sql.Array)"><B>whereArray(Column, Array)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereArray(org.apache.openjpa.jdbc.schema.Column, java.sql.Array)"><B>whereArray(Column, Array)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereAsciiStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>whereAsciiStream(Column, InputStream, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereAsciiStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>whereAsciiStream(Column, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereBigDecimal(org.apache.openjpa.jdbc.schema.Column, java.math.BigDecimal)"><B>whereBigDecimal(Column, BigDecimal)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereBigDecimal(org.apache.openjpa.jdbc.schema.Column, java.math.BigDecimal)"><B>whereBigDecimal(Column, BigDecimal)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereBigInteger(org.apache.openjpa.jdbc.schema.Column, java.math.BigInteger)"><B>whereBigInteger(Column, BigInteger)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereBigInteger(org.apache.openjpa.jdbc.schema.Column, java.math.BigInteger)"><B>whereBigInteger(Column, BigInteger)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereBinaryStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>whereBinaryStream(Column, InputStream, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereBinaryStream(org.apache.openjpa.jdbc.schema.Column, java.io.InputStream, int)"><B>whereBinaryStream(Column, InputStream, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereBlob(org.apache.openjpa.jdbc.schema.Column, java.sql.Blob)"><B>whereBlob(Column, Blob)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereBlob(org.apache.openjpa.jdbc.schema.Column, java.sql.Blob)"><B>whereBlob(Column, Blob)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereBoolean(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>whereBoolean(Column, boolean)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereBoolean(org.apache.openjpa.jdbc.schema.Column, boolean)"><B>whereBoolean(Column, boolean)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereByte(org.apache.openjpa.jdbc.schema.Column, byte)"><B>whereByte(Column, byte)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereByte(org.apache.openjpa.jdbc.schema.Column, byte)"><B>whereByte(Column, byte)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereBytes(org.apache.openjpa.jdbc.schema.Column, byte[])"><B>whereBytes(Column, byte[])</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereBytes(org.apache.openjpa.jdbc.schema.Column, byte[])"><B>whereBytes(Column, byte[])</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereCalendar(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar)"><B>whereCalendar(Column, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereCalendar(org.apache.openjpa.jdbc.schema.Column, java.util.Calendar)"><B>whereCalendar(Column, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereChar(org.apache.openjpa.jdbc.schema.Column, char)"><B>whereChar(Column, char)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereChar(org.apache.openjpa.jdbc.schema.Column, char)"><B>whereChar(Column, char)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereCharacterStream(org.apache.openjpa.jdbc.schema.Column, java.io.Reader, int)"><B>whereCharacterStream(Column, Reader, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereCharacterStream(org.apache.openjpa.jdbc.schema.Column, java.io.Reader, int)"><B>whereCharacterStream(Column, Reader, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereClob(org.apache.openjpa.jdbc.schema.Column, java.sql.Clob)"><B>whereClob(Column, Clob)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereClob(org.apache.openjpa.jdbc.schema.Column, java.sql.Clob)"><B>whereClob(Column, Clob)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#whereClone(int)"><B>whereClone(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#whereClone(int)"><B>whereClone(int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Return a SELECT with the same joins and where conditions as this one.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#whereClone(int)"><B>whereClone(int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereDate(org.apache.openjpa.jdbc.schema.Column, java.util.Date)"><B>whereDate(Column, Date)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereDate(org.apache.openjpa.jdbc.schema.Column, java.sql.Date, java.util.Calendar)"><B>whereDate(Column, Date, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereDate(org.apache.openjpa.jdbc.schema.Column, java.util.Date)"><B>whereDate(Column, Date)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereDate(org.apache.openjpa.jdbc.schema.Column, java.sql.Date, java.util.Calendar)"><B>whereDate(Column, Date, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereDouble(org.apache.openjpa.jdbc.schema.Column, double)"><B>whereDouble(Column, double)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereDouble(org.apache.openjpa.jdbc.schema.Column, double)"><B>whereDouble(Column, double)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereFloat(org.apache.openjpa.jdbc.schema.Column, float)"><B>whereFloat(Column, float)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereFloat(org.apache.openjpa.jdbc.schema.Column, float)"><B>whereFloat(Column, float)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#whereForeignKey(org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>whereForeignKey(Row, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html#whereForeignKey(org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>whereForeignKey(Row, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMapping.html" title="interface in org.apache.openjpa.jdbc.meta">ValueMapping</A>
<DD>Sets this value's foreign key to the given related object.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html#whereForeignKey(org.apache.openjpa.jdbc.sql.Row, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>whereForeignKey(Row, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/ValueMappingImpl.html" title="class in org.apache.openjpa.jdbc.meta">ValueMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#whereForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>whereForeignKey(ForeignKey, Object, ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#whereForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>whereForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>whereForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the foreign key equality criteria to link to the given object.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.kernel.OpenJPAStateManager)"><B>whereForeignKey(ForeignKey, OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#whereForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>whereForeignKey(ForeignKey, Object, ClassMapping, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add where conditions setting the given foreign key to the given
 oid values.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#whereForeignKey(org.apache.openjpa.jdbc.schema.ForeignKey, java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>whereForeignKey(ForeignKey, Object, ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereInt(org.apache.openjpa.jdbc.schema.Column, int)"><B>whereInt(Column, int)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereInt(org.apache.openjpa.jdbc.schema.Column, int)"><B>whereInt(Column, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereLocale(org.apache.openjpa.jdbc.schema.Column, java.util.Locale)"><B>whereLocale(Column, Locale)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereLocale(org.apache.openjpa.jdbc.schema.Column, java.util.Locale)"><B>whereLocale(Column, Locale)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereLong(org.apache.openjpa.jdbc.schema.Column, long)"><B>whereLong(Column, long)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereLong(org.apache.openjpa.jdbc.schema.Column, long)"><B>whereLong(Column, long)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereNull(org.apache.openjpa.jdbc.schema.Column)"><B>whereNull(Column)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereNull(org.apache.openjpa.jdbc.schema.Column)"><B>whereNull(Column)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereNumber(org.apache.openjpa.jdbc.schema.Column, java.lang.Number)"><B>whereNumber(Column, Number)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereNumber(org.apache.openjpa.jdbc.schema.Column, java.lang.Number)"><B>whereNumber(Column, Number)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>whereObject(Column, Object)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object)"><B>whereObject(Column, Object)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereObject(org.apache.openjpa.jdbc.schema.Column, java.lang.Object, int)"><B>whereObject(Column, Object, int)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>All where column methods delegate to this one.
<DT><A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html#wherePrimaryKey(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>wherePrimaryKey(Select, OpenJPAStateManager, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.meta.<A HREF="./org/apache/openjpa/jdbc/meta/FieldMapping.html" title="class in org.apache.openjpa.jdbc.meta">FieldMapping</A>
<DD>Add a <code>wherePrimaryKey</code> or <code>whereForeignKey</code>
 condition to the given select, depending on whether we have a join
 foreign key.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html#wherePrimaryKey(java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>wherePrimaryKey(Object, ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/LogicalUnion.UnionSelect.html" title="class in org.apache.openjpa.jdbc.sql">LogicalUnion.UnionSelect</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html#wherePrimaryKey(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>wherePrimaryKey(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/PrimaryRow.html" title="class in org.apache.openjpa.jdbc.sql">PrimaryRow</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#wherePrimaryKey(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>wherePrimaryKey(OpenJPAStateManager)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set the primary key equality criteria for this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#wherePrimaryKey(org.apache.openjpa.kernel.OpenJPAStateManager)"><B>wherePrimaryKey(OpenJPAStateManager)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Select.html#wherePrimaryKey(java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>wherePrimaryKey(Object, ClassMapping, JDBCStore)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>
<DD>Add where conditions setting the mapping's primary key to the given
 oid values.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#wherePrimaryKey(java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)"><B>wherePrimaryKey(Object, ClassMapping, JDBCStore)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereRaw(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>whereRaw(Column, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set a DB understood where condition for the given column.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereRaw(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>whereRaw(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereShort(org.apache.openjpa.jdbc.schema.Column, short)"><B>whereShort(Column, short)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereShort(org.apache.openjpa.jdbc.schema.Column, short)"><B>whereShort(Column, short)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereString(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>whereString(Column, String)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereString(org.apache.openjpa.jdbc.schema.Column, java.lang.String)"><B>whereString(Column, String)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereTime(org.apache.openjpa.jdbc.schema.Column, java.sql.Time, java.util.Calendar)"><B>whereTime(Column, Time, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereTime(org.apache.openjpa.jdbc.schema.Column, java.sql.Time, java.util.Calendar)"><B>whereTime(Column, Time, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/Row.html#whereTimestamp(org.apache.openjpa.jdbc.schema.Column, java.sql.Timestamp, java.util.Calendar)"><B>whereTimestamp(Column, Timestamp, Calendar)</B></A> - 
Method in interface org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/Row.html" title="interface in org.apache.openjpa.jdbc.sql">Row</A>
<DD>Set an equality condition on the value of the given column in this row.
<DT><A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html#whereTimestamp(org.apache.openjpa.jdbc.schema.Column, java.sql.Timestamp, java.util.Calendar)"><B>whereTimestamp(Column, Timestamp, Calendar)</B></A> - 
Method in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/RowImpl.html" title="class in org.apache.openjpa.jdbc.sql">RowImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps"><B>WildcardMatch</B></A> - Class in <A HREF="./org/apache/openjpa/kernel/exps/package-summary.html">org.apache.openjpa.kernel.exps</A><DD><B>Deprecated.</B>&nbsp;<I>Use <code>matches()</code> instead.</I><DT><A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html#WildcardMatch()"><B>WildcardMatch()</B></A> - 
Constructor for class org.apache.openjpa.kernel.exps.<A HREF="./org/apache/openjpa/kernel/exps/WildcardMatch.html" title="class in org.apache.openjpa.kernel.exps">WildcardMatch</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop"><B>WindowResultList</B></A> - Class in <A HREF="./org/apache/openjpa/lib/rop/package-summary.html">org.apache.openjpa.lib.rop</A><DD>ResultList implementation that uses a forward-scrolling window of results.<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#WindowResultList(org.apache.openjpa.lib.rop.ResultObjectProvider)"><B>WindowResultList(ResultObjectProvider)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#WindowResultList(org.apache.openjpa.lib.rop.ResultObjectProvider, int)"><B>WindowResultList(ResultObjectProvider, int)</B></A> - 
Constructor for class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html" title="class in org.apache.openjpa.ee"><B>WLSManagedRuntime</B></A> - Class in <A HREF="./org/apache/openjpa/ee/package-summary.html">org.apache.openjpa.ee</A><DD><A HREF="./org/apache/openjpa/ee/ManagedRuntime.html" title="interface in org.apache.openjpa.ee"><CODE>ManagedRuntime</CODE></A> implementation that directly accesses the
 transaction manager via WebLogic Server helper classes.<DT><A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html#WLSManagedRuntime()"><B>WLSManagedRuntime()</B></A> - 
Constructor for class org.apache.openjpa.ee.<A HREF="./org/apache/openjpa/ee/WLSManagedRuntime.html" title="class in org.apache.openjpa.ee">WLSManagedRuntime</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/Filters.html#wrap(java.lang.Class)"><B>wrap(Class)</B></A> - 
Static method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/Filters.html" title="class in org.apache.openjpa.kernel">Filters</A>
<DD>Return the correct wrapper type for the given class.
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html#wrapResult(java.sql.ResultSet, boolean)"><B>wrapResult(ResultSet, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingPreparedStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingPreparedStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html#wrapResult(java.sql.ResultSet, boolean)"><B>wrapResult(ResultSet, boolean)</B></A> - 
Method in class org.apache.openjpa.lib.jdbc.<A HREF="./org/apache/openjpa/lib/jdbc/DelegatingStatement.html" title="class in org.apache.openjpa.lib.jdbc">DelegatingStatement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/BytecodeWriter.html#write(serp.bytecode.BCClass)"><B>write(BCClass)</B></A> - 
Method in interface org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#write(java.io.OutputStream)"><B>write(OutputStream)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Write the internal value template with all parameters
 substituted with their current values.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#write(java.io.Writer)"><B>write(Writer)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Write the internal value template with all parameters
 substituted with their current values.
<DT><A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html#write(java.io.File)"><B>write(File)</B></A> - 
Method in class org.apache.openjpa.lib.util.<A HREF="./org/apache/openjpa/lib/util/ParameterTemplate.html" title="class in org.apache.openjpa.lib.util">ParameterTemplate</A>
<DD>Write the internal value template with all parameters
 substituted with their current values.
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html#write(char[], int, int)"><B>write(char[], int, int)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html" title="class in org.apache.openjpa.lib.xml">XMLWriter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html#write(java.lang.String, int, int)"><B>write(String, int, int)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html" title="class in org.apache.openjpa.lib.xml">XMLWriter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html" title="class in org.apache.openjpa.lib.xml">XMLWriter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html#writeAnnotations(java.lang.Object, java.util.List, java.util.Map)"><B>writeAnnotations(Object, List&lt;AnnotationBuilder&gt;, Map)</B></A> - 
Method in class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/AnnotationPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">AnnotationPersistenceMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#writeCode()"><B>writeCode()</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Write the generated code to the proper file.
<DT><A HREF="./org/apache/openjpa/enhance/CodeGenerator.html#writeCode(java.io.Writer)"><B>writeCode(Writer)</B></A> - 
Method in class org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A>
<DD>Write the code to the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Writer.html" title="class or interface in java.io"><CODE>Writer</CODE></A>.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html#writeDataValue(java.io.Writer, int, java.lang.Object)"><B>writeDataValue(Writer, int, Object)</B></A> - 
Method in class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html" title="class in org.apache.openjpa.xmlstore">XMLFileHandler</A>
<DD>Write out the data value.
<DT><A HREF="./org/apache/openjpa/enhance/StateManager.html#writeDetached(java.io.ObjectOutput)"><B>writeDetached(ObjectOutput)</B></A> - 
Method in interface org.apache.openjpa.enhance.<A HREF="./org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A>
<DD>Write detached state object and detached state manager to the
 given stream.
<DT><A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html#writeDetached(java.io.ObjectOutput)"><B>writeDetached(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedStateManager.html" title="class in org.apache.openjpa.kernel">DetachedStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html#writeDetached(java.io.ObjectOutput)"><B>writeDetached(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DetachedValueStateManager.html" title="class in org.apache.openjpa.kernel">DetachedValueStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html#writeDetached(java.io.ObjectOutput)"><B>writeDetached(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/ObjectIdStateManager.html" title="class in org.apache.openjpa.kernel">ObjectIdStateManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html#writeDetached(java.io.ObjectOutput)"><B>writeDetached(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/StateManagerImpl.html" title="class in org.apache.openjpa.kernel">StateManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryKey.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryKey.html" title="class in org.apache.openjpa.datacache">QueryKey</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/BeanLifecycleCallbacks.html" title="class in org.apache.openjpa.event">BeanLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/MethodLifecycleCallbacks.html" title="class in org.apache.openjpa.event">MethodLifecycleCallbacks</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.event.<A HREF="./org/apache/openjpa/event/RemoteCommitEvent.html" title="class in org.apache.openjpa.event">RemoteCommitEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.openjpa.lib.conf.<A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html" title="class in org.apache.openjpa.lib.conf">ConfigurationImpl</A>
<DD>Implementation of the <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Externalizable.html" title="class or interface in java.io"><CODE>Externalizable</CODE></A> interface to write
 the properties returned by <A HREF="./org/apache/openjpa/lib/conf/ConfigurationImpl.html#toProperties(boolean)"><CODE>ConfigurationImpl.toProperties(boolean)</CODE></A>.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#writeLock()"><B>writeLock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#writeLock()"><B>writeLock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#writeLock()"><B>writeLock()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Obtain a write lock on the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#writeLock()"><B>writeLock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#writeLock()"><B>writeLock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#writeLock()"><B>writeLock()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Obtain a write lock on the cache.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#writeLock()"><B>writeLock()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Acquire write lock.
<DT><A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html#writeLockLevel"><B>writeLockLevel</B></A> - 
Variable in class org.apache.openjpa.conf.<A HREF="./org/apache/openjpa/conf/OpenJPAConfigurationImpl.html" title="class in org.apache.openjpa.conf">OpenJPAConfigurationImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html#writeLockLevel"><B>writeLockLevel</B></A> - 
Variable in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/FetchConfigurationImpl.ConfigurationState.html" title="class in org.apache.openjpa.kernel">FetchConfigurationImpl.ConfigurationState</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html#writer"><B>writer</B></A> - 
Variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SchemaTool.Flags.html" title="class in org.apache.openjpa.jdbc.schema">SchemaTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html#writer"><B>writer</B></A> - 
Variable in class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/MetaDataTool.Flags.html" title="class in org.apache.openjpa.meta">MetaDataTool.Flags</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.CachedList.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery.CachedList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCacheStoreQuery.html" title="class in org.apache.openjpa.datacache">QueryCacheStoreQuery</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/DelegatingResultList.html" title="class in org.apache.openjpa.kernel">DelegatingResultList</A>
<DD>Writes delegate, which may in turn write a normal list.
<DT><A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.kernel.<A HREF="./org/apache/openjpa/kernel/QueryImpl.RemoveOnCloseResultList.html" title="class in org.apache.openjpa.kernel">QueryImpl.RemoveOnCloseResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/LazyForwardResultList.html" title="class in org.apache.openjpa.lib.rop">LazyForwardResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/ListResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/ListResultList.html" title="class in org.apache.openjpa.lib.rop">ListResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/RandomAccessResultList.html" title="class in org.apache.openjpa.lib.rop">RandomAccessResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/SimpleResultList.html" title="class in org.apache.openjpa.lib.rop">SimpleResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.lib.rop.<A HREF="./org/apache/openjpa/lib/rop/WindowResultList.html" title="class in org.apache.openjpa.lib.rop">WindowResultList</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyCollection.html" title="class in org.apache.openjpa.util">AbstractLRSProxyCollection</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/AbstractLRSProxyMap.html" title="class in org.apache.openjpa.util">AbstractLRSProxyMap</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/Proxies.html#writeReplace(org.apache.openjpa.util.Proxy, boolean)"><B>writeReplace(Proxy, boolean)</B></A> - 
Static method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/Proxies.html" title="class in org.apache.openjpa.util">Proxies</A>
<DD>Used by proxy types to serialize non-proxy versions.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html#writeSchemaColumn(java.lang.String)"><B>writeSchemaColumn(String)</B></A> - 
Method in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/TableSchemaFactory.html" title="class in org.apache.openjpa.jdbc.schema">TableSchemaFactory</A>
<DD>Writes the schema as a string to the database.
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentDataCache.html" title="class in org.apache.openjpa.datacache">ConcurrentDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/ConcurrentQueryCache.html" title="class in org.apache.openjpa.datacache">ConcurrentQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DataCache.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A>
<DD>Release the write lock on the cache.
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingDataCache.html" title="class in org.apache.openjpa.datacache">DelegatingDataCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in class org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/DelegatingQueryCache.html" title="class in org.apache.openjpa.datacache">DelegatingQueryCache</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/datacache/QueryCache.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in interface org.apache.openjpa.datacache.<A HREF="./org/apache/openjpa/datacache/QueryCache.html" title="interface in org.apache.openjpa.datacache">QueryCache</A>
<DD>Release the write lock on the cache.
<DT><A HREF="./org/apache/openjpa/util/CacheMap.html#writeUnlock()"><B>writeUnlock()</B></A> - 
Method in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/CacheMap.html" title="class in org.apache.openjpa.util">CacheMap</A>
<DD>Release write lock.
</DL>
<HR>
<A NAME="_X_"><!-- --></A><H2>
<B>X</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XJoinColumn.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>XJoinColumn</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Extended join column.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XJoinColumns.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>XJoinColumns</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows the specification of multiple columns for compound joins.<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta"><B>XMLClassMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>&nbsp;<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#XMLClassMetaData(java.lang.Class, java.lang.String)"><B>XMLClassMetaData(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html#XMLClassMetaData(java.lang.Class)"><B>XMLClassMetaData(Class)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLClassMetaData.html" title="class in org.apache.openjpa.meta">XMLClassMetaData</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html" title="class in org.apache.openjpa.xmlstore"><B>XMLConfiguration</B></A> - Class in <A HREF="./org/apache/openjpa/xmlstore/package-summary.html">org.apache.openjpa.xmlstore</A><DD>Configuration implementation for the XML file store.<DT><A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html#XMLConfiguration()"><B>XMLConfiguration()</B></A> - 
Constructor for class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLConfiguration.html" title="class in org.apache.openjpa.xmlstore">XMLConfiguration</A>
<DD>Default constructor.
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html" title="class in org.apache.openjpa.lib.xml"><B>XMLFactory</B></A> - Class in <A HREF="./org/apache/openjpa/lib/xml/package-summary.html">org.apache.openjpa.lib.xml</A><DD>The XMLFactory produces validating and non-validating DOM level 2
 and SAX level 2 parsers and XSL transformers through JAXP.<DT><A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html#XMLFactory()"><B>XMLFactory()</B></A> - 
Constructor for class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLFactory.html" title="class in org.apache.openjpa.lib.xml">XMLFactory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta"><B>XMLFieldMetaData</B></A> - Class in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Contains metadata about an xml element or attribute<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#XMLFieldMetaData()"><B>XMLFieldMetaData()</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html#XMLFieldMetaData(java.lang.Class, java.lang.String)"><B>XMLFieldMetaData(Class, String)</B></A> - 
Constructor for class org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLFieldMetaData.html" title="class in org.apache.openjpa.meta">XMLFieldMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html" title="class in org.apache.openjpa.xmlstore"><B>XMLFileHandler</B></A> - Class in <A HREF="./org/apache/openjpa/xmlstore/package-summary.html">org.apache.openjpa.xmlstore</A><DD>Stores <A HREF="./org/apache/openjpa/xmlstore/ObjectData.html" title="class in org.apache.openjpa.xmlstore"><CODE>ObjectData</CODE></A> objects by serializing a collection
 of them into and out of an XML file.<DT><A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html#XMLFileHandler(org.apache.openjpa.xmlstore.XMLConfiguration)"><B>XMLFileHandler(XMLConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLFileHandler.html" title="class in org.apache.openjpa.xmlstore">XMLFileHandler</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta"><B>XMLMetaData</B></A> - Interface in <A HREF="./org/apache/openjpa/meta/package-summary.html">org.apache.openjpa.meta</A><DD>Describe metadata about an xml type.<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta"><B>XMLMetaDataParser</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Custom SAX parser used by the system to quickly parse metadata files.<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html#XMLMetaDataParser()"><B>XMLMetaDataParser()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataParser.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataParser</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta"><B>XMLMetaDataSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Abstract base type for serlializers that transfer groups of objects
 to XML.<DT><A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html#XMLMetaDataSerializer()"><B>XMLMetaDataSerializer()</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/XMLMetaDataSerializer.html" title="class in org.apache.openjpa.lib.meta">XMLMetaDataSerializer</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc"><B>XMLPersistenceMappingParser</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Custom SAX parser used by the system to parse persistence mapping files.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html#XMLPersistenceMappingParser(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>XMLPersistenceMappingParser(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingParser.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingParser</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc"><B>XMLPersistenceMappingSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Serializes persistence mapping to XML.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html#XMLPersistenceMappingSerializer(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>XMLPersistenceMappingSerializer(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc"><B>XMLPersistenceMappingSerializer.MappingSerializationComparator</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Extends <A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc"><CODE>XMLPersistenceMappingSerializer.MappingSerializationComparator</CODE></A> for store-specific tags such
 as &lt;sql-result-set-mapping&gt;.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.MappingSerializationComparator.html#XMLPersistenceMappingSerializer.MappingSerializationComparator()"><B>XMLPersistenceMappingSerializer.MappingSerializationComparator()</B></A> - 
Constructor for class org.apache.openjpa.persistence.jdbc.<A HREF="./org/apache/openjpa/persistence/jdbc/XMLPersistenceMappingSerializer.MappingSerializationComparator.html" title="class in org.apache.openjpa.persistence.jdbc">XMLPersistenceMappingSerializer.MappingSerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence"><B>XMLPersistenceMetaDataParser</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Custom SAX parser used by the system to quickly parse persistence i
 metadata files.<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html#XMLPersistenceMetaDataParser(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>XMLPersistenceMetaDataParser(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataParser</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence"><B>XMLPersistenceMetaDataSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Serializes persistence metadata back to XML.<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html#XMLPersistenceMetaDataSerializer(org.apache.openjpa.conf.OpenJPAConfiguration)"><B>XMLPersistenceMetaDataSerializer(OpenJPAConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence"><B>XMLPersistenceMetaDataSerializer.SerializationComparator</B></A> - Class in <A HREF="./org/apache/openjpa/persistence/package-summary.html">org.apache.openjpa.persistence</A><DD>Compares clases, sequences, and queries to order them for serialization.<DT><A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html#XMLPersistenceMetaDataSerializer.SerializationComparator()"><B>XMLPersistenceMetaDataSerializer.SerializationComparator()</B></A> - 
Constructor for class org.apache.openjpa.persistence.<A HREF="./org/apache/openjpa/persistence/XMLPersistenceMetaDataSerializer.SerializationComparator.html" title="class in org.apache.openjpa.persistence">XMLPersistenceMetaDataSerializer.SerializationComparator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema"><B>XMLSchemaParser</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Custom SAX parser used to parse <A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>Schema</CODE></A> objects.<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html#XMLSchemaParser(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>XMLSchemaParser(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html" title="class in org.apache.openjpa.jdbc.schema"><B>XMLSchemaParser.UniqueInfo</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Used to hold unique constraint info before it is resolved.<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html#XMLSchemaParser.UniqueInfo()"><B>XMLSchemaParser.UniqueInfo()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.UniqueInfo.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaParser.UniqueInfo</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema"><B>XMLSchemaSerializer</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/schema/package-summary.html">org.apache.openjpa.jdbc.schema</A><DD>Serializes <A HREF="./org/apache/openjpa/jdbc/schema/Schema.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>Schema</CODE></A>s to XML matching the document
 type definition defined by the <A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaParser.html" title="class in org.apache.openjpa.jdbc.schema"><CODE>XMLSchemaParser</CODE></A>.<DT><A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html#XMLSchemaSerializer(org.apache.openjpa.jdbc.conf.JDBCConfiguration)"><B>XMLSchemaSerializer(JDBCConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/XMLSchemaSerializer.html" title="class in org.apache.openjpa.jdbc.schema">XMLSchemaSerializer</A>
<DD>Constructor.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore"><B>XMLStore</B></A> - Class in <A HREF="./org/apache/openjpa/xmlstore/package-summary.html">org.apache.openjpa.xmlstore</A><DD>Represents a store of object data encoded in XML.<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStore.html#XMLStore(org.apache.openjpa.xmlstore.XMLConfiguration)"><B>XMLStore(XMLConfiguration)</B></A> - 
Constructor for class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStore.html" title="class in org.apache.openjpa.xmlstore">XMLStore</A>
<DD>Constructor; supply configuration.
<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore"><B>XMLStoreManager</B></A> - Class in <A HREF="./org/apache/openjpa/xmlstore/package-summary.html">org.apache.openjpa.xmlstore</A><DD>Store manager to a back-end consisting of XML files.<DT><A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html#XMLStoreManager()"><B>XMLStoreManager()</B></A> - 
Constructor for class org.apache.openjpa.xmlstore.<A HREF="./org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/meta/XMLMetaData.html#XMLTYPE"><B>XMLTYPE</B></A> - 
Static variable in interface org.apache.openjpa.meta.<A HREF="./org/apache/openjpa/meta/XMLMetaData.html" title="interface in org.apache.openjpa.meta">XMLMetaData</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html#xmlTypeName"><B>xmlTypeName</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/DBDictionary.html" title="class in org.apache.openjpa.jdbc.sql">DBDictionary</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats"><B>XMLValueHandler</B></A> - Class in <A HREF="./org/apache/openjpa/jdbc/meta/strats/package-summary.html">org.apache.openjpa.jdbc.meta.strats</A><DD>Base class for xml value handlers.<DT><A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html#XMLValueHandler()"><B>XMLValueHandler()</B></A> - 
Constructor for class org.apache.openjpa.jdbc.meta.strats.<A HREF="./org/apache/openjpa/jdbc/meta/strats/XMLValueHandler.html" title="class in org.apache.openjpa.jdbc.meta.strats">XMLValueHandler</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html" title="class in org.apache.openjpa.lib.xml"><B>XMLWriter</B></A> - Class in <A HREF="./org/apache/openjpa/lib/xml/package-summary.html">org.apache.openjpa.lib.xml</A><DD>The XMLWriter is a writer type for pretty-printing XML.<DT><A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html#XMLWriter(java.io.Writer)"><B>XMLWriter(Writer)</B></A> - 
Constructor for class org.apache.openjpa.lib.xml.<A HREF="./org/apache/openjpa/lib/xml/XMLWriter.html" title="class in org.apache.openjpa.lib.xml">XMLWriter</A>
<DD>Construct an XMLWriter that will write to the given stream.
<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XSecondaryTable.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>XSecondaryTable</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Extended secondary table.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XSecondaryTables.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>XSecondaryTables</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Allows the specification of multiple secondary tables.<DT><A HREF="./org/apache/openjpa/persistence/jdbc/XTable.html" title="annotation in org.apache.openjpa.persistence.jdbc"><B>XTable</B></A> - Annotation Type in <A HREF="./org/apache/openjpa/persistence/jdbc/package-summary.html">org.apache.openjpa.persistence.jdbc</A><DD>Extended table.</DL>
<HR>
<A NAME="_Z_"><!-- --></A><H2>
<B>Z</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>ZipFileMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over all metadata resources in a given zip file.<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#ZipFileMetaDataIterator(java.net.URL, org.apache.openjpa.lib.meta.MetaDataFilter)"><B>ZipFileMetaDataIterator(URL, MetaDataFilter)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>Constructor; supply zip/jar URL and optional file filter.
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html#ZipFileMetaDataIterator(java.util.zip.ZipFile, org.apache.openjpa.lib.meta.MetaDataFilter)"><B>ZipFileMetaDataIterator(ZipFile, MetaDataFilter)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipFileMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipFileMetaDataIterator</A>
<DD>Constructor; supply zip file and optional file filter.
<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta"><B>ZipStreamMetaDataIterator</B></A> - Class in <A HREF="./org/apache/openjpa/lib/meta/package-summary.html">org.apache.openjpa.lib.meta</A><DD>Iterator over all metadata resources in a given zip input stream.<DT><A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html#ZipStreamMetaDataIterator(java.util.zip.ZipInputStream, org.apache.openjpa.lib.meta.MetaDataFilter)"><B>ZipStreamMetaDataIterator(ZipInputStream, MetaDataFilter)</B></A> - 
Constructor for class org.apache.openjpa.lib.meta.<A HREF="./org/apache/openjpa/lib/meta/ZipStreamMetaDataIterator.html" title="class in org.apache.openjpa.lib.meta">ZipStreamMetaDataIterator</A>
<DD>Constructor; supply zip stream and optional metadata filter.
</DL>
<HR>
<A NAME="___"><!-- --></A><H2>
<B>_</B></H2>
<DL>
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#_aliases"><B>_aliases</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#_conn"><B>_conn</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#_dict"><B>_dict</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#_dict"><B>_dict</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#_exceptions"><B>_exceptions</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#_idents"><B>_idents</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#_ids"><B>_ids</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html#_listeners"><B>_listeners</B></A> - 
Variable in class org.apache.openjpa.lib.util.concurrent.<A HREF="./org/apache/openjpa/lib/util/concurrent/AbstractConcurrentEventManager.html" title="class in org.apache.openjpa.lib.util.concurrent">AbstractConcurrentEventManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html#_loc"><B>_loc</B></A> - 
Static variable in class org.apache.openjpa.jdbc.schema.<A HREF="./org/apache/openjpa/jdbc/schema/SimpleDriverDataSource.html" title="class in org.apache.openjpa.jdbc.schema">SimpleDriverDataSource</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#_outer"><B>_outer</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html#_selectAs"><B>_selectAs</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.Selects.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl.Selects</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html#_selects"><B>_selects</B></A> - 
Variable in class org.apache.openjpa.jdbc.sql.<A HREF="./org/apache/openjpa/jdbc/sql/SelectImpl.html" title="class in org.apache.openjpa.jdbc.sql">SelectImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html#_store"><B>_store</B></A> - 
Variable in class org.apache.openjpa.jdbc.kernel.<A HREF="./org/apache/openjpa/jdbc/kernel/PreparedStatementManagerImpl.html" title="class in org.apache.openjpa.jdbc.kernel">PreparedStatementManagerImpl</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/openjpa/util/ImplHelper.html#_unenhancedInstanceMap"><B>_unenhancedInstanceMap</B></A> - 
Static variable in class org.apache.openjpa.util.<A HREF="./org/apache/openjpa/util/ImplHelper.html" title="class in org.apache.openjpa.util">ImplHelper</A>
<DD>&nbsp;
</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Z_">Z</A> <A HREF="#___">_</A> 

<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2006-2008 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
