You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by kw...@apache.org on 2014/05/15 00:22:26 UTC

svn commit: r908837 [25/37] - /websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/

Added: websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_dbsetup_dbsupport.html
==============================================================================
--- websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_dbsetup_dbsupport.html (added)
+++ websites/production/openjpa/content/builds/2.3.0/apache-openjpa/docs/ref_guide_dbsetup_dbsupport.html Wed May 14 22:22:23 2014
@@ -0,0 +1,1808 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>4.&nbsp; Database Support</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><link rel="home" href="manual.html" title="Apache OpenJPA 2.3 User's Guide"><link rel="up" href="ref_guide_dbsetup.html" title="Chapter&nbsp;4.&nbsp; JDBC"><link rel="prev" href="ref_guide_dbsetup_sqlconn.html" title="3.&nbsp; Runtime Access to DataSource"><link rel="next" href="ref_guide_dbsetup_isolation.html" title="5.&nbsp; Setting the Transaction Isolation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.&nbsp;
+            Database Support
+        </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_dbsetup_sqlconn.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;4.&nbsp;
+        JDBC
+    </th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ref_guide_dbsetup_isolation.html">Next</a></td></tr></table><hr></div><div class="section" title="4.&nbsp; Database Support"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ref_guide_dbsetup_dbsupport">4.&nbsp;
+            Database Support
+        </h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbdictprops">4.1. 
+                DBDictionary Properties
+            </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_firebird">4.2. 
+                FirebirdDictionary Properties
+            </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_mysql">4.3. 
+                MySQLDictionary Properties
+            </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_oracle">4.4. 
+                OracleDictionary Properties
+            </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_sybase">4.5. 
+                SybaseDictionary Properties
+            </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_db2">4.6. 
+                DB2 Properties
+            </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_delim_id">4.7. 
+        		Delimited Identifiers Support
+        	</a></span></dt></dl></div>
+        
+        <a class="indexterm" name="d5e9734"></a>
+        <a class="indexterm" name="d5e9736"></a>
+        <p>
+OpenJPA can take advantage of any JDBC 2.x compliant
+driver, making almost any major database a candidate for use. See our officially
+supported database list in <a class="xref" href="supported_databases.html" title="Appendix&nbsp;2.&nbsp; Supported Databases">Appendix&nbsp;2, <i>
+        Supported Databases
+    </i></a> for more
+information. Typically, OpenJPA auto-configures its JDBC behavior and SQL
+dialect for your database, based on the values of your connection-related
+configuration properties.
+        </p>
+        <p>
+If OpenJPA cannot detect what type of database you are using, or if you are
+using an unsupported database, you will have to tell OpenJPA what
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/DBDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.DBDictionary</code></a> to use.
+The <code class="classname">DBDictionary</code> abstracts away the differences between
+databases. You can plug a dictionary into OpenJPA using the
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2.&nbsp; openjpa.jdbc.DBDictionary"><code class="literal">openjpa.jdbc.DBDictionary
+</code></a> configuration property. The built-in dictionaries are listed
+below. If you are using an unsupported database, you may have to write your own
+<code class="classname">DBDictionary</code> subclass, a simple process.
+        </p>
+        <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9752"></a>
+<code class="literal">access</code>: Dictionary for Microsoft Access. This is an alias
+for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/AccessDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.AccessDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9759"></a>
+<code class="literal">db2</code>: Dictionary for IBM's DB2 database. This is an alias for
+the <a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/DB2Dictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.DB2Dictionary</code></a> class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9766"></a>
+<code class="literal">derby</code>: Dictionary for the Apache Derby database. This is an
+alias for the 
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/DerbyDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.DerbyDictionary</code> class.
+</a>
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9773"></a>
+<code class="literal">empress</code>: Dictionary for Empress database This is an alias
+for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/EmpressDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.EmpressDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9780"></a>
+<code class="literal">foxpro</code>: Dictionary for Microsoft Visual FoxPro. This is an
+alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/FoxProDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.FoxProDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9787"></a>
+<code class="literal">h2</code>: Dictionary for the H2 Database Engine. This is an
+alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/H2Dictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.H2Dictionary</code></a> class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9794"></a>
+<code class="literal">hsql</code>: Dictionary for the Hypersonic SQL database. This is an
+alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/HSQLDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.HSQLDictionary</code></a> class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9801"></a>
+<code class="literal">informix</code>: Dictionary for the Informix database. This is an
+alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/InformixDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.InformixDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9808"></a>
+<code class="literal">ingres</code>: Dictionary for Ingres. This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/IngresDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.IngresDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9815"></a>
+<code class="literal">jdatastore</code>: Dictionary for Borland JDataStore. This is an
+alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/JDataStoreDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.JDataStoreDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9822"></a>
+<code class="literal">mysql</code>: Dictionary for the MySQL database. This is an alias
+for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/MySQLDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.MySQLDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9829"></a>
+<code class="literal">oracle</code>: Dictionary for Oracle. This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/OracleDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.OracleDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9836"></a>
+<code class="literal">pointbase</code>: Dictionary for Pointbase Embedded database. This
+is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/PointbaseDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.PointbaseDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9843"></a>
+<code class="literal">postgres</code>: Dictionary for PostgreSQL. This is an alias for
+the <a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/PostgresDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.PostgresDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9850"></a>
+<code class="literal">soliddb</code>: Dictionary for IBM's SolidDB database.
+This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/SolidDBDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.SolidDBDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9857"></a>
+<code class="literal">sqlserver</code>: Dictionary for Microsoft's SQL Server database.
+This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/SQLServerDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.SQLServerDictionary</code></a>
+class.
+                </p>
+            </li><li class="listitem">
+                <p>
+                <a class="indexterm" name="d5e9864"></a>
+<code class="literal">sybase</code>: Dictionary for Sybase. This is an alias for the
+<a class="ulink" href="../javadoc/org/apache/openjpa/jdbc/sql/SybaseDictionary.html" target="_top">
+<code class="classname">org.apache.openjpa.jdbc.sql.SybaseDictionary</code></a>
+class.
+                </p>
+            </li></ul></div>
+        <p>
+The example below demonstrates how to set a dictionary and configure its
+properties in your configuration file. The <code class="literal">DBDictionary</code>
+property uses OpenJPA's <a class="link" href="ref_guide_conf_plugins.html" title="4.&nbsp; Plugin Configuration">plugin syntax
+</a>.
+        </p>
+        <div class="example"><a name="ref_guide_dbsetup_dbdict"></a><p class="title"><b>Example&nbsp;4.7.&nbsp;
+                Specifying a DBDictionary
+            </b></p><div class="example-contents">
+            
+<pre class="programlisting">
+&lt;property name="openjpa.jdbc.DBDictionary" value="hsql(SimulateLocking=true)"/&gt;
+</pre>
+        </div></div><br class="example-break">
+        <div class="section" title="4.1.&nbsp; DBDictionary Properties"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_dbsetup_dbdictprops">4.1.&nbsp;
+                DBDictionary Properties
+            </h3></div></div></div>
+            
+            <p>
+The standard dictionaries all recognize the following properties. These
+properties will usually not need to be overridden, since the dictionary
+implementation should use the appropriate default values for your database. You
+typically won't use these properties unless you are designing your own
+<code class="classname">DBDictionary</code> for an unsupported database.
+            </p>
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9882"></a>
+<code class="literal">AllowsAliasInBulkClause</code>: 
+When true, SQL delete and update statements may use table aliases.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9888"></a>
+<code class="literal">ArrayTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.ARRAY</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9896"></a>
+<code class="literal">AutoAssignClause</code>: The column definition clause to append to
+a creation statement. For example, <code class="literal">"AUTO_INCREMENT"</code> for
+MySQL. This property is set automatically in the dictionary, and should not need
+to be overridden, and is only used when the schema is generated using the
+<code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9905"></a>
+                    <a class="indexterm" name="d5e9908"></a>
+<code class="literal">AutoAssignTypeName</code>: 
+The column type name for auto-increment
+columns. For example, <code class="literal">"BIGSERIAL"</code> for PostgreSQL. This
+property is set automatically in the dictionary and should not need to be
+overridden.  It is used only when the schema is generated using the 
+<code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9917"></a>
+<code class="literal">BatchLimit</code>: 
+The default batch limit for sending multiple SQL statements at once to the
+database.  A value of -1 indicates unlimited batching, and any positive integer
+indicates the maximum number of SQL statements to batch together.  
+Defaults to 0 which disables batching.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9923"></a>
+<code class="literal">BigintTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.BIGINT</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9931"></a>
+<code class="literal">BinaryTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.BINARY</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9939"></a>
+<code class="literal">BitTypeName</code>: The overridden default column type for 
+<code class="literal">java.sql.Types.BIT</code>. This is used only when the schema is generated by
+the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9947"></a>
+<code class="literal">BlobBufferSize</code>: This property establishes the buffer size in
+the <code class="literal">INSERT/UPDATE</code> operations with an 
+<code class="literal">java.io.InputStream</code>. This is only used with OpenJPA's
+<a class="xref" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11.&nbsp; LOB Streaming">Section&nbsp;7.11, &#8220;
+                LOB Streaming
+            &#8221;</a>. Defaults to 50000.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9956"></a>
+                    <a class="indexterm" name="d5e9959"></a>
+<code class="literal">BlobTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.BLOB</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9967"></a>
+<code class="literal">BooleanTypeName</code>: 
+The overridden default column type for 
+<code class="literal">java.sql.Types.BOOLEAN</code>. This is used only when the schema 
+is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9975"></a>
+<code class="literal">CastFunction</code>: 
+The SQL function call to cast a value to another SQL type. 
+Use the tokens <code class="literal">{0}</code> and <code class="literal">{1}</code> to represent 
+the two arguments.  The result of the function is convert the 
+<code class="literal">{0}</code> value to a <code class="literal">{1}</code> type.
+The default is <code class="literal">"CAST({0} AS {1})"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9986"></a>
+<code class="literal">CatalogSeparator</code>: The string the database uses to delimit
+between the schema name and the table name. This is typically <code class="literal">"."
+</code>, which is the default.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e9993"></a>
+<code class="literal">CharTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.CHAR</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10001"></a>
+<code class="literal">CharacterColumnSize</code>: The default size of <code class="literal">varchar
+</code> and <code class="literal">char</code> columns. Typically 255.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10009"></a>
+<code class="literal">ClobBufferSize</code>: This property establish the buffer size in 
+the <code class="literal">INSERT/UPDATE</code> operations with a 
+<code class="literal">java.io.Reader</code>. This is only used with OpenJPA's
+<a class="xref" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11.&nbsp; LOB Streaming">Section&nbsp;7.11, &#8220;
+                LOB Streaming
+            &#8221;</a>. Defaults to 50000.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10018"></a>
+                    <a class="indexterm" name="d5e10021"></a>
+<code class="literal">ClobTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.CLOB</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10029"></a>
+<code class="literal">ClosePoolSQL</code>: 
+A special command to issue to the database when shutting down the pool.
+Usually the pool of connections to the database is closed when the 
+application is ending.  For embedded databases, whose lifecycle is 
+coterminous with the application, there may be a special
+command, usually <code class="literal">"SHUTDOWN"</code>, 
+that will cause the embedded database to close cleanly.  
+Defaults to <code class="literal">null</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10037"></a>
+<code class="literal">ConcatenateFunction</code>:
+The SQL function call or operation to concatenate two strings. 
+Use the tokens <code class="literal">{0}</code> and <code class="literal">{1}</code> to represent 
+the two arguments.  The result of the function or operation is to concatenate 
+the <code class="literal">{1}</code> string to the end of the <code class="literal">{0}</code> 
+string.  Defaults to <code class="literal">"({0}||{1})"</code>.  
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10048"></a>
+<code class="literal">ConstraintNameMode</code>: When creating constraints, whether to
+put the constraint name before the definition (<code class="literal">"before"</code>),
+just after the constraint type name (<code class="literal">"mid"</code>), or after the
+constraint definition (<code class="literal">"after"</code>). 
+Defaults to <code class="literal">"before"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10058"></a>
+<code class="literal">CreatePrimaryKeys</code>: When false, do not
+create database primary keys for identifiers. Defaults to <code class="literal">true
+</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10065"></a>
+<code class="literal">CrossJoinClause</code>: The clause to use for a cross join
+(cartesian product). Defaults to <code class="literal">"CROSS JOIN"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10072"></a>
+<code class="literal">CurrentDateFunction</code>:
+The SQL function call to obtain the current date from the database.
+Defaults to <code class="literal">"CURRENT_DATE"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10079"></a>
+<code class="literal">CurrentTimeFunction</code>:
+The SQL function call to obtain the current time from the database.
+Defaults to <code class="literal">"CURRENT_TIME"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10086"></a>
+<code class="literal">CurrentTimestampFunction</code>:
+The SQL function call to obtain the current timestamp from the database.
+Defaults to <code class="literal">"CURRENT_TIMESTAMP"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10093"></a>
+<code class="literal">DatePrecision</code>:
+The database is able to store time values to this degree of precision,
+which is expressed in nanoseconds.
+This value is usually one million, meaning that the database is able
+to store time values with a precision of one millisecond.  Particular
+databases may have more or less precision.
+OpenJPA will round all time values to this degree of precision
+before storing them in the database.
+Defaults to 1000000.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10099"></a>
+<code class="literal">DateTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.DATE</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10107"></a>
+<code class="literal">DecimalTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.DECIMAL</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                	<p>
+                	<a class="indexterm" name="d5e10115"></a>
+<code class="literal">DelimitedCase</code>: The case to use when querying the database 
+about identifiers that have been delimited. It defaults to preserving the
+case of the originally specified name. Available values are:
+<code class="literal">upper, lower, preserve.</code>                	
+                	</p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10122"></a>
+<code class="literal">DistinctCountColumnSeparator</code>: The string the database uses
+to delimit between column expressions in a <code class="literal">SELECT COUNT(DISTINCT
+column-list)</code> clause. Defaults to <code class="literal">null</code> 
+for most databases, meaning that
+multiple columns in a distinct COUNT clause are not supported.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10130"></a>
+<code class="literal">DistinctTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.DISTINCT</code>. This is used only when the schema
+is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10138"></a>
+<code class="literal">DoubleTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.DOUBLE</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10146"></a>
+<code class="literal">DriverVendor</code>: The vendor of the particular JDBC driver you
+are using. Some dictionaries must alter their behavior depending on the driver
+vendor. Dictionaries usually detect the driver vendor and set this property
+themselves.  See the <code class="literal">VENDOR_XXX</code> constants defined in the 
+<code class="classname">DBDictionary</code> Javadoc for available options.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10154"></a>
+<code class="literal">DropTableSQL</code>: 
+The SQL statement used to drop a table.  Use the token <code class="literal">{0}</code>
+as the argument for the table name.  
+Defaults to <code class="literal">"DROP TABLE {0}"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10162"></a>
+<code class="literal">FixedSizeTypeNames</code>: 
+A comma separated list of additional database types that have a size 
+defined by the database.  In other words, when a column of a fixed
+size type is declared, its size cannot be defined by the user.  Common
+examples would be <code class="literal">DATE</code>, <code class="literal">FLOAT</code>, 
+and <code class="literal">INTEGER</code>.
+Each database dictionary has its own internal set of fixed size type names 
+that include the names mentioned here and many others.
+Names added to this property are added to the dictionary's internal set.
+Defaults to <code class="literal">null</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10172"></a>
+<code class="literal">FloatTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.FLOAT</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10180"></a>
+                    <a class="indexterm" name="d5e10183"></a>
+<code class="literal">ForUpdateClause</code>: The clause to append to <code class="literal">SELECT
+</code> statements to issue queries that obtain pessimistic locks. Defaults
+to <code class="literal">"FOR UPDATE"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10191"></a>
+                    <a class="indexterm" name="d5e10194"></a>
+<code class="literal">GetStringVal</code>: 
+A special function to return the value of an XML 
+column in a select statement.  For example, Oracle uses 
+<code class="literal">".getClobVal()"</code>, as in 
+<code class="literal">"SELECT t0.xmlcol.getClobVal() FROM xmltab t0"</code>.
+Defaults to the empty string.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10202"></a>
+<code class="literal">InClauseLimit</code>: 
+The maximum number of elements in an <code class="literal">IN</code> clause.  OpenJPA
+works around cases where the limit is exceeded.  Defaults to -1 meaning 
+no limit.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10209"></a>
+                    <a class="indexterm" name="d5e10212"></a>
+<code class="literal">InitializationSQL</code>: A piece of SQL to issue against the
+database whenever a connection is retrieved from the <code class="classname">DataSource
+</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10219"></a>
+<code class="literal">InnerJoinClause</code>: The clause to use for an inner join.
+Defaults to <code class="literal">"INNER JOIN"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10226"></a>
+<code class="literal">IntegerTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.INTEGER</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10234"></a>
+<code class="literal">JavaObjectTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.JAVAOBJECT</code>. This is used only when the schema
+is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10242"></a>
+<code class="literal">JoinSyntax</code>: The SQL join syntax to use in select statements.
+See <a class="xref" href="ref_guide_dbsetup_sql92.html" title="6.&nbsp; Setting the SQL Join Syntax">Section&nbsp;6, &#8220;
+            Setting the SQL Join Syntax
+        &#8221;</a>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10249"></a>
+<code class="literal">LastGeneratedKeyQuery</code>: The query to issue to obtain the last
+automatically generated key for an auto-increment column. For example, 
+<code class="literal">"SELECT LAST_INSERT_ID()"</code> for MySQL. This property is set
+automatically in the dictionary, and should not need to be overridden.
+If <code class="literal">SupportsGetGeneratedKeys</code> is true, the query will not
+be issued but a more efficient JDBC 3.0 mechanism for obtaining generated
+keys will be used instead.
+                    </p>
+                </li><li class="listitem">
+                	<p>
+                	<a class="indexterm" name="d5e10258"></a>
+<code class="literal">LeadingDelimiter</code>: The characters to use as the leading delimiter
+for a delimited identifier. The default value is a double quote,
+<code class="literal">(")</code>. See
+<a class="xref" href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_delim_id" title="4.7.&nbsp; Delimited Identifiers Support">Section&nbsp;4.7, &#8220;
+        		Delimited Identifiers Support
+        	&#8221;</a> for
+the default value for some specific databases.                              	
+                	</p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10266"></a>
+<code class="literal">LongVarbinaryTypeName</code>: The overridden default column type
+for <code class="literal">java.sql.Types.LONGVARBINARY</code>. This is used only when the
+schema is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10274"></a>
+<code class="literal">LongVarcharTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.LONGVARCHAR</code>. This is used only when the
+schema is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10282"></a>
+<code class="literal">MaxAutoAssignNameLength</code>: Set this property to the maximum
+length of the sequence name used for auto-increment columns. Names longer than
+this value are truncated. Defaults to 31.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10288"></a>
+<code class="literal">MaxColumnNameLength</code>: The maximum number of characters in a
+column name. Defaults to 128.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10294"></a>
+<code class="literal">MaxConstraintNameLength</code>: The maximum number of characters in
+a constraint name. Defaults to 128.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10300"></a>
+<code class="literal">MaxEmbeddedBlobSize</code>: 
+When greater than -1, the maximum size of a <code class="literal">BLOB</code> value 
+that can be sent directly to the database within an insert or update statement.  
+Values whose size is greater than <code class="literal">MaxEmbeddedBlobSize</code> force 
+OpenJPA to work around this limitation.  A value of -1 means that there is 
+no limitation. Defaults to -1.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10308"></a>
+<code class="literal">MaxEmbeddedClobSize</code>: 
+When greater than -1, the maximum size of a <code class="literal">CLOB</code> value 
+that can be sent directly to the database within an insert or update statement.  
+Values whose size is greater than <code class="literal">MaxEmbeddedClobSize</code> force 
+OpenJPA to work around this limitation.  A value of -1 means that there is 
+no limitation. Defaults to -1.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10316"></a>
+                    <a class="indexterm" name="d5e10319"></a>
+<code class="literal">MaxIndexNameLength</code>: The maximum number of characters in an
+index name. Defaults to 128.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10325"></a>
+<code class="literal">MaxIndexesPerTable</code>: The maximum number of indexes that can
+be placed on a single table. Defaults to no limit.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10331"></a>
+<code class="literal">MaxTableNameLength</code>: The maximum number of characters in a
+table name. Defaults to 128.
+                    </p>
+                </li><li class="listitem">
+                	<p>
+                	<a class="indexterm" name="d5e10337"></a>
+<code class="literal">NameConcatenator</code>: The value used when names are concatenated to 
+create a generated name. The default value is the underscore <code class="literal">"_"</code>.                	
+                	</p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10344"></a>
+<code class="literal">NextSequenceQuery</code>: A SQL string for obtaining a native
+sequence value. May use a placeholder of <code class="literal">{0}</code> for the variable
+sequence name and <code class="literal">{1}</code> for sequence increment.
+Defaults to a database-appropriate value. For example, 
+<code class="literal">"SELECT {0}.NEXTVAL FROM DUAL"</code> for Oracle database.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10353"></a>
+<code class="literal">NullTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.NULL</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10361"></a>
+<code class="literal">NumericTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.NUMERIC</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10369"></a>
+<code class="literal">OtherTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.OTHER</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10377"></a>
+<code class="literal">OuterJoinClause</code>: The clause to use for an left outer join.
+Defaults to <code class="literal">"LEFT OUTER JOIN"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10384"></a>
+<code class="literal">Platform</code>: 
+The name of the database that this dictionary targets.
+Defaults to <code class="literal">"Generic"</code>, but all dictionaries override this 
+value.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10391"></a>
+<code class="literal">RangePosition</code>: 
+Indicates where to specify in the SQL select statement the range, if any,
+of the result rows to be returned.  
+When limiting the number of returned result rows to a subset of all those
+that satisfy the query's conditions, the position of the range clause 
+varies by database.
+Defaults to 0, meaning that the range 
+is expressed at the end of the select statement but before any locking clause.
+See the RANGE_XXX constants defined in <code class="classname">DBDictionary</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10398"></a>
+<code class="literal">RealTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.REAL</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10406"></a>
+<code class="literal">RefTypeName</code>: The overridden default column type for 
+<code class="literal">java.sql.Types.REF</code>. This is used only when the schema is generated by
+the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10414"></a>
+                    <a class="indexterm" name="d5e10417"></a>
+<code class="literal">RequiresAliasForSubselect</code>: When true, the database
+requires that subselects in a FROM clause be assigned an alias.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10424"></a>
+<code class="literal">RequiresAutoCommitForMetadata</code>: When true, the JDBC driver
+requires that autocommit be enabled before any schema interrogation operations
+can take place.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10431"></a>
+<code class="literal">RequiresCastForComparisons</code>: 
+When true, comparisons of two values of different types or 
+of two literals requires a cast in the generated SQL.   
+Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10438"></a>
+<code class="literal">RequiresCastForMathFunctions</code>: 
+When true, math operations on two values of different types or 
+on two literals requires a cast in the generated SQL.   
+Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10445"></a>
+<code class="literal">RequiresConditionForCrossJoin</code>: Some databases require that
+there always be a conditional statement for a cross join. If set, this parameter
+ensures that there will always be some condition to the join clause.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10451"></a>
+<code class="literal">RequiresTargetForDelete</code>:
+When true, the database requires a target for delete statements.  Defaults
+to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10458"></a>
+<code class="literal">ReservedWords</code>: A comma-separated list of reserved words for
+this database, beyond the standard SQL92 keywords.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10464"></a>
+<code class="literal">SchemaCase</code>: The case to use when querying the database
+metadata about schema components. Defaults to making all names upper case.
+Available values are: <code class="literal">upper, lower, preserve</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10472"></a>
+<code class="literal">SearchStringEscape</code>: 
+The default escape character used when generating SQL <code class="literal">LIKE</code>
+clauses.  The escape character is used to escape the wildcard meaning of the 
+<code class="literal">_</code> and <code class="literal">%</code> characters.
+Note: since JPQL provides the ability to define the escape character in
+the query, this setting is primarily used when translating other query
+languages, such as JDOQL.  Defaults to <code class="literal">"\\"</code> 
+(a single backslash in Java speak).
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10482"></a>
+<code class="literal">RequiresSearchStringEscapeForLike</code>:
+When true, the database requires an escape string for queries that use
+<code class="literal">LIKE</code>.  The escape string can be specified using
+<code class="literal">searchStringEscape</code>.  Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10491"></a>
+<code class="literal">SelectWords</code>: A comma-separated list of keywords which may be
+used to start a SELECT statement for this database. If an application executes 
+a native SQL statement which begins with SelectWords OpenJPA will treat the 
+statement as a SELECT statement rather than an UPDATE statement. 
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10497"></a>
+<code class="literal">SequenceNameSQL</code>:
+Additional phrasing to use with <code class="literal">SequenceSQL</code>.  
+Defaults to <code class="literal">null</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10506"></a>
+<code class="literal">SequenceSQL</code>: 
+General structure of the SQL query to use when interrogating the database 
+for sequence names.
+As there is no standard way to obtain sequence names, 
+it defaults to <code class="literal">null</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10514"></a>
+<code class="literal">SequenceSchemaSQL</code>: 
+Additional phrasing to use with <code class="literal">SequenceSQL</code>.  
+Defaults to <code class="literal">null</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10523"></a>
+<code class="literal">SimulateLocking</code>: Some databases do not support pessimistic
+locking, which will result in an exception when you attempt a 
+transaction while using the pessimistic lock manager. 
+Setting this property to <code class="literal">true</code> suppresses the
+locking of rows in the database, thereby allowing pessimistic transactions 
+even on databases that do not support locking. At the same time, setting this
+property to <code class="literal">true</code> means that you do not obtain the semantics 
+of a pessimistic
+transaction with the database. Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10532"></a>
+<code class="literal">SmallintTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.SMALLINT</code>. This is used only when the schema
+is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10540"></a>
+<code class="literal">StorageLimitationsFatal</code>: When true, any data
+truncation/rounding that is performed by the dictionary in order to store a
+value in the database will be treated as a fatal error, rather than just issuing
+a warning.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10546"></a>
+<code class="literal">StoreCharsAsNumbers</code>: Set this property to <code class="literal">false
+</code> to store Java <code class="literal">char</code> fields as <code class="literal">CHAR
+</code> values rather than numbers. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10556"></a>
+<code class="literal">StoreLargeNumbersAsStrings</code>: When true, the dictionary 
+prefers to store Java fields of 
+type <code class="classname">BigInteger</code> and <code class="classname">BigDecimal</code>
+as string values in the database.  Likewise, the dictionary will instruct
+the mapping tool to map these Java types to character columns.   
+Because some databases have limitations on the number of digits that can 
+be stored in a numeric column (for example, Oracle can only store 38 
+digits), this option may be necessary for some applications.
+Note that this option may prevent OpenJPA from executing meaningful numeric 
+queries against the columns. Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10565"></a>
+<code class="literal">StringLengthFunction</code>: Name of the SQL function for getting
+the length of a string. Use the token <code class="literal">{0}</code> to represent the
+argument.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10572"></a>
+<code class="literal">StructTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.STRUCT</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10580"></a>
+<code class="literal">SubstringFunctionName</code>: Name of the SQL function for getting
+the substring of a string.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10586"></a>
+<code class="literal">SupportsAlterTableWithAddColumn</code>: When true, the database
+supports adding a new column in an ALTER TABLE statement. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10593"></a>
+<code class="literal">SupportsAlterTableWithDropColumn</code>: When true, the database
+supports dropping a column in an ALTER TABLE statement. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10600"></a>
+<code class="literal">SupportsAutoAssign</code>: 
+When true, the database supports auto-assign columns, where the value of 
+column is assigned upon insertion of the row into the database.
+Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10607"></a>
+<code class="literal">SupportsCascadeDeleteAction</code>: When true, the database supports
+the <code class="literal">CASCADE</code> delete action on foreign keys. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10615"></a>
+<code class="literal">SupportsCascadeUpdateAction</code>: 
+When true, the database supports the <code class="literal">CASCADE</code> 
+update action on foreign keys.  Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10623"></a>
+<code class="literal">SupportsComments</code>: 
+When true, comments can be associated with the table in the table creation 
+statement.  Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10630"></a>
+<code class="literal">SupportsCorrelatedSubselect</code>: 
+When true, the database supports correlated subselects.  Correlated 
+subselects are select statements nested within select statements that 
+refers to a column in the outer select statement.  For performance 
+reasons, correlated subselects are generally a last resort.
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10637"></a>
+<code class="literal">SupportsDefaultDeleteAction</code>: When true, the database supports
+the <code class="literal">SET DEFAULT</code> delete action on foreign keys. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10645"></a>
+<code class="literal">SupportsDefaultUpdateAction</code>: 
+When true, the database supports the <code class="literal">SET DEFAULT</code> update 
+action on foreign keys.  Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10653"></a>
+<code class="literal">SupportsDeferredConstraints</code>: When true, the database 
+supports deferred constraints.  The
+database supports deferred constraints by checking for constraint 
+violations when the transaction commits, rather than checking for 
+violations immediately after receiving each SQL statement within the
+transaction. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+					<p>
+					<a class="indexterm" name="d5e10660"></a>
+<code class="literal">SupportsDelimitedIdentifiers</code>: When true, the database
+supports delimited identifiers. It defaults to <code class="literal">true</code>.					
+                	</p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10667"></a>
+<code class="literal">SupportsForeignKeys</code>: When true, the database supports foreign
+keys. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10674"></a>
+<code class="literal">SupportsForeignKeysComposite</code>: When true, the database supports
+composite foreign keys. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10681"></a>
+<code class="literal">SupportsGetGeneratedKeys</code>: When true, OpenJPA will use
+<code class="methodname">java.sql.Statement.getGeneratedKeys</code> method to obtain
+values of auto-increment columns. When false, a query specified by
+<code class="literal">LastGeneratedKeyQuery</code> will be used for that purpose.
+If not set, the value will be auto-detected by querying the JDBC driver.
+Setting the value to true requires that the JDBC
+driver supports version 3.0 or higher of the JDBC specification
+and supports the <code class="methodname">java.sql.Statement.getGeneratedKeys</code>
+method.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10691"></a>
+<code class="literal">SupportsHaving</code>: When true, the database supports HAVING
+clauses in selects.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10698"></a>
+<code class="literal">SupportsLockingWithDistinctClause</code>: When true, the
+database supports <code class="literal">FOR UPDATE</code> select clauses with 
+<code class="literal">DISTINCT</code> clauses.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10706"></a>
+<code class="literal">SupportsLockingWithInnerJoin</code>: When true, the database
+supports <code class="literal">FOR UPDATE</code> select clauses with inner join queries.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10713"></a>
+<code class="literal">SupportsLockingWithMultipleTables</code>: When true, the
+database supports <code class="literal">FOR UPDATE</code> select clauses that select from
+multiple tables.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10720"></a>
+<code class="literal">SupportsLockingWithOrderClause</code>: When true, the database
+supports <code class="literal">FOR UPDATE</code> select clauses with <code class="literal">ORDER BY
+</code> clauses.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10728"></a>
+<code class="literal">SupportsLockingWithOuterJoin</code>: When true, the database
+supports <code class="literal">FOR UPDATE</code> select clauses with outer join queries.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10735"></a>
+<code class="literal">SupportsLockingWithSelectRange</code>: When true, the database
+supports <code class="literal">FOR UPDATE</code> select clauses with queries that select a
+range of data using <code class="literal">LIMIT</code>, <code class="literal">TOP</code> or the
+database equivalent. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10745"></a>
+<code class="literal">SupportsModOperator</code>: 
+When true, the database supports the modulus operator (<code class="literal">%</code>) 
+instead of the <code class="literal">MOD</code> function.  
+Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+<code class="literal">SupportsMultipleNontransactionalResultSets</code>: When true, a
+nontransactional connection is capable of having multiple open 
+<code class="classname">ResultSet</code> instances.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10758"></a>
+<code class="literal">SupportsNullDeleteAction</code>: When true, the database supports 
+the <code class="literal">SET NULL</code> delete action on foreign keys. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10766"></a>
+<code class="literal">SupportsNullTableForGetColumns</code>: When true, the database
+supports passing a <code class="literal">null</code> parameter to <code class="methodname">
+DatabaseMetaData.getColumns</code> as an optimization to get information
+about all the tables. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10776"></a>
+<code class="literal">SupportsNullTableForGetImportedKeys</code>: When true, the
+database supports passing a <code class="literal">null</code> parameter to <code class="methodname">
+DatabaseMetaData.getImportedKeys</code> as an optimization to get
+information about all the tables. Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10786"></a>
+<code class="literal">SupportsNullTableForGetIndexInfo</code>: When true, the database
+supports passing a <code class="literal">null</code> parameter to <code class="methodname">
+DatabaseMetaData.getIndexInfo</code> as an optimization to get information
+about all the tables. Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10796"></a>
+<code class="literal">SupportsNullTableForGetPrimaryKeys</code>: When true, the
+database supports passing a <code class="literal">null</code> parameter to <code class="methodname">
+DatabaseMetaData.getPrimaryKeys</code> as an optimization to get
+information about all the tables. Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10806"></a>
+<code class="literal">SupportsNullUpdateAction</code>: 
+When true, the database supports the <code class="literal">SET NULL</code> update 
+action on foreign keys.  Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10814"></a>
+<code class="literal">SupportsQueryTimeout</code>: When true, the JDBC driver supports
+calls to <code class="methodname"> java.sql.Statement.setQueryTimeout</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10822"></a>
+<code class="literal">SupportsRestrictDeleteAction</code>: When true, the database 
+supports the <code class="literal">RESTRICT</code> delete action on foreign keys. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10830"></a>
+<code class="literal">SupportsRestrictUpdateAction</code>: 
+When true, the database supports the <code class="literal">RESTRICT</code> update 
+action on foreign keys.  Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10838"></a>
+<code class="literal">SupportsSchemaForGetColumns</code>: When false, the database
+driver does not support using the schema name for schema reflection on column
+names.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10845"></a>
+<code class="literal">SupportsSchemaForGetTables</code>: If false, then the database
+driver does not support using the schema name for schema reflection on table
+names.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10852"></a>
+<code class="literal">SupportsSelectEndIndex</code>: When true, the database can create a
+select that is limited to the first N results.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10859"></a>
+<code class="literal">SupportsSelectForUpdate</code>: When true, the database supports
+<code class="literal">SELECT</code> statements with a pessimistic locking 
+(<code class="literal">FOR UPDATE</code>) clause. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10868"></a>
+<code class="literal">SupportsSelectStartIndex</code>: When true, the database can create a
+select that skips the first N results.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10875"></a>
+<code class="literal">SupportsSimpleCaseExpression</code>: When true, the database supports
+the simple form of <code class="literal">CASE</code> expression:
+<code class="literal">CASE &lt;a&gt; WHEN &lt;b&gt; THEN &lt;c&gt; WHEN &lt;d&gt; THEN &lt;e&gt; ELSE &lt;f&gt; END</code>.
+When false, the general form of <code class="literal">CASE</code> expression will be used:
+<code class="literal">CASE WHEN &lt;a&gt; = &lt;b&gt; THEN &lt;c&gt; WHEN &lt;a&gt; = &lt;d&gt; THEN &lt;e&gt; ELSE &lt;f&gt; END</code>.
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10886"></a>
+                    <a class="indexterm" name="d5e10889"></a>
+<code class="literal">SupportsSubselect</code>: When true, the database supports subselects
+in queries.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10896"></a>
+<code class="literal">SupportsTimestampNanos</code>: When true, the database supports 
+nanoseconds with TIMESTAMP columns.  
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10902"></a>
+<code class="literal">SupportsUniqueConstraints</code>: When true, the database supports
+unique constraints. Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10909"></a>
+<code class="literal">SupportsXMLColumn</code>:
+When true, the database supports an XML column type.  See 
+<a class="xref" href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping" title="7.10.&nbsp; XML Column Mapping">Section&nbsp;7.10, &#8220;
+              XML Column Mapping
+            &#8221;</a>
+for information on using this capability.  Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10917"></a>
+<code class="literal">SystemSchemas</code>: A comma-separated list of schema names that
+should be ignored.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10924"></a>
+<code class="literal">SystemTables</code>: A comma-separated list of table names that
+should be ignored.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10931"></a>
+                    <a class="indexterm" name="d5e10934"></a>
+<code class="literal">TableForUpdateClause</code>: The clause to append to the end of
+each table alias in queries that obtain pessimistic locks. 
+Defaults to <code class="literal">null</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10941"></a>
+                    <code class="literal">tableLengthIncludesSchema</code>: Whether the max length for a table name includes the table's schema.
+                    Defaults to <code class="literal">false</code>.
+                </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10948"></a>
+<code class="literal">TableTypes</code>: Comma-separated list of table types to use when
+looking for tables during schema reflection, as defined in the <code class="methodname">
+java.sql.DatabaseMetaData.getTableInfo</code> JDBC method. An example is:
+<code class="literal">"TABLE,VIEW,ALIAS"</code>. Defaults to <code class="literal">"TABLE"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10958"></a>
+<code class="literal">TimeTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.TIME</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10966"></a>
+<code class="literal">TimestampTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.TIMESTAMP</code>. This is used only when the schema
+is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10974"></a>
+<code class="literal">TinyintTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.TINYINT</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10982"></a>
+<code class="literal">ToLowerCaseFunction</code>: Name of the SQL function for converting
+a string to lower case. Use the token <code class="literal">{0}</code> to represent the
+argument.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e10989"></a>
+<code class="literal">ToUpperCaseFunction</code>: SQL function call for converting a
+string to upper case. Use the token <code class="literal">{0}</code> to represent the
+argument.
+                    </p>
+                </li><li class="listitem">
+                	<p>
+                	<a class="indexterm" name="d5e10996"></a>
+<code class="literal">TrailingDelimiter</code>: The characters to use as the trailing delimiter
+for a delimited identifier. The default value is a double quote,
+<code class="literal">(")</code>. See
+<a class="xref" href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_delim_id" title="4.7.&nbsp; Delimited Identifiers Support">Section&nbsp;4.7, &#8220;
+        		Delimited Identifiers Support
+        	&#8221;</a> for
+the default value for some specific databases.               	
+                	</p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11004"></a>
+<code class="literal">TrimBothFunction</code>: 
+The SQL function call to trim any number of a particular character 
+from both the start and end of a string.
+Note: some databases do not support specifying the character in which
+case only spaces or whitespace can be trimmed.
+Use the token <code class="literal">{1}</code> when possible to represent the character, 
+and the token <code class="literal">{0}</code> to represent the string.  
+Defaults to <code class="literal">"TRIM(BOTH {1} FROM {0})"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11013"></a>
+<code class="literal">TrimLeadingFunction</code>: 
+The SQL function call to trim any number of a particular character 
+from the start of a string.
+Note: some databases do not support specifying the character in which
+case only spaces or whitespace can be trimmed.
+Use the token <code class="literal">{1}</code> when possible to represent the character, 
+and the token <code class="literal">{0}</code> to represent the string.  
+Defaults to <code class="literal">"TRIM(LEADING {1} FROM {0})"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11022"></a>
+<code class="literal">TrimStringColumns</code>: When <code class="literal">true</code>, the resulting String from
+<code class="methodname">ResultSet.getString</code> will be trimmed of trailing white space.  Defaults
+to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11031"></a>
+<code class="literal">TrimTrailingFunction</code>: 
+The SQL function call to trim any number of a particular character 
+from the end of a string.
+Note: some databases do not support specifying the character in which
+case only spaces or whitespace can be trimmed.
+Use the token <code class="literal">{1}</code> when possible to represent the character, 
+and the token <code class="literal">{0}</code> to represent the string.  
+Defaults to <code class="literal">"TRIM(TRAILING {1} FROM {0})"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11040"></a>
+<code class="literal">UseGetBestRowIdentifierForPrimaryKeys</code>: When true, 
+metadata queries will use <code class="methodname">DatabaseMetaData.getBestRowIdentifier
+</code> to obtain information about primary keys, rather than <code class="methodname">
+DatabaseMetaData.getPrimaryKeys</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11049"></a>
+<code class="literal">UseGetBytesForBlobs</code>: When true, <code class="methodname">
+ResultSet.getBytes</code> will be used to obtain blob data rather than
+<code class="methodname">ResultSet.getBinaryStream</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11057"></a>
+<code class="literal">UseGetObjectForBlobs</code>: When true, <code class="methodname">
+ResultSet.getObject</code> will be used to obtain blob data rather than
+<code class="methodname">ResultSet.getBinaryStream</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11065"></a>
+<code class="literal">UseGetStringForClobs</code>: When true, <code class="methodname">
+ResultSet.getString</code> will be used to obtain clob data rather than
+<code class="methodname">ResultSet.getCharacterStream</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11073"></a>
+<code class="literal">UseJDBC4SetBinaryStream</code>: When true, an attempt will be made to obtain
+a JDBC 4.0 version of <code class="methodname">PreparedStatement.setBinaryStream</code>.  
+When false, a <code class="methodname">setBinaryStream</code> is used which takes the length of the
+stream.  OpenJPA uses a -1 for the length since OpenJPA doesn't know the length of the stream.
+A few JDBC drivers check the length and throw an exception when the length is less than zero.
+When this property is set to true, and an applicable JDK and JDBC 4.0 driver is available, a
+version of <code class="methodname">setBinaryStream</code> will be used which does not take a length. 
+The default value of this property is true.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11082"></a>
+<code class="literal">UseNativeSequenceCache</code>: This property was introduced in 
+the 2.1.2 release to indicate (when set to <code class="literal">false</code>) that OpenJPA 
+should not use the <code class="literal">CACHE</code> clause when creating a native sequence; instead 
+the <code class="literal">INCREMENT BY</code> clause gets its value equal to the allocationSize 
+property.  In the 2.2.0 release, code was added to allow said functionality by 
+default (see OPENJPA-1376).
+For forward compatibility, this property still remains, however it has 
+been deprecated and will eventually be removed.  Setting this property 
+has no effect and any occurrence of it should be removed.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11091"></a>
+<code class="literal">UseSchemaName</code>: If <code class="literal">false</code>, then avoid
+including the schema name in table name references. Defaults to <code class="literal">true
+</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11099"></a>
+<code class="literal">UseSetBytesForBlobs</code>: When true, <code class="methodname">
+PreparedStatement.setBytes</code> will be used to set blob data, rather
+than <code class="methodname">PreparedStatement.setBinaryStream</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11107"></a>
+<code class="literal">UseSetStringForClobs</code>: When true, <code class="methodname">
+PreparedStatement.setString</code> will be used to set clob data, rather
+than <code class="methodname">PreparedStatement.setCharacterStream</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11115"></a>
+<code class="literal">UseWildCardForCount</code>: When true, the JPQL <code class="literal">COUNT</code>
+aggregate function will be translated into SQL <code class="literal">COUNT(*)</code> expression
+if the SQL query does not involve joins. Defaults to <code class="literal">false</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11124"></a>
+                    <a class="indexterm" name="d5e11127"></a>
+<code class="literal">ValidationSQL</code>: The SQL used to validate that a connection is
+still in a valid state. For example, <code class="literal">"SELECT SYSDATE FROM DUAL"
+</code> for Oracle.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11134"></a>
+<code class="literal">VarbinaryTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.VARBINARY</code>. This is used only when the schema
+is generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11142"></a>
+<code class="literal">VarcharTypeName</code>: The overridden default column type for
+<code class="literal">java.sql.Types.VARCHAR</code>. This is used only when the schema is
+generated by the <code class="literal">mappingtool</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11150"></a>
+<code class="literal">XmlTypeName</code>:
+The column type name for XML columns.  This
+property is set automatically in the dictionary and should not need to be
+overridden.  It is used only when the schema is generated using the 
+<code class="literal">mappingtool</code>.  Defaults to <code class="literal">"XML"</code>.
+                    </p>
+                </li></ul></div>
+        </div>
+        <div class="section" title="4.2.&nbsp; FirebirdDictionary Properties"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_dbsetup_dbsupport_firebird">4.2.&nbsp;
+                FirebirdDictionary Properties
+            </h3></div></div></div>
+            
+            <a class="indexterm" name="d5e11158"></a>
+            <p>
+The <code class="literal">firebird</code> dictionary understands the following additional
+properties:
+            </p>
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11166"></a>
+<code class="literal">FirebirdVersion</code>: The database version OpenJPA connects to.
+This property affects the SQL statements executed by OpenJPA.
+Available values are: 15, 20 and 21
+- they indicate Firebird versions 1.5, 2.0 and 2.1 respectively.
+If not set, the value will be auto-detected.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11172"></a>
+<code class="literal">IndexedVarcharMaxSizeFB15</code>: Firebird 1.5 imposes
+tight limits on index size. In particular, an indexed
+<code class="literal">VARCHAR</code> column size cannot exceed 252.
+When <a class="link" href="ref_guide_mapping.html#ref_guide_mapping_mappingtool" title="1.&nbsp; Forward Mapping">schema is created</a>,
+OpenJPA will use this property to reduce the size
+of indexed <code class="literal">VARCHAR</code> columns.
+Defaults to 252 but you might want to decrease this value if multi-column
+indexes are used. If the Firebird version is 2.0 or later or
+schema creation is not used, this property does not matter.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11181"></a>
+<code class="literal">RangeSyntax</code>: Firebird 2.0 and later support two
+ways of handling queries that select a range of data:
+<code class="literal">"FIRST &lt;p&gt; SKIP &lt;q&gt;"</code> and
+<code class="literal">"ROWS &lt;m&gt; TO &lt;n&gt;"</code>. Earlier versions support only
+<code class="literal">"FIRST &lt;p&gt; SKIP &lt;q&gt;"</code> syntax.
+This property determines the syntax to be used.
+Available values are:
+<code class="literal">"firstskip"</code> and <code class="literal">"rows"</code>.
+Defaults to using <code class="literal">"ROWS &lt;m&gt; TO &lt;n&gt;"</code> if the
+Firebird version is 2.0 or later, and
+<code class="literal">"FIRST &lt;p&gt; SKIP &lt;q&gt;"</code> otherwise.
+                    </p>
+                </li></ul></div>
+        </div>
+        <div class="section" title="4.3.&nbsp; MySQLDictionary Properties"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_dbsetup_dbsupport_mysql">4.3.&nbsp;
+                MySQLDictionary Properties
+            </h3></div></div></div>
+            
+            <a class="indexterm" name="d5e11194"></a>
+            <p>
+The <code class="literal">mysql</code> dictionary also understands the following
+properties:
+            </p>
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11202"></a>
+<code class="literal">DriverDeserializesBlobs</code>: Many older MySQL drivers
+automatically deserialize BLOBs on calls to
+<code class="methodname">ResultSet.getObject</code>. The
+<code class="classname">MySQLDictionary</code> overrides the standard <code class="methodname">
+DBDictionary.getBlobObject</code> method to take this into account.
+Defaults to <code class="literal">true</code> if driver version is less than 5.0,
+<code class="literal">false</code> otherwise. If your driver deserializes
+automatically, you may want to set this property to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11214"></a>
+<code class="literal">TableType</code>: The MySQL table type to use when creating tables.
+Defaults to <code class="literal">"innodb"</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11221"></a>
+<code class="literal">UseClobs</code>: Some older versions of MySQL do not handle CLOBs
+correctly. To disable CLOB functionality, set this to <code class="literal">false</code>. 
+Defaults to <code class="literal">true</code>.
+                    </p>
+                </li><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11229"></a>
+<code class="literal">OptimizeMultiTableDeletes</code>: MySQL as of version 4.0.0
+supports multiple tables in <code class="literal">DELETE</code> statements. When
+this option is set, OpenJPA will use that syntax when doing bulk deletes
+from multiple tables. This can happen when the
+<code class="literal">deleteTableContents</code> <code class="literal">SchemaTool</code>
+action is used. (See <a class="xref" href="ref_guide_schema_schematool.html" title="13.&nbsp; Schema Tool">Section&nbsp;13, &#8220;
+            Schema Tool
+        &#8221;</a> for
+more info about <code class="literal">deleteTableContents</code>.) Defaults to
+<code class="literal">false</code>, since the statement may fail if using InnoDB
+tables and delete constraints.
+                    </p>
+                    
+                </li></ul></div>
+            
+                    <p>
+Starting with Connector/J 3.1.7, MySQL supports a variant of the driver 
+<code class="literal">com.mysql.jdbc.ReplicationDriver</code> that automatically sends 
+queries to a read/write master, or a failover or round-robin load balanced set 
+of slaves based on the state of read-only status of the connection. 
+See  <a class="ulink" href="http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-replication-connection.html" target="_top">
+MySQL Reference</a> for more details. 
+                    </p>
+                    <p>
+This replication feature can be used transparently with OpenJPA application by
+following configuration:
+                    </p>
+        <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+             <p>
+<code class="literal">openjpa.ConnectionDriverName: com.mysql.jdbc.ReplicationDriver</code>
+             </p>
+           </li><li class="listitem">
+             <p>
+<code class="literal">openjpa.ConnectionFactoryProperties: autoReconnect=true,roundRobinLoadBalance=true</code>
+             </p>
+             <p>
+OpenJPA will use a read-only connection with replicated database configuration
+and will automatically switch the connection to a non-readonly mode if the
+transaction is writing to the database.             
+             </p>
+           </li></ul></div>
+        </div>
+        <div class="section" title="4.4.&nbsp; OracleDictionary Properties"><div class="titlepage"><div><div><h3 class="title" id="ref_guide_dbsetup_dbsupport_oracle">4.4.&nbsp;
+                OracleDictionary Properties
+            </h3></div></div></div>
+            
+            <a class="indexterm" name="d5e11253"></a>
+            <p>
+The <code class="literal">oracle</code> dictionary understands the following additional
+properties:
+            </p>
+            <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+                    <p>
+                    <a class="indexterm" name="d5e11261"></a>

[... 197 lines stripped ...]