| <html><head> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <title>4. Database Support</title><link rel="stylesheet" href="css/docbook.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.72.0"><link rel="start" href="manual.html" title="Apache OpenJPA User's Guide"><link rel="up" href="ref_guide_dbsetup.html" title="Chapter 4. JDBC"><link rel="prev" href="ref_guide_dbsetup_sqlconn.html" title="3. Runtime Access to DataSource"><link rel="next" href="ref_guide_dbsetup_isolation.html" title="5. 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. |
| Database Support |
| </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref_guide_dbsetup_sqlconn.html">Prev</a> </td><th width="60%" align="center">Chapter 4. |
| JDBC |
| </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_dbsetup_isolation.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ref_guide_dbsetup_dbsupport"></a>4. |
| 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_mysql">4.2. |
| MySQLDictionary Properties |
| </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbsupport_oracle">4.3. |
| OracleDictionary Properties |
| </a></span></dt></dl></div><a class="indexterm" name="d0e17429"></a><a class="indexterm" name="d0e17432"></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 href="supported_databases.html" title="Appendix 2. Supported Databases">Appendix 2, <i xmlns:xlink="http://www.w3.org/1999/xlink"> |
| 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 xmlns:xlink="http://www.w3.org/1999/xlink" 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 href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2. 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 type="disc"><li><p> |
| <a class="indexterm" name="d0e17464"></a> |
| <code class="literal">access</code>: Dictionary for Microsoft Access. This is an alias |
| for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17479"></a> |
| <code class="literal">db2</code>: Dictionary for IBM's DB2 database. This is an alias for |
| the <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17494"></a> |
| <code class="literal">derby</code>: Dictionary for the Apache Derby database. This is an |
| alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17510"></a> |
| <code class="literal">empress</code>: Dictionary for Empress database This is an alias |
| for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17525"></a> |
| <code class="literal">foxpro</code>: Dictionary for Microsoft Visual FoxPro. This is an |
| alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17540"></a> |
| <code class="literal">hsql</code>: Dictionary for the Hypersonic SQL database. This is an |
| alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17555"></a> |
| <code class="literal">informix</code>: Dictionary for the Informix database. This is an |
| alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17570"></a> |
| <code class="literal">jdatastore</code>: Dictionary for Borland JDataStore. This is an |
| alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17585"></a> |
| <code class="literal">mysql</code>: Dictionary for the MySQL database. This is an alias |
| for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17600"></a> |
| <code class="literal">oracle</code>: Dictionary for Oracle. This is an alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17615"></a> |
| <code class="literal">pointbase</code>: Dictionary for Pointbase Embedded database. This |
| is an alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17630"></a> |
| <code class="literal">postgres</code>: Dictionary for PostgreSQL. This is an alias for |
| the <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17645"></a> |
| <code class="literal">sqlserver</code>: Dictionary for Microsoft's SQLServer database. |
| This is an alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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><p> |
| <a class="indexterm" name="d0e17660"></a> |
| <code class="literal">sybase</code>: Dictionary for Sybase. This is an alias for the |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" 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 href="ref_guide_conf_plugins.html" title="4. Plugin Configuration">plugin syntax |
| </a>. |
| </p><div class="example"><a name="ref_guide_dbsetup_dbdict"></a><p class="title"><b>Example 4.6. |
| Specifying a DBDictionary |
| </b></p><div class="example-contents"><pre class="programlisting"> |
| <property name="openjpa.jdbc.DBDictionary" value="hsql(SimulateLocking=true)"/> |
| </pre></div></div><br class="example-break"><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ref_guide_dbsetup_dbdictprops"></a>4.1. |
| 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 type="disc"><li><p><a name="DBDictionary.DriverVendor"></a> |
| <a class="indexterm" name="d0e17697"></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. See the <code class="literal">VENDOR_XXX</code> constants defined in your |
| dictionary's Javadoc for available options. |
| </p></li><li><p><a name="DBDictionary.CatalogSeparator"></a> |
| <a class="indexterm" name="d0e17712"></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><p><a name="DBDictionary.CreatePrimaryKeys"></a> |
| <a class="indexterm" name="d0e17727"></a> |
| <code class="literal">CreatePrimaryKeys</code>: If <code class="literal">false</code>, then do not |
| create database primary keys for identifiers. Defaults to <code class="literal">true |
| </code>. |
| </p></li><li><p><a name="DBDictionary.ConstraintNameMode"></a> |
| <a class="indexterm" name="d0e17745"></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><p><a name="DBDictionary.MaxTableNameLength"></a> |
| <a class="indexterm" name="d0e17769"></a> |
| <code class="literal">MaxTableNameLength</code>: The maximum number of characters in a |
| table name. Defaults to 128. |
| </p></li><li><p><a name="DBDictionary.MaxColumnNameLength"></a> |
| <a class="indexterm" name="d0e17781"></a> |
| <code class="literal">MaxColumnNameLength</code>: The maximum number of characters in a |
| column name. Defaults to 128. |
| </p></li><li><p><a name="DBDictionary.MaxConstraintNameLength"></a> |
| <a class="indexterm" name="d0e17793"></a> |
| <code class="literal">MaxConstraintNameLength</code>: The maximum number of characters in |
| a constraint name. Defaults to 128. |
| </p></li><li><p><a name="DBDictionary.MaxIndexNameLength"></a> |
| <a class="indexterm" name="d0e17805"></a> |
| <a class="indexterm" name="d0e17811"></a> |
| <code class="literal">MaxIndexNameLength</code>: The maximum number of characters in an |
| index name. Defaults to 128. |
| </p></li><li><p><a name="DBDictionary.MaxAutoAssignNameLength"></a> |
| <a class="indexterm" name="d0e17823"></a> |
| <code class="literal">MaxAutoAssignNameLength</code>: Set this property to the maximum |
| length of name for sequences used for auto-increment columns. Names longer than |
| this value are truncated. Defaults to <code class="literal">31</code>. |
| </p></li><li><p><a name="DBDictionary.MaxIndexesPerTable"></a> |
| <a class="indexterm" name="d0e17838"></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><p><a name="DBDictionary.SupportsForeignKeys"></a> |
| <a class="indexterm" name="d0e17850"></a> |
| <code class="literal">SupportsForeignKeys</code>: Whether the database supports foreign |
| keys. Defaults to true. |
| </p></li><li><p><a name="DBDictionary.SupportsTimestampNanos"></a> |
| <a class="indexterm" name="d0e17862"></a> |
| <code class="literal">SupportsTimestampNanos</code>: Whether the database supports nanoseconds with TIMESTAMP columns. Defaults to true. |
| </p></li><li><p><a name="DBDictionary.SupportsUniqueConstraints"></a> |
| <a class="indexterm" name="d0e17872"></a> |
| <code class="literal">SupportsUniqueConstraints</code>: Whether the database supports |
| unique constraints. Defaults to true. |
| </p></li><li><p><a name="DBDictionary.SupportsDeferredConstraints"></a> |
| <a class="indexterm" name="d0e17884"></a> |
| <code class="literal">SupportsDeferredConstraints</code>: Whether the database supports |
| deferred constraints. Defaults to true. |
| </p></li><li><p><a name="DBDictionary.SupportsRestrictDeleteAction"></a> |
| <a class="indexterm" name="d0e17896"></a> |
| <code class="literal">SupportsRestrictDeleteAction</code>: Whether the database supports |
| the RESTRICT foreign key delete action. Defaults to <code class="literal">true</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsCascadeDeleteAction"></a> |
| <a class="indexterm" name="d0e17911"></a> |
| <code class="literal">SupportsCascadeDeleteAction</code>: Whether the database supports |
| the CASCADE foreign key delete action. Defaults to <code class="literal">true</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsNullDeleteAction"></a> |
| <a class="indexterm" name="d0e17926"></a> |
| <code class="literal">SupportsNullDeleteAction</code>: Whether the database supports the |
| SET NULL foreign key delete action. Defaults to <code class="literal">true</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsDefaultDeleteAction"></a> |
| <a class="indexterm" name="d0e17941"></a> |
| <code class="literal">SupportsDefaultDeleteAction</code>: Whether the database supports |
| the SET DEFAULT foreign key delete action. Defaults to <code class="literal">true</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsAlterTableWithAddColumn"></a> |
| <a class="indexterm" name="d0e17956"></a> |
| <code class="literal">SupportsAlterTableWithAddColumn</code>: Whether the database |
| supports adding a new column in an ALTER TABLE statement. Defaults to <code class="literal"> |
| true</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsAlterTableWithDropColumn"></a> |
| <a class="indexterm" name="d0e17971"></a> |
| <code class="literal">SupportsAlterTableWithDropColumn</code>: Whether the database |
| supports dropping a column in an ALTER TABLE statement. Defaults to <code class="literal"> |
| true</code>. |
| </p></li><li><p><a name="DBDictionary.ReservedWords"></a> |
| <a class="indexterm" name="d0e17986"></a> |
| <code class="literal">ReservedWords</code>: A comma-separated list of reserved words for |
| this database, beyond the standard SQL92 keywords. |
| </p></li><li><p><a name="DBDictionary.SelectWords"></a> |
| <a class="indexterm" name="d0e17998"></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><p><a name="DBDictionary.SystemTables"></a> |
| <a class="indexterm" name="d0e18010"></a> |
| <code class="literal">SystemTables</code>: A comma-separated list of table names that |
| should be ignored. |
| </p></li><li><p><a name="DBDictionary.SystemSchemas"></a> |
| <a class="indexterm" name="d0e18024"></a> |
| <code class="literal">SystemSchemas</code>: A comma-separated list of schema names that |
| should be ignored. |
| </p></li><li><p><a name="DBDictionary.SchemaCase"></a> |
| <a class="indexterm" name="d0e18038"></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><p><a name="DBDictionary.ValidationSQL"></a> |
| <a class="indexterm" name="d0e18055"></a> |
| <a class="indexterm" name="d0e18061"></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><p><a name="DBDictionary.InitializationSQL"></a> |
| <a class="indexterm" name="d0e18076"></a> |
| <a class="indexterm" name="d0e18082"></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><p><a name="DBDictionary.JoinSyntax"></a> |
| <a class="indexterm" name="d0e18097"></a> |
| <code class="literal">JoinSyntax</code>: The SQL join syntax to use in select statements. |
| See <a href="ref_guide_dbsetup_sql92.html" title="6. Setting the SQL Join Syntax">Section 6, “ |
| Setting the SQL Join Syntax |
| ”</a>. |
| </p></li><li><p><a name="DBDictionary.CrossJoinClause"></a> |
| <a class="indexterm" name="d0e18111"></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><p><a name="DBDictionary.InnerJoinClause"></a> |
| <a class="indexterm" name="d0e18126"></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><p><a name="DBDictionary.OuterJoinClause"></a> |
| <a class="indexterm" name="d0e18141"></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><p><a name="DBDictionary.RequiresConditionForCrossJoin"></a> |
| <a class="indexterm" name="d0e18156"></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><p><a name="DBDictionary.ToUpperCaseFunction"></a> |
| <a class="indexterm" name="d0e18168"></a> |
| <code class="literal">ToUpperCaseFunction</code>: SQL function call for for converting a |
| string to upper case. Use the token <code class="literal">{0}</code> to represent the |
| argument. |
| </p></li><li><p><a name="DBDictionary.ToLowerCaseFunction"></a> |
| <a class="indexterm" name="d0e18183"></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><p><a name="DBDictionary.StringLengthFunction"></a> |
| <a class="indexterm" name="d0e18198"></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><p><a name="DBDictionary.SubstringFunctionName"></a> |
| <a class="indexterm" name="d0e18213"></a> |
| <code class="literal">SubstringFunctionName</code>: Name of the SQL function for getting |
| the substring of a string. |
| </p></li><li><p><a name="DBDictionary.DistinctCountColumnSeparator"></a> |
| <a class="indexterm" name="d0e18225"></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 null for most databases, meaning that |
| multiple columns in a distinct COUNT clause are not supported. |
| </p></li><li><p><a name="DBDictionary.ForUpdateClause"></a> |
| <a class="indexterm" name="d0e18240"></a> |
| <a class="indexterm" name="d0e18246"></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><p><a name="DBDictionary.TableForUpdateClause"></a> |
| <a class="indexterm" name="d0e18264"></a> |
| <a class="indexterm" name="d0e18270"></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 null. |
| </p></li><li><p><a name="DBDictionary.SupportsSelectForUpdate"></a> |
| <a class="indexterm" name="d0e18282"></a> |
| <code class="literal">SupportsSelectForUpdate</code>: If true, then the database supports |
| <code class="literal">SELECT</code> statements with a pessimistic locking clause. Defaults |
| to true. |
| </p></li><li><p><a name="DBDictionary.SupportsLockingWithDistinctClause"></a> |
| <a class="indexterm" name="d0e18297"></a> |
| <code class="literal">SupportsLockingWithDistinctClause</code>: If true, then the |
| database supports <code class="literal">FOR UPDATE</code> select clauses with <code class="literal"> |
| DISTINCT</code> clauses. |
| </p></li><li><p><a name="DBDictionary.SupportsLockingWithOuterJoin"></a> |
| <a class="indexterm" name="d0e18315"></a> |
| <code class="literal">SupportsLockingWithOuterJoin</code>: If true, then the database |
| supports <code class="literal">FOR UPDATE</code> select clauses with outer join queries. |
| </p></li><li><p><a name="DBDictionary.SupportsLockingWithInnerJoin"></a> |
| <a class="indexterm" name="d0e18330"></a> |
| <code class="literal">SupportsLockingWithInnerJoin</code>: If true, then the database |
| supports <code class="literal">FOR UPDATE</code> select clauses with inner join queries. |
| </p></li><li><p><a name="DBDictionary.SupportsLockingWithMultipleTables"></a> |
| <a class="indexterm" name="d0e18345"></a> |
| <code class="literal">SupportsLockingWithMultipleTables</code>: If true, then the |
| database supports <code class="literal">FOR UPDATE</code> select clauses that select from |
| multiple tables. |
| </p></li><li><p><a name="DBDictionary.SupportsLockingWithOrderClause"></a> |
| <a class="indexterm" name="d0e18360"></a> |
| <code class="literal">SupportsLockingWithOrderClause</code>: If true, then the database |
| supports <code class="literal">FOR UPDATE</code> select clauses with <code class="literal">ORDER BY |
| </code> clauses. |
| </p></li><li><p><a name="DBDictionary.SupportsLockingWithSelectRange"></a> |
| <a class="indexterm" name="d0e18378"></a> |
| <code class="literal">SupportsLockingWithSelectRange</code>: If true, then 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 true. |
| </p></li><li><p><a name="DBDictionary.SimulateLocking"></a> |
| <a class="indexterm" name="d0e18399"></a> |
| <code class="literal">SimulateLocking</code>: Some databases do not support pessimistic |
| locking, which will result in an exception when you attempt a pessimistic |
| transaction. Setting this property to <code class="literal">true</code> bypasses the |
| locking check to allow pessimistic transactions even on databases that do not |
| support locking. Defaults to <code class="literal">false</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsQueryTimeout"></a> |
| <a class="indexterm" name="d0e18417"></a> |
| <code class="literal">SupportsQueryTimeout</code>: If true, then the JDBC driver supports |
| calls to <code class="methodname"> java.sql.Statement.setQueryTimeout</code>. |
| </p></li><li><p><a name="DBDictionary.SupportsHaving"></a> |
| <a class="indexterm" name="d0e18434"></a> |
| <code class="literal">SupportsHaving</code>: Whether this database supports HAVING |
| clauses in selects. |
| </p></li><li><p><a name="DBDictionary.SupportsSelectStartIndex"></a> |
| <a class="indexterm" name="d0e18448"></a> |
| <code class="literal">SupportsSelectStartIndex</code>: Whether this database can create a |
| select that skips the first N results. |
| </p></li><li><p><a name="DBDictionary.SupportsSelectEndIndex"></a> |
| <a class="indexterm" name="d0e18462"></a> |
| <code class="literal">SupportsSelectEndIndex</code>: Whether this database can create a |
| select that is limited to the first N results. |
| </p></li><li><p><a name="DBDictionary.SupportsSubselect"></a> |
| <a class="indexterm" name="d0e18476"></a> |
| <a class="indexterm" name="d0e18482"></a> |
| <code class="literal">SupportsSubselect</code>: Whether this database supports subselects |
| in queries. |
| </p></li><li><p><a name="DBDictionary.RequiresAliasForSubselect"></a> |
| <a class="indexterm" name="d0e18496"></a> |
| <a class="indexterm" name="d0e18502"></a> |
| <code class="literal">RequiresAliasForSubselect</code>: If true, then the database |
| requires that subselects in a FROM clause be assigned an alias. |
| </p></li><li><p><a name="DBDictionary.SupportsMultipleNontransactionalResultSets"></a> |
| <code class="literal">SupportsMultipleNontransactionalResultSets</code>: If true, then a |
| nontransactional connection is capable of having multiple open <code class="classname"> |
| ResultSet</code> instances. |
| </p></li><li><p><a name="DBDictionary.StorageLimitationsFatal"></a> |
| <a class="indexterm" name="d0e18525"></a> |
| <code class="literal">StorageLimitationsFatal</code>: If true, then 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><p><a name="DBDictionary.StoreLargeNumbersAsStrings"></a> |
| <a class="indexterm" name="d0e18537"></a> |
| <code class="literal">StoreLargeNumbersAsStrings</code>: Many databases have limitations |
| on the number of digits that can be stored in a numeric field (for example, |
| Oracle can only store 38 digits). For applications that operate on very large |
| <code class="classname">BigInteger</code> and <code class="classname">BigDecimal</code> values, |
| it may be necessary to store these objects as string fields rather than the |
| database's numeric type. Note that this may prevent meaningful numeric queries |
| from being executed against the database. Defaults to <code class="literal">false</code>. |
| </p></li><li><p><a name="DBDictionary.StoreCharsAsNumbers"></a> |
| <a class="indexterm" name="d0e18558"></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><p><a name="DBDictionary.UseGetBytesForBlobs"></a> |
| <a class="indexterm" name="d0e18582"></a> |
| <code class="literal">UseGetBytesForBlobs</code>: If true, then <code class="methodname"> |
| ResultSet.getBytes</code> will be used to obtain blob data rather than |
| <code class="methodname">ResultSet.getBinaryStream</code>. |
| </p></li><li><p><a name="DBDictionary.UseGetObjectForBlobs"></a> |
| <a class="indexterm" name="d0e18600"></a> |
| <code class="literal">UseGetObjectForBlobs</code>: If true, then <code class="methodname"> |
| ResultSet.getObject</code> will be used to obtain blob data rather than |
| <code class="methodname">ResultSet.getBinaryStream</code>. |
| </p></li><li><p><a name="DBDictionary.UseSetBytesForBlobs"></a> |
| <a class="indexterm" name="d0e18618"></a> |
| <code class="literal">UseSetBytesForBlobs</code>: If true, then <code class="methodname"> |
| PreparedStatement.setBytes</code> will be used to set blob data, rather |
| than <code class="methodname">PreparedStatement.setBinaryStream</code>. |
| </p></li><li><p><a name="DBDictionary.UseGetStringForClobs"></a> |
| <a class="indexterm" name="d0e18636"></a> |
| <code class="literal">UseGetStringForClobs</code>: If true, then <code class="methodname"> |
| ResultSet.getString</code> will be used to obtain clob data rather than |
| <code class="methodname">ResultSet.getCharacterStream</code>. |
| </p></li><li><p><a name="DBDictionary.UseSetStringForClobs"></a> |
| <a class="indexterm" name="d0e18654"></a> |
| <code class="literal">UseSetStringForClobs</code>: If true, then <code class="methodname"> |
| PreparedStatement.setString</code> will be used to set clob data, rather |
| than <code class="methodname">PreparedStatement.setCharacterStream</code>. |
| </p></li><li><p><a name="DBDictionary.CharacterColumnSize"></a> |
| <a class="indexterm" name="d0e18672"></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><p><a name="DBDictionary.ArrayTypeName"></a> |
| <a class="indexterm" name="d0e18690"></a> |
| <code class="literal">ArrayTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.ARRAY</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.BigintTypeName"></a> |
| <a class="indexterm" name="d0e18708"></a> |
| <code class="literal">BigintTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.BIGINT</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.BinaryTypeName"></a> |
| <a class="indexterm" name="d0e18726"></a> |
| <code class="literal">BinaryTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.BINARY</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.BitTypeName"></a> |
| <a class="indexterm" name="d0e18744"></a> |
| <code class="literal">BitTypeName</code>: The overridden default column type for <code class="literal"> |
| java.sql.Types.BIT</code>. This is only used when the schema is generated by |
| the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.BlobTypeName"></a> |
| <a class="indexterm" name="d0e18762"></a> |
| <a class="indexterm" name="d0e18768"></a> |
| <code class="literal">BlobTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.BLOB</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.CharTypeName"></a> |
| <a class="indexterm" name="d0e18786"></a> |
| <code class="literal">CharTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.CHAR</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.ClobTypeName"></a> |
| <a class="indexterm" name="d0e18804"></a> |
| <a class="indexterm" name="d0e18810"></a> |
| <code class="literal">ClobTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.CLOB</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.DateTypeName"></a> |
| <a class="indexterm" name="d0e18828"></a> |
| <code class="literal">DateTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.DATE</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.DecimalTypeName"></a> |
| <a class="indexterm" name="d0e18846"></a> |
| <code class="literal">DecimalTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.DECIMAL</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.DistinctTypeName"></a> |
| <a class="indexterm" name="d0e18864"></a> |
| <code class="literal">DistinctTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.DISTINCT</code>. This is only used when the schema |
| is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.DoubleTypeName"></a> |
| <a class="indexterm" name="d0e18882"></a> |
| <code class="literal">DoubleTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.DOUBLE</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.FloatTypeName"></a> |
| <a class="indexterm" name="d0e18900"></a> |
| <code class="literal">FloatTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.FLOAT</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.IntegerTypeName"></a> |
| <a class="indexterm" name="d0e18918"></a> |
| <code class="literal">IntegerTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.INTEGER</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.JavaObjectTypeName"></a> |
| <a class="indexterm" name="d0e18936"></a> |
| <code class="literal">JavaObjectTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.JAVAOBJECT</code>. This is only used when the schema |
| is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.LongVarbinaryTypeName"></a> |
| <a class="indexterm" name="d0e18954"></a> |
| <code class="literal">LongVarbinaryTypeName</code>: The overridden default column type |
| for <code class="literal">java.sql.Types.LONGVARBINARY</code>. This is only used when the |
| schema is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.LongVarcharTypeName"></a> |
| <a class="indexterm" name="d0e18972"></a> |
| <code class="literal">LongVarcharTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.LONGVARCHAR</code>. This is only used when the |
| schema is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.NullTypeName"></a> |
| <a class="indexterm" name="d0e18990"></a> |
| <code class="literal">NullTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.NULL</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.NumericTypeName"></a> |
| <a class="indexterm" name="d0e19008"></a> |
| <code class="literal">NumericTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.NUMERIC</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.OtherTypeName"></a> |
| <a class="indexterm" name="d0e19026"></a> |
| <code class="literal">OtherTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.OTHER</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.RealTypeName"></a> |
| <a class="indexterm" name="d0e19044"></a> |
| <code class="literal">RealTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.REAL</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.RefTypeName"></a> |
| <a class="indexterm" name="d0e19062"></a> |
| <code class="literal">RefTypeName</code>: The overridden default column type for <code class="literal"> |
| java.sql.Types.REF</code>. This is only used when the schema is generated by |
| the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.SmallintTypeName"></a> |
| <a class="indexterm" name="d0e19080"></a> |
| <code class="literal">SmallintTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.SMALLINT</code>. This is only used when the schema |
| is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.StructTypeName"></a> |
| <a class="indexterm" name="d0e19098"></a> |
| <code class="literal">StructTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.STRUCT</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.TimeTypeName"></a> |
| <a class="indexterm" name="d0e19116"></a> |
| <code class="literal">TimeTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.TIME</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.TimestampTypeName"></a> |
| <a class="indexterm" name="d0e19134"></a> |
| <code class="literal">TimestampTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.TIMESTAMP</code>. This is only used when the schema |
| is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.TinyintTypeName"></a> |
| <a class="indexterm" name="d0e19152"></a> |
| <code class="literal">TinyintTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.TINYINT</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.VarbinaryTypeName"></a> |
| <a class="indexterm" name="d0e19170"></a> |
| <code class="literal">VarbinaryTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.VARBINARY</code>. This is only used when the schema |
| is generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.VarcharTypeName"></a> |
| <a class="indexterm" name="d0e19188"></a> |
| <code class="literal">VarcharTypeName</code>: The overridden default column type for |
| <code class="literal">java.sql.Types.VARCHAR</code>. This is only used when the schema is |
| generated by the <code class="literal">mappingtool</code>. |
| </p></li><li><p><a name="DBDictionary.UseSchemaName"></a> |
| <a class="indexterm" name="d0e19206"></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><p><a name="DBDictionary.TableTypes"></a> |
| <a class="indexterm" name="d0e19224"></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><p><a name="DBDictionary.SupportsSchemaForGetTables"></a> |
| <a class="indexterm" name="d0e19247"></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><p><a name="DBDictionary.SupportsSchemaForGetColumns"></a> |
| <a class="indexterm" name="d0e19261"></a> |
| <code class="literal">SupportsSchemaForGetColumns</code>: If false, then the database |
| driver does not support using the schema name for schema reflection on column |
| names. |
| </p></li><li><p><a name="DBDictionary.SupportsNullTableForGetColumns"></a> |
| <a class="indexterm" name="d0e19275"></a> |
| <code class="literal">SupportsNullTableForGetColumns</code>: If true, then 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><p><a name="DBDictionary.SupportsNullTableForGetPrimaryKeys"></a> |
| <a class="indexterm" name="d0e19298"></a> |
| <code class="literal">SupportsNullTableForGetPrimaryKeys</code>: If true, then 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><p><a name="DBDictionary.SupportsNullTableForGetIndexInfo"></a> |
| <a class="indexterm" name="d0e19321"></a> |
| <code class="literal">SupportsNullTableForGetIndexInfo</code>: If true, then 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><p><a name="DBDictionary.SupportsNullTableForGetImportedKeys"></a> |
| <a class="indexterm" name="d0e19344"></a> |
| <code class="literal">SupportsNullTableForGetImportedKeys</code>: If true, then 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><p><a name="DBDictionary.UseGetBestRowIdentifierForPrimaryKeys"></a> |
| <a class="indexterm" name="d0e19367"></a> |
| <code class="literal">UseGetBestRowIdentifierForPrimaryKeys</code>: If true, then |
| 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><p><a name="DBDictionary.RequiresAutoCommitForMetadata"></a> |
| <a class="indexterm" name="d0e19387"></a> |
| <code class="literal">RequiresAutoCommitForMetadata</code>: If true, then the JDBC driver |
| requires that autocommit be enabled before any schema interrogation operations |
| can take place. |
| </p></li><li><p><a name="DBDictionary.AutoAssignClause"></a> |
| <a class="indexterm" name="d0e19401"></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><p><a name="DBDictionary.AutoAssignTypeName"></a> |
| <a class="indexterm" name="d0e19421"></a> |
| <a class="indexterm" name="d0e19427"></a> |
| <code class="literal">AutoAssignTypeName</code>: The column type name for auto-increment |
| columns. For example, " <code class="literal">SERIAL</code> " for PostgreSQL. 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><p><a name="DBDictionary.LastGeneratedKeyQuery"></a> |
| <a class="indexterm" name="d0e19447"></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 @@identity</code> " for Sybase. This property is set |
| automatically in the dictionary, and should not need to be overridden. |
| </p></li><li><p><a name="DBDictionary.NextSequenceQuery"></a> |
| <a class="indexterm" name="d0e19464"></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. Defaults to a database-appropriate value. |
| </p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ref_guide_dbsetup_dbsupport_mysql"></a>4.2. |
| MySQLDictionary Properties |
| </h3></div></div></div><a class="indexterm" name="d0e19479"></a><p> |
| The <code class="literal">mysql</code> dictionary also understands the following |
| properties: |
| </p><div class="itemizedlist"><ul type="disc"><li><p><a name="MySQLDictionary.DriverDeserializesBlobs"></a> |
| <a class="indexterm" name="d0e19493"></a> |
| <code class="literal">DriverDeserializesBlobs</code>: Many 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. If |
| your driver does not deserialize automatically, set this property to <code class="literal"> |
| false</code>. |
| </p></li><li><p><a name="MySQLDictionary.TableType"></a> |
| <a class="indexterm" name="d0e19517"></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><p><a name="MySQLDictionary.UseClobs"></a> |
| <a class="indexterm" name="d0e19532"></a> |
| <code class="literal">UseClobs</code>: Some older versions of MySQL do not handle clobs |
| correctly. To enable clob functionality, set this to true. Defaults to <code class="literal"> |
| false</code>. |
| </p></li><li><p><a name="MySQLDictionary.OptimizeMultiTableDeletes"></a> |
| <a class="indexterm" name="d0e19547"></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 href="ref_guide_schema_schematool.html" title="12. Schema Tool">Section 12, “ |
| Schema Tool |
| ”</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></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ref_guide_dbsetup_dbsupport_oracle"></a>4.3. |
| OracleDictionary Properties |
| </h3></div></div></div><a class="indexterm" name="d0e19576"></a><p> |
| The <code class="literal">oracle</code> dictionary understands the following additional |
| properties: |
| </p><div class="itemizedlist"><ul type="disc"><li><p><a name="OracleDictionary.UseTriggersForAutoAssign"></a> |
| <a class="indexterm" name="d0e19590"></a> |
| <a class="indexterm" name="d0e19596"></a> |
| <code class="literal">UseTriggersForAutoAssign</code>: If true, then OpenJPA will allow |
| simulation of auto-increment columns by the use of Oracle triggers. OpenJPA will |
| assume that the current sequence value from the sequence specified in the |
| <code class="literal">AutoAssignSequenceName</code> parameter will hold the value of the |
| new primary key for rows that have been inserted. For more details on |
| auto-increment support, see <a href="ref_guide_pc_oid.html#ref_guide_pc_oid_pkgen_autoinc" title="3.4. Autoassign / Identity Strategy Caveats">Section 3.4, “ |
| Autoassign / Identity Strategy Caveats |
| ”</a> |
| . |
| </p></li><li><p><a name="OracleDictionary.AutoAssignSequenceName"></a> |
| <a class="indexterm" name="d0e19615"></a> |
| <a class="indexterm" name="d0e19621"></a> |
| <code class="literal">AutoAssignSequenceName</code>: The global name of the sequence that |
| OpenJPA will assume to hold the value of primary key value for rows that use |
| auto-increment. If left unset, OpenJPA will use a the sequence named <code class="literal"> |
| "SEQ_<table name>"</code>. |
| </p></li><li><p><a name="OracleDictionary.MaxEmbeddedBlobSize"></a> |
| <a class="indexterm" name="d0e19638"></a> |
| <a class="indexterm" name="d0e19644"></a> |
| <code class="literal">MaxEmbeddedBlobSize</code>: Oracle is unable to persist BLOBs using |
| the embedded update method when BLOBs get over a certain size. The size depends |
| on database configuration, e.g. encoding. This property defines the maximum size |
| BLOB to persist with the embedded method. Defaults to 4000 bytes. |
| </p></li><li><p><a name="OracleDictionary.MaxEmbeddedClobSize"></a> |
| <a class="indexterm" name="d0e19656"></a> |
| <a class="indexterm" name="d0e19662"></a> |
| <code class="literal">MaxEmbeddedClobSize</code>: Oracle is unable to persist CLOBs using |
| the embedded update method when Clobs get over a certain size. The size depends |
| on database configuration, e.g. encoding. This property defines the maximum size |
| CLOB to persist with the embedded method. Defaults to 4000 characters. |
| </p></li><li><p><a name="OracleDictionary.UseSetFormOfUseForUnicode"></a> |
| <code class="literal">UseSetFormOfUseForUnicode</code>: Prior to Oracle 10i, statements |
| executed against unicode capable columns (the <code class="literal">NCHAR</code>, |
| <code class="literal">NVARCHAR</code>, <code class="literal">NCLOB</code> Oracle types) required |
| special handling to be able to store unicode values. Setting this property to |
| true (the default) will cause OpenJPA to attempt to detect when the column of |
| one of these types, and if so, will attempt to correctly configure the statement |
| using the <code class="methodname"> OraclePreparedStatement.setFormOfUse</code>. For |
| more details, see the Oracle |
| <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/nchar/readme.html" target="_top"> |
| Readme For NChar</a>. Note that this can only work if OpenJPA is able to |
| access the underlying <code class="classname">OraclePreparedStatement</code> instance, |
| which may not be possible when using some third-party datasources. If OpenJPA |
| detects that this is the case, a warning will be logged. |
| </p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_dbsetup_sqlconn.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_dbsetup.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_dbsetup_isolation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3. |
| Runtime Access to DataSource |
| </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 5. |
| Setting the Transaction Isolation |
| </td></tr></table></div></body></html> |