You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by il...@apache.org on 2025/03/28 08:14:50 UTC
(openjpa-site) branch builds updated: Documentation for OpenJPA 4.1.0 (#3)
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch builds
in repository https://gitbox.apache.org/repos/asf/openjpa-site.git
The following commit(s) were added to refs/heads/builds by this push:
new ba21de66a Documentation for OpenJPA 4.1.0 (#3)
ba21de66a is described below
commit ba21de66a5c89e936273800d0d2e83df64ae3f1e
Author: Francesco Chicchiriccò <il...@users.noreply.github.com>
AuthorDate: Fri Mar 28 09:14:45 2025 +0100
Documentation for OpenJPA 4.1.0 (#3)
---
4.1.0/apache-openjpa/RELEASE-NOTES.html | 161 +
4.1.0/apache-openjpa/docs/appendices.html | 171 +
4.1.0/apache-openjpa/docs/ch13s02.html | 27 +
4.1.0/apache-openjpa/docs/ch13s03.html | 23 +
4.1.0/apache-openjpa/docs/ch13s04.html | 60 +
4.1.0/apache-openjpa/docs/ch29s04.html | 197 +
4.1.0/apache-openjpa/docs/dbcompatible.html | 198 +
4.1.0/apache-openjpa/docs/dbsupport.html | 132 +
4.1.0/apache-openjpa/docs/dbsupport_access.html | 36 +
4.1.0/apache-openjpa/docs/dbsupport_db2.html | 83 +
4.1.0/apache-openjpa/docs/dbsupport_derby.html | 24 +
4.1.0/apache-openjpa/docs/dbsupport_empress.html | 42 +
4.1.0/apache-openjpa/docs/dbsupport_firebird.html | 41 +
4.1.0/apache-openjpa/docs/dbsupport_foxpro.html | 36 +
4.1.0/apache-openjpa/docs/dbsupport_h2.html | 39 +
.../apache-openjpa/docs/dbsupport_hypersonic.html | 38 +
4.1.0/apache-openjpa/docs/dbsupport_informix.html | 37 +
4.1.0/apache-openjpa/docs/dbsupport_ingres.html | 38 +
4.1.0/apache-openjpa/docs/dbsupport_interbase.html | 42 +
.../docs/dbsupport_intersystems_cache.html | 37 +
.../apache-openjpa/docs/dbsupport_jdatastore.html | 24 +
4.1.0/apache-openjpa/docs/dbsupport_mariadb.html | 46 +
4.1.0/apache-openjpa/docs/dbsupport_mysql.html | 108 +
4.1.0/apache-openjpa/docs/dbsupport_oracle.html | 142 +
4.1.0/apache-openjpa/docs/dbsupport_pointbase.html | 39 +
.../apache-openjpa/docs/dbsupport_postgresql.html | 57 +
4.1.0/apache-openjpa/docs/dbsupport_soliddb.html | 70 +
4.1.0/apache-openjpa/docs/dbsupport_sqlserver.html | 99 +
4.1.0/apache-openjpa/docs/dbsupport_sybase.html | 71 +
4.1.0/apache-openjpa/docs/dbunverified.html | 46 +
.../docs/features_and_limitations.html | 259 +
4.1.0/apache-openjpa/docs/index.html | 1633 +
4.1.0/apache-openjpa/docs/introduction.html | 25 +
4.1.0/apache-openjpa/docs/jpa_2.2.html | 207 +
4.1.0/apache-openjpa/docs/jpa_2.3.html | 85 +
4.1.0/apache-openjpa/docs/jpa_3.2.html | 77 +
4.1.0/apache-openjpa/docs/jpa_langref.html | 4101 ++
4.1.0/apache-openjpa/docs/jpa_overview.html | 469 +
4.1.0/apache-openjpa/docs/jpa_overview_arch.html | 196 +
.../docs/jpa_overview_conclusion.html | 18 +
.../apache-openjpa/docs/jpa_overview_criteria.html | 95 +
4.1.0/apache-openjpa/docs/jpa_overview_em.html | 120 +
.../apache-openjpa/docs/jpa_overview_em_cache.html | 88 +
.../docs/jpa_overview_em_closing.html | 36 +
.../docs/jpa_overview_em_identity.html | 69 +
.../docs/jpa_overview_em_lifecycle.html | 249 +
.../docs/jpa_overview_em_lifeexamples.html | 146 +
.../docs/jpa_overview_em_locking.html | 104 +
.../docs/jpa_overview_em_properties.html | 59 +
.../apache-openjpa/docs/jpa_overview_em_query.html | 52 +
.../docs/jpa_overview_emf_properties.html | 59 +
.../docs/jpa_overview_emfactory.html | 83 +
.../docs/jpa_overview_emfactory_close.html | 44 +
.../docs/jpa_overview_emfactory_em.html | 69 +
.../docs/jpa_overview_emfactory_perscontext.html | 203 +
.../docs/jpa_overview_emfactory_puutil.html | 40 +
4.1.0/apache-openjpa/docs/jpa_overview_intro.html | 42 +
.../docs/jpa_overview_intro_transpers.html | 34 +
.../apache-openjpa/docs/jpa_overview_mapping.html | 340 +
.../docs/jpa_overview_mapping_column.html | 130 +
.../docs/jpa_overview_mapping_discrim.html | 369 +
.../docs/jpa_overview_mapping_field.html | 1424 +
.../docs/jpa_overview_mapping_full.html | 523 +
.../docs/jpa_overview_mapping_id.html | 171 +
.../docs/jpa_overview_mapping_inher.html | 712 +
.../docs/jpa_overview_mapping_sequence.html | 411 +
.../docs/jpa_overview_mapping_unq.html | 84 +
4.1.0/apache-openjpa/docs/jpa_overview_meta.html | 496 +
.../docs/jpa_overview_meta_complete.html | 342 +
.../docs/jpa_overview_meta_field.html | 1218 +
.../apache-openjpa/docs/jpa_overview_meta_xml.html | 1749 +
4.1.0/apache-openjpa/docs/jpa_overview_pc.html | 474 +
.../docs/jpa_overview_pc_callbacks.html | 280 +
.../docs/jpa_overview_pc_conclusion.html | 21 +
.../docs/jpa_overview_pc_identity.html | 304 +
.../docs/jpa_overview_persistence.html | 502 +
.../docs/jpa_overview_persistence_use.html | 36 +
4.1.0/apache-openjpa/docs/jpa_overview_query.html | 1308 +
.../apache-openjpa/docs/jpa_overview_sqlquery.html | 86 +
.../docs/jpa_overview_sqlquery_obj.html | 81 +
4.1.0/apache-openjpa/docs/jpa_overview_trans.html | 171 +
.../docs/jpa_overview_trans_local.html | 85 +
4.1.0/apache-openjpa/docs/jpa_overview_why.html | 424 +
4.1.0/apache-openjpa/docs/jpa_resources.html | 30 +
4.1.0/apache-openjpa/docs/main.html | 41 +
4.1.0/apache-openjpa/docs/manual.html | 42669 +++++++++++++++++++
4.1.0/apache-openjpa/docs/manual.pdf | Bin 0 -> 4525275 bytes
.../docs/migration_considerations.html | 427 +
4.1.0/apache-openjpa/docs/openjpa_intro.html | 60 +
4.1.0/apache-openjpa/docs/openjpa_legal.html | 44 +
.../docs/openjpa_legal_copyright.html | 56 +
.../apache-openjpa/docs/openjpa_legal_notice.html | 35 +
4.1.0/apache-openjpa/docs/ref_guide.html | 709 +
4.1.0/apache-openjpa/docs/ref_guide_audit.html | 103 +
.../docs/ref_guide_cache_querycomp.html | 54 +
.../docs/ref_guide_cache_querysql.html | 172 +
4.1.0/apache-openjpa/docs/ref_guide_caching.html | 1062 +
4.1.0/apache-openjpa/docs/ref_guide_conf.html | 217 +
.../docs/ref_guide_conf_devtools.html | 127 +
4.1.0/apache-openjpa/docs/ref_guide_conf_jdbc.html | 769 +
.../docs/ref_guide_conf_openjpa.html | 2611 ++
.../docs/ref_guide_conf_plugins.html | 91 +
.../docs/ref_guide_conf_specify.html | 91 +
4.1.0/apache-openjpa/docs/ref_guide_dbsetup.html | 253 +
.../docs/ref_guide_dbsetup_dbsupport.html | 1964 +
.../docs/ref_guide_dbsetup_isolation.html | 64 +
.../apache-openjpa/docs/ref_guide_dbsetup_lrs.html | 180 +
.../docs/ref_guide_dbsetup_multidb.html | 24 +
.../docs/ref_guide_dbsetup_retain.html | 201 +
.../docs/ref_guide_dbsetup_sql92.html | 78 +
.../docs/ref_guide_dbsetup_sqlconn.html | 82 +
.../docs/ref_guide_dbsetup_stmtbatch.html | 103 +
.../docs/ref_guide_dbsetup_thirdparty.html | 237 +
4.1.0/apache-openjpa/docs/ref_guide_deploy.html | 80 +
.../apache-openjpa/docs/ref_guide_encryption.html | 34 +
.../docs/ref_guide_enterprise_abstractstore.html | 25 +
.../docs/ref_guide_enterprise_methodql.html | 80 +
.../docs/ref_guide_enterprise_trans.html | 110 +
.../docs/ref_guide_enterprise_xa.html | 92 +
4.1.0/apache-openjpa/docs/ref_guide_event.html | 256 +
4.1.0/apache-openjpa/docs/ref_guide_fetch.html | 360 +
.../docs/ref_guide_instrumentation.html | 88 +
.../docs/ref_guide_instrumentation_custom.html | 53 +
.../apache-openjpa/docs/ref_guide_integration.html | 447 +
.../docs/ref_guide_integration_dbcp.html | 52 +
4.1.0/apache-openjpa/docs/ref_guide_intro.html | 36 +
4.1.0/apache-openjpa/docs/ref_guide_inverses.html | 114 +
4.1.0/apache-openjpa/docs/ref_guide_locking.html | 403 +
4.1.0/apache-openjpa/docs/ref_guide_logging.html | 193 +
.../docs/ref_guide_logging_commons.html | 93 +
.../docs/ref_guide_logging_custom.html | 79 +
.../docs/ref_guide_logging_log4j.html | 50 +
.../docs/ref_guide_logging_noop.html | 26 +
.../docs/ref_guide_logging_openjpa.html | 83 +
.../docs/ref_guide_logging_slf4j.html | 28 +
4.1.0/apache-openjpa/docs/ref_guide_mapping.html | 461 +
.../docs/ref_guide_mapping_custom.html | 174 +
.../docs/ref_guide_mapping_defaults.html | 293 +
.../apache-openjpa/docs/ref_guide_mapping_ext.html | 263 +
.../docs/ref_guide_mapping_factory.html | 56 +
.../apache-openjpa/docs/ref_guide_mapping_jpa.html | 1369 +
.../docs/ref_guide_mapping_limits.html | 63 +
.../docs/ref_guide_mapping_middle.html | 47 +
.../docs/ref_guide_mapping_notes_nonstdjoins.html | 131 +
4.1.0/apache-openjpa/docs/ref_guide_meta.html | 149 +
4.1.0/apache-openjpa/docs/ref_guide_meta_ext.html | 540 +
4.1.0/apache-openjpa/docs/ref_guide_meta_jpa.html | 233 +
.../docs/ref_guide_meta_repository.html | 30 +
.../docs/ref_guide_optimization.html | 509 +
4.1.0/apache-openjpa/docs/ref_guide_orphan.html | 86 +
4.1.0/apache-openjpa/docs/ref_guide_pc.html | 152 +
.../apache-openjpa/docs/ref_guide_pc_enhance.html | 411 +
.../docs/ref_guide_pc_interfaces.html | 42 +
4.1.0/apache-openjpa/docs/ref_guide_pc_oid.html | 406 +
.../apache-openjpa/docs/ref_guide_pc_reverse.html | 446 +
4.1.0/apache-openjpa/docs/ref_guide_pc_scos.html | 724 +
.../docs/ref_guide_perfpack_eager.html | 291 +
4.1.0/apache-openjpa/docs/ref_guide_remote.html | 420 +
4.1.0/apache-openjpa/docs/ref_guide_runtime.html | 222 +
.../apache-openjpa/docs/ref_guide_runtime_jpa.html | 242 +
.../docs/ref_guide_runtime_pm_event.html | 42 +
.../apache-openjpa/docs/ref_guide_savepoints.html | 143 +
.../apache-openjpa/docs/ref_guide_schema_def.html | 47 +
.../apache-openjpa/docs/ref_guide_schema_info.html | 162 +
.../docs/ref_guide_schema_schematool.html | 286 +
.../apache-openjpa/docs/ref_guide_schema_xml.html | 163 +
4.1.0/apache-openjpa/docs/ref_guide_sequence.html | 296 +
4.1.0/apache-openjpa/docs/ref_guide_slice.html | 50 +
4.1.0/apache-openjpa/docs/slice_configuration.html | 177 +
4.1.0/apache-openjpa/docs/supported_databases.html | 158 +
4.1.0/apidocs/allclasses-index.html | 1838 +
4.1.0/apidocs/allclasses.html | 287 +
4.1.0/apidocs/allpackages-index.html | 245 +
4.1.0/apidocs/constant-values.html | 927 +
4.1.0/apidocs/deprecated-list.html | 200 +
4.1.0/apidocs/element-list | 15 +
4.1.0/apidocs/help-doc.html | 281 +
4.1.0/apidocs/index-all.html | 12263 ++++++
4.1.0/apidocs/index.html | 241 +
4.1.0/apidocs/jquery-ui.overrides.css | 35 +
4.1.0/apidocs/jquery/external/jquery/jquery.js | 10872 +++++
4.1.0/apidocs/jquery/jquery-3.7.1.min.js | 2 +
4.1.0/apidocs/jquery/jquery-ui.min.css | 6 +
4.1.0/apidocs/jquery/jquery-ui.min.js | 6 +
.../jquery/jszip-utils/dist/jszip-utils-ie.js | 56 +
.../jquery/jszip-utils/dist/jszip-utils-ie.min.js | 10 +
.../apidocs/jquery/jszip-utils/dist/jszip-utils.js | 118 +
.../jquery/jszip-utils/dist/jszip-utils.min.js | 10 +
4.1.0/apidocs/jquery/jszip/dist/jszip.js | 11370 +++++
4.1.0/apidocs/jquery/jszip/dist/jszip.min.js | 13 +
4.1.0/apidocs/legal/ADDITIONAL_LICENSE_INFO | 37 +
4.1.0/apidocs/legal/ASSEMBLY_EXCEPTION | 27 +
4.1.0/apidocs/legal/LICENSE | 347 +
4.1.0/apidocs/legal/jquery.md | 26 +
4.1.0/apidocs/legal/jqueryUI.md | 49 +
4.1.0/apidocs/legal/jszip.md | 653 +
4.1.0/apidocs/legal/pako.md | 45 +
4.1.0/apidocs/member-search-index.js | 1 +
4.1.0/apidocs/member-search-index.zip | Bin 0 -> 35994 bytes
.../org/apache/openjpa/lib/ant/AbstractTask.html | 691 +
.../openjpa/lib/ant/class-use/AbstractTask.html | 149 +
.../apache/openjpa/lib/ant/package-summary.html | 179 +
.../org/apache/openjpa/lib/ant/package-tree.html | 176 +
.../org/apache/openjpa/lib/ant/package-use.html | 149 +
.../lib/conf/AbstractProductDerivation.html | 705 +
.../org/apache/openjpa/lib/conf/BooleanValue.html | 457 +
.../openjpa/lib/conf/BootstrapException.html | 397 +
.../apache/openjpa/lib/conf/ClassListValue.html | 450 +
.../org/apache/openjpa/lib/conf/Configurable.html | 300 +
.../org/apache/openjpa/lib/conf/Configuration.html | 1028 +
.../apache/openjpa/lib/conf/ConfigurationImpl.html | 1671 +
.../openjpa/lib/conf/ConfigurationProvider.html | 323 +
.../openjpa/lib/conf/Configurations.Runnable.html | 260 +
.../apache/openjpa/lib/conf/Configurations.html | 915 +
.../org/apache/openjpa/lib/conf/DoubleValue.html | 457 +
.../org/apache/openjpa/lib/conf/FileValue.html | 457 +
.../openjpa/lib/conf/GenericConfigurable.html | 271 +
.../org/apache/openjpa/lib/conf/IntValue.html | 457 +
.../openjpa/lib/conf/MapConfigurationProvider.html | 437 +
.../org/apache/openjpa/lib/conf/ObjectValue.html | 608 +
.../apache/openjpa/lib/conf/PluginListValue.html | 575 +
.../org/apache/openjpa/lib/conf/PluginValue.html | 656 +
.../apache/openjpa/lib/conf/ProductDerivation.html | 680 +
.../openjpa/lib/conf/ProductDerivations.html | 593 +
.../apache/openjpa/lib/conf/StringListValue.html | 526 +
.../org/apache/openjpa/lib/conf/StringValue.html | 457 +
.../apidocs/org/apache/openjpa/lib/conf/Value.html | 1323 +
.../org/apache/openjpa/lib/conf/ValueListener.html | 263 +
.../conf/class-use/AbstractProductDerivation.html | 149 +
.../openjpa/lib/conf/class-use/BooleanValue.html | 197 +
.../lib/conf/class-use/BootstrapException.html | 195 +
.../openjpa/lib/conf/class-use/ClassListValue.html | 149 +
.../openjpa/lib/conf/class-use/Configurable.html | 259 +
.../openjpa/lib/conf/class-use/Configuration.html | 579 +
.../lib/conf/class-use/ConfigurationImpl.html | 198 +
.../lib/conf/class-use/ConfigurationProvider.html | 331 +
.../conf/class-use/Configurations.Runnable.html | 199 +
.../openjpa/lib/conf/class-use/Configurations.html | 149 +
.../openjpa/lib/conf/class-use/DoubleValue.html | 197 +
.../openjpa/lib/conf/class-use/FileValue.html | 197 +
.../lib/conf/class-use/GenericConfigurable.html | 197 +
.../openjpa/lib/conf/class-use/IntValue.html | 197 +
.../conf/class-use/MapConfigurationProvider.html | 149 +
.../openjpa/lib/conf/class-use/ObjectValue.html | 236 +
.../lib/conf/class-use/PluginListValue.html | 197 +
.../openjpa/lib/conf/class-use/PluginValue.html | 198 +
.../lib/conf/class-use/ProductDerivation.html | 214 +
.../lib/conf/class-use/ProductDerivations.html | 149 +
.../lib/conf/class-use/StringListValue.html | 197 +
.../openjpa/lib/conf/class-use/StringValue.html | 212 +
.../apache/openjpa/lib/conf/class-use/Value.html | 359 +
.../openjpa/lib/conf/class-use/ValueListener.html | 236 +
.../apache/openjpa/lib/conf/package-summary.html | 340 +
.../org/apache/openjpa/lib/conf/package-tree.html | 229 +
.../org/apache/openjpa/lib/conf/package-use.html | 409 +
.../openjpa/lib/encryption/EncryptionProvider.html | 286 +
.../encryption/class-use/EncryptionProvider.html | 149 +
.../openjpa/lib/encryption/package-summary.html | 170 +
.../openjpa/lib/encryption/package-tree.html | 160 +
.../apache/openjpa/lib/encryption/package-use.html | 149 +
.../apache/openjpa/lib/graph/BreadthFirstWalk.html | 414 +
.../openjpa/lib/graph/DepthFirstAnalysis.html | 405 +
.../apidocs/org/apache/openjpa/lib/graph/Edge.html | 752 +
.../org/apache/openjpa/lib/graph/Graph.html | 518 +
.../org/apache/openjpa/lib/graph/GraphVisitor.html | 298 +
.../lib/graph/class-use/BreadthFirstWalk.html | 149 +
.../lib/graph/class-use/DepthFirstAnalysis.html | 149 +
.../apache/openjpa/lib/graph/class-use/Edge.html | 288 +
.../apache/openjpa/lib/graph/class-use/Graph.html | 199 +
.../openjpa/lib/graph/class-use/GraphVisitor.html | 204 +
.../apache/openjpa/lib/graph/package-summary.html | 216 +
.../org/apache/openjpa/lib/graph/package-tree.html | 173 +
.../org/apache/openjpa/lib/graph/package-use.html | 201 +
.../apache/openjpa/lib/identifier/Identifier.html | 296 +
.../lib/identifier/IdentifierConfiguration.html | 461 +
.../openjpa/lib/identifier/IdentifierImpl.html | 455 +
.../openjpa/lib/identifier/IdentifierRule.html | 750 +
.../openjpa/lib/identifier/IdentifierUtil.html | 1496 +
.../openjpa/lib/identifier/IdentifierUtilImpl.html | 1875 +
.../lib/identifier/class-use/Identifier.html | 210 +
.../class-use/IdentifierConfiguration.html | 396 +
.../lib/identifier/class-use/IdentifierImpl.html | 149 +
.../lib/identifier/class-use/IdentifierRule.html | 613 +
.../lib/identifier/class-use/IdentifierUtil.html | 195 +
.../identifier/class-use/IdentifierUtilImpl.html | 149 +
.../openjpa/lib/identifier/package-summary.html | 210 +
.../openjpa/lib/identifier/package-tree.html | 183 +
.../apache/openjpa/lib/identifier/package-use.html | 204 +
.../lib/instrumentation/AbstractInstrument.html | 590 +
.../AbstractInstrumentationProvider.html | 841 +
.../openjpa/lib/instrumentation/Instrument.html | 516 +
.../lib/instrumentation/InstrumentationLevel.html | 421 +
.../instrumentation/InstrumentationProvider.html | 687 +
.../class-use/AbstractInstrument.html | 149 +
.../class-use/AbstractInstrumentationProvider.html | 149 +
.../lib/instrumentation/class-use/Instrument.html | 318 +
.../class-use/InstrumentationLevel.html | 253 +
.../class-use/InstrumentationProvider.html | 240 +
.../lib/instrumentation/package-summary.html | 217 +
.../openjpa/lib/instrumentation/package-tree.html | 186 +
.../openjpa/lib/instrumentation/package-use.html | 199 +
.../openjpa/lib/jdbc/AbstractJDBCListener.html | 590 +
...gConnectionDecorator.ConfiguringConnection.html | 532 +
.../lib/jdbc/ConfiguringConnectionDecorator.html | 467 +
.../openjpa/lib/jdbc/ConnectionDecorator.html | 269 +
.../apache/openjpa/lib/jdbc/DataSourceLogs.html | 480 +
.../openjpa/lib/jdbc/DecoratingDataSource.html | 466 +
.../lib/jdbc/DelegatingCallableStatement.html | 5319 +++
.../openjpa/lib/jdbc/DelegatingConnection.html | 1966 +
.../openjpa/lib/jdbc/DelegatingDataSource.html | 642 +
.../lib/jdbc/DelegatingDatabaseMetaData.html | 4227 ++
.../lib/jdbc/DelegatingPreparedStatement.html | 2782 ++
.../openjpa/lib/jdbc/DelegatingResultSet.html | 4697 ++
.../openjpa/lib/jdbc/DelegatingStatement.html | 1460 +
.../org/apache/openjpa/lib/jdbc/JDBCEvent.html | 725 +
.../lib/jdbc/JDBCEventConnectionDecorator.html | 379 +
.../org/apache/openjpa/lib/jdbc/JDBCListener.html | 464 +
...LoggingConnection.LoggingCallableStatement.html | 1598 +
....LoggingConnection.LoggingDatabaseMetaData.html | 832 +
...LoggingConnection.LoggingPreparedStatement.html | 1603 +
...corator.LoggingConnection.LoggingResultSet.html | 551 +
...corator.LoggingConnection.LoggingStatement.html | 630 +
...ggingConnectionDecorator.LoggingConnection.html | 867 +
...ggingConnectionDecorator.SQLWarningHandler.html | 262 +
.../lib/jdbc/LoggingConnectionDecorator.html | 562 +
.../openjpa/lib/jdbc/ReportingSQLException.html | 452 +
.../org/apache/openjpa/lib/jdbc/SQLFormatter.html | 516 +
.../lib/jdbc/class-use/AbstractJDBCListener.html | 149 +
...gConnectionDecorator.ConfiguringConnection.html | 149 +
.../class-use/ConfiguringConnectionDecorator.html | 149 +
.../lib/jdbc/class-use/ConnectionDecorator.html | 272 +
.../openjpa/lib/jdbc/class-use/DataSourceLogs.html | 197 +
.../lib/jdbc/class-use/DecoratingDataSource.html | 149 +
.../class-use/DelegatingCallableStatement.html | 197 +
.../lib/jdbc/class-use/DelegatingConnection.html | 204 +
.../lib/jdbc/class-use/DelegatingDataSource.html | 197 +
.../jdbc/class-use/DelegatingDatabaseMetaData.html | 197 +
.../class-use/DelegatingPreparedStatement.html | 195 +
.../lib/jdbc/class-use/DelegatingResultSet.html | 197 +
.../lib/jdbc/class-use/DelegatingStatement.html | 198 +
.../openjpa/lib/jdbc/class-use/JDBCEvent.html | 363 +
.../class-use/JDBCEventConnectionDecorator.html | 149 +
.../openjpa/lib/jdbc/class-use/JDBCListener.html | 198 +
...LoggingConnection.LoggingCallableStatement.html | 149 +
....LoggingConnection.LoggingDatabaseMetaData.html | 149 +
...LoggingConnection.LoggingPreparedStatement.html | 149 +
...corator.LoggingConnection.LoggingResultSet.html | 149 +
...corator.LoggingConnection.LoggingStatement.html | 149 +
...ggingConnectionDecorator.LoggingConnection.html | 149 +
...ggingConnectionDecorator.SQLWarningHandler.html | 214 +
.../jdbc/class-use/LoggingConnectionDecorator.html | 149 +
.../lib/jdbc/class-use/ReportingSQLException.html | 149 +
.../openjpa/lib/jdbc/class-use/SQLFormatter.html | 149 +
.../apache/openjpa/lib/jdbc/package-summary.html | 318 +
.../org/apache/openjpa/lib/jdbc/package-tree.html | 235 +
.../org/apache/openjpa/lib/jdbc/package-use.html | 256 +
.../org/apache/openjpa/lib/log/AbstractLog.html | 766 +
.../lib/log/CommonsLogFactory.LogAdapter.html | 675 +
.../apache/openjpa/lib/log/CommonsLogFactory.html | 364 +
.../org/apache/openjpa/lib/log/JULLogFactory.html | 386 +
4.1.0/apidocs/org/apache/openjpa/lib/log/Log.html | 669 +
.../lib/log/Log4J2LogFactory.LogAdapter.html | 675 +
.../apache/openjpa/lib/log/Log4J2LogFactory.html | 360 +
.../lib/log/Log4JLogFactory.LogAdapter.html | 675 +
.../apache/openjpa/lib/log/Log4JLogFactory.html | 363 +
.../org/apache/openjpa/lib/log/LogFactory.html | 263 +
.../apache/openjpa/lib/log/LogFactoryAdapter.html | 348 +
.../openjpa/lib/log/LogFactoryImpl.LogImpl.html | 467 +
.../org/apache/openjpa/lib/log/LogFactoryImpl.html | 788 +
.../apache/openjpa/lib/log/LogOutputStream.html | 379 +
.../apache/openjpa/lib/log/MultiLogFactory.html | 411 +
.../openjpa/lib/log/NoneLogFactory.NoneLog.html | 714 +
.../org/apache/openjpa/lib/log/NoneLogFactory.html | 351 +
.../lib/log/SLF4JLogFactory.LogAdapter.html | 719 +
.../apache/openjpa/lib/log/SLF4JLogFactory.html | 359 +
.../openjpa/lib/log/class-use/AbstractLog.html | 197 +
.../class-use/CommonsLogFactory.LogAdapter.html | 149 +
.../lib/log/class-use/CommonsLogFactory.html | 149 +
.../openjpa/lib/log/class-use/JULLogFactory.html | 149 +
.../org/apache/openjpa/lib/log/class-use/Log.html | 538 +
.../log/class-use/Log4J2LogFactory.LogAdapter.html | 149 +
.../lib/log/class-use/Log4J2LogFactory.html | 149 +
.../log/class-use/Log4JLogFactory.LogAdapter.html | 149 +
.../openjpa/lib/log/class-use/Log4JLogFactory.html | 149 +
.../openjpa/lib/log/class-use/LogFactory.html | 379 +
.../lib/log/class-use/LogFactoryAdapter.html | 219 +
.../lib/log/class-use/LogFactoryImpl.LogImpl.html | 197 +
.../openjpa/lib/log/class-use/LogFactoryImpl.html | 149 +
.../openjpa/lib/log/class-use/LogOutputStream.html | 149 +
.../openjpa/lib/log/class-use/MultiLogFactory.html | 149 +
.../lib/log/class-use/NoneLogFactory.NoneLog.html | 195 +
.../openjpa/lib/log/class-use/NoneLogFactory.html | 149 +
.../log/class-use/SLF4JLogFactory.LogAdapter.html | 149 +
.../openjpa/lib/log/class-use/SLF4JLogFactory.html | 149 +
.../apache/openjpa/lib/log/package-summary.html | 300 +
.../org/apache/openjpa/lib/log/package-tree.html | 201 +
.../org/apache/openjpa/lib/log/package-use.html | 300 +
.../apache/openjpa/lib/meta/CFMetaDataParser.html | 896 +
.../openjpa/lib/meta/CFMetaDataSerializer.html | 428 +
...ationMetaDataFilter.MatchAnnotationScanner.html | 346 +
.../lib/meta/ClassAnnotationMetaDataFilter.html | 407 +
.../lib/meta/ClassArgParser.ClassNameScanner.html | 354 +
.../apache/openjpa/lib/meta/ClassArgParser.html | 510 +
.../openjpa/lib/meta/ClassMetaDataIterator.html | 464 +
.../lib/meta/ClasspathMetaDataIterator.html | 324 +
.../openjpa/lib/meta/FileMetaDataIterator.html | 451 +
.../lib/meta/JarFileURLMetaDataIterator.html | 470 +
.../openjpa/lib/meta/MetaDataFilter.Resource.html | 285 +
.../apache/openjpa/lib/meta/MetaDataFilter.html | 294 +
.../apache/openjpa/lib/meta/MetaDataIterator.html | 362 +
.../openjpa/lib/meta/MetaDataIteratorChain.html | 471 +
.../apache/openjpa/lib/meta/MetaDataParser.html | 444 +
.../openjpa/lib/meta/MetaDataSerializer.html | 458 +
.../openjpa/lib/meta/ResourceMetaDataIterator.html | 454 +
.../org/apache/openjpa/lib/meta/SourceTracker.html | 432 +
.../apache/openjpa/lib/meta/SourceTrackers.html | 322 +
.../openjpa/lib/meta/SuffixMetaDataFilter.html | 345 +
.../openjpa/lib/meta/URLMetaDataIterator.html | 426 +
.../apache/openjpa/lib/meta/XMLMetaDataParser.html | 1728 +
.../openjpa/lib/meta/XMLMetaDataSerializer.html | 832 +
.../apache/openjpa/lib/meta/XMLVersionParser.html | 566 +
.../openjpa/lib/meta/ZipFileMetaDataIterator.html | 501 +
.../lib/meta/ZipStreamMetaDataIterator.html | 475 +
.../lib/meta/class-use/CFMetaDataParser.html | 149 +
.../lib/meta/class-use/CFMetaDataSerializer.html | 149 +
...ationMetaDataFilter.MatchAnnotationScanner.html | 149 +
.../class-use/ClassAnnotationMetaDataFilter.html | 149 +
.../class-use/ClassArgParser.ClassNameScanner.html | 149 +
.../openjpa/lib/meta/class-use/ClassArgParser.html | 149 +
.../lib/meta/class-use/ClassMetaDataIterator.html | 149 +
.../meta/class-use/ClasspathMetaDataIterator.html | 149 +
.../lib/meta/class-use/FileMetaDataIterator.html | 149 +
.../meta/class-use/JarFileURLMetaDataIterator.html | 149 +
.../meta/class-use/MetaDataFilter.Resource.html | 238 +
.../openjpa/lib/meta/class-use/MetaDataFilter.html | 255 +
.../lib/meta/class-use/MetaDataIterator.html | 330 +
.../lib/meta/class-use/MetaDataIteratorChain.html | 197 +
.../openjpa/lib/meta/class-use/MetaDataParser.html | 213 +
.../lib/meta/class-use/MetaDataSerializer.html | 205 +
.../meta/class-use/ResourceMetaDataIterator.html | 149 +
.../openjpa/lib/meta/class-use/SourceTracker.html | 198 +
.../openjpa/lib/meta/class-use/SourceTrackers.html | 149 +
.../lib/meta/class-use/SuffixMetaDataFilter.html | 149 +
.../lib/meta/class-use/URLMetaDataIterator.html | 149 +
.../lib/meta/class-use/XMLMetaDataParser.html | 206 +
.../lib/meta/class-use/XMLMetaDataSerializer.html | 197 +
.../lib/meta/class-use/XMLVersionParser.html | 149 +
.../meta/class-use/ZipFileMetaDataIterator.html | 149 +
.../meta/class-use/ZipStreamMetaDataIterator.html | 149 +
.../apache/openjpa/lib/meta/package-summary.html | 332 +
.../org/apache/openjpa/lib/meta/package-tree.html | 215 +
.../org/apache/openjpa/lib/meta/package-use.html | 238 +
.../lib/rop/AbstractNonSequentialResultList.html | 580 +
.../apache/openjpa/lib/rop/AbstractResultList.html | 593 +
.../lib/rop/AbstractSequentialResultList.html | 521 +
.../lib/rop/BatchedResultObjectProvider.html | 375 +
.../apache/openjpa/lib/rop/EagerResultList.html | 333 +
.../openjpa/lib/rop/LazyForwardResultList.html | 570 +
.../org/apache/openjpa/lib/rop/ListResultList.html | 631 +
.../openjpa/lib/rop/ListResultObjectProvider.html | 555 +
.../lib/rop/MergedResultObjectProvider.html | 590 +
.../openjpa/lib/rop/RandomAccessResultList.html | 562 +
.../openjpa/lib/rop/RangeResultObjectProvider.html | 571 +
.../org/apache/openjpa/lib/rop/ResultList.html | 370 +
.../apache/openjpa/lib/rop/ResultListIterator.html | 470 +
.../openjpa/lib/rop/ResultObjectProvider.html | 465 +
.../lib/rop/ResultObjectProviderIterator.html | 406 +
.../apache/openjpa/lib/rop/SimpleResultList.html | 479 +
.../lib/rop/SoftRandomAccessResultList.html | 403 +
.../apache/openjpa/lib/rop/WindowResultList.html | 491 +
.../class-use/AbstractNonSequentialResultList.html | 221 +
.../lib/rop/class-use/AbstractResultList.html | 256 +
.../class-use/AbstractSequentialResultList.html | 197 +
.../rop/class-use/BatchedResultObjectProvider.html | 149 +
.../openjpa/lib/rop/class-use/EagerResultList.html | 149 +
.../lib/rop/class-use/LazyForwardResultList.html | 149 +
.../openjpa/lib/rop/class-use/ListResultList.html | 197 +
.../rop/class-use/ListResultObjectProvider.html | 149 +
.../rop/class-use/MergedResultObjectProvider.html | 149 +
.../lib/rop/class-use/RandomAccessResultList.html | 198 +
.../rop/class-use/RangeResultObjectProvider.html | 149 +
.../openjpa/lib/rop/class-use/ResultList.html | 292 +
.../lib/rop/class-use/ResultListIterator.html | 149 +
.../lib/rop/class-use/ResultObjectProvider.html | 336 +
.../class-use/ResultObjectProviderIterator.html | 149 +
.../lib/rop/class-use/SimpleResultList.html | 149 +
.../rop/class-use/SoftRandomAccessResultList.html | 149 +
.../lib/rop/class-use/WindowResultList.html | 149 +
.../apache/openjpa/lib/rop/package-summary.html | 298 +
.../org/apache/openjpa/lib/rop/package-tree.html | 226 +
.../org/apache/openjpa/lib/rop/package-use.html | 224 +
.../org/apache/openjpa/lib/util/Base16Encoder.html | 332 +
.../apidocs/org/apache/openjpa/lib/util/Bytes.html | 434 +
.../org/apache/openjpa/lib/util/ClassUtil.html | 376 +
.../org/apache/openjpa/lib/util/Clearable.html | 253 +
.../org/apache/openjpa/lib/util/Closeable.html | 270 +
.../org/apache/openjpa/lib/util/CodeFormat.html | 1419 +
.../org/apache/openjpa/lib/util/EventManager.html | 348 +
.../apidocs/org/apache/openjpa/lib/util/Files.html | 538 +
...PreservingProperties.DuplicateKeyException.html | 307 +
.../lib/util/FormatPreservingProperties.html | 807 +
.../apache/openjpa/lib/util/J2DoPrivHelper.html | 1815 +
.../org/apache/openjpa/lib/util/JavaVendors.html | 458 +
.../org/apache/openjpa/lib/util/JavaVersions.html | 377 +
.../org/apache/openjpa/lib/util/LRUMap.html | 696 +
.../apache/openjpa/lib/util/Localizer.Message.html | 343 +
.../org/apache/openjpa/lib/util/Localizer.html | 594 +
.../apache/openjpa/lib/util/MultiClassLoader.html | 735 +
.../org/apache/openjpa/lib/util/Options.html | 834 +
.../org/apache/openjpa/lib/util/OrderedMap.html | 588 +
.../apache/openjpa/lib/util/ParameterTemplate.html | 704 +
.../apache/openjpa/lib/util/ParseException.html | 373 +
.../apache/openjpa/lib/util/ReferenceHashMap.html | 738 +
.../apache/openjpa/lib/util/ReferenceHashSet.html | 635 +
.../org/apache/openjpa/lib/util/ReferenceMap.html | 335 +
.../org/apache/openjpa/lib/util/Reflectable.html | 256 +
.../org/apache/openjpa/lib/util/Services.html | 490 +
.../org/apache/openjpa/lib/util/SimpleRegex.html | 315 +
.../org/apache/openjpa/lib/util/SizedMap.html | 346 +
.../apache/openjpa/lib/util/StringDistance.html | 488 +
.../org/apache/openjpa/lib/util/StringUtil.html | 656 +
.../util/TemporaryClassLoader.AccessScanner.html | 354 +
.../openjpa/lib/util/TemporaryClassLoader.html | 380 +
.../apache/openjpa/lib/util/TimestampHelper.html | 395 +
.../apache/openjpa/lib/util/TypedProperties.html | 1006 +
.../org/apache/openjpa/lib/util/UUIDGenerator.html | 439 +
.../openjpa/lib/util/class-use/Base16Encoder.html | 149 +
.../apache/openjpa/lib/util/class-use/Bytes.html | 149 +
.../openjpa/lib/util/class-use/ClassUtil.html | 149 +
.../openjpa/lib/util/class-use/Clearable.html | 149 +
.../openjpa/lib/util/class-use/Closeable.html | 588 +
.../openjpa/lib/util/class-use/CodeFormat.html | 359 +
.../openjpa/lib/util/class-use/EventManager.html | 228 +
.../apache/openjpa/lib/util/class-use/Files.html | 149 +
...PreservingProperties.DuplicateKeyException.html | 149 +
.../util/class-use/FormatPreservingProperties.html | 149 +
.../openjpa/lib/util/class-use/J2DoPrivHelper.html | 149 +
.../openjpa/lib/util/class-use/JavaVendors.html | 212 +
.../openjpa/lib/util/class-use/JavaVersions.html | 149 +
.../apache/openjpa/lib/util/class-use/LRUMap.html | 149 +
.../lib/util/class-use/Localizer.Message.html | 322 +
.../openjpa/lib/util/class-use/Localizer.html | 207 +
.../lib/util/class-use/MultiClassLoader.html | 245 +
.../apache/openjpa/lib/util/class-use/Options.html | 322 +
.../openjpa/lib/util/class-use/OrderedMap.html | 149 +
.../lib/util/class-use/ParameterTemplate.html | 274 +
.../openjpa/lib/util/class-use/ParseException.html | 149 +
.../lib/util/class-use/ReferenceHashMap.html | 149 +
.../lib/util/class-use/ReferenceHashSet.html | 149 +
.../openjpa/lib/util/class-use/ReferenceMap.html | 228 +
.../openjpa/lib/util/class-use/Reflectable.html | 149 +
.../openjpa/lib/util/class-use/Services.html | 149 +
.../openjpa/lib/util/class-use/SimpleRegex.html | 149 +
.../openjpa/lib/util/class-use/SizedMap.html | 243 +
.../openjpa/lib/util/class-use/StringDistance.html | 149 +
.../openjpa/lib/util/class-use/StringUtil.html | 149 +
.../TemporaryClassLoader.AccessScanner.html | 149 +
.../lib/util/class-use/TemporaryClassLoader.html | 197 +
.../lib/util/class-use/TimestampHelper.html | 149 +
.../lib/util/class-use/TypedProperties.html | 200 +
.../openjpa/lib/util/class-use/UUIDGenerator.html | 149 +
.../collections/AbstractCollectionDecorator.html | 710 +
.../AbstractDualBidiMap.BidiMapIterator.html | 615 +
.../collections/AbstractDualBidiMap.EntrySet.html | 424 +
.../AbstractDualBidiMap.EntrySetIterator.html | 457 +
.../collections/AbstractDualBidiMap.KeySet.html | 446 +
.../AbstractDualBidiMap.KeySetIterator.html | 457 +
.../collections/AbstractDualBidiMap.MapEntry.html | 393 +
.../collections/AbstractDualBidiMap.Values.html | 446 +
.../AbstractDualBidiMap.ValuesIterator.html | 457 +
.../util/collections/AbstractDualBidiMap.View.html | 521 +
.../lib/util/collections/AbstractDualBidiMap.html | 1060 +
.../util/collections/AbstractEmptyMapIterator.html | 498 +
.../collections/AbstractHashedMap.EntrySet.html | 461 +
.../AbstractHashedMap.EntrySetIterator.html | 342 +
.../collections/AbstractHashedMap.HashEntry.html | 548 +
.../AbstractHashedMap.HashIterator.html | 378 +
.../AbstractHashedMap.HashMapIterator.html | 437 +
.../util/collections/AbstractHashedMap.KeySet.html | 461 +
.../AbstractHashedMap.KeySetIterator.html | 342 +
.../util/collections/AbstractHashedMap.Values.html | 412 +
.../AbstractHashedMap.ValuesIterator.html | 342 +
.../lib/util/collections/AbstractHashedMap.html | 2031 +
.../lib/util/collections/AbstractIterableMap.html | 378 +
.../collections/AbstractIteratorDecorator.html | 351 +
.../lib/util/collections/AbstractKeyValue.html | 428 +
.../AbstractLinkedMap.EntrySetIterator.html | 397 +
.../AbstractLinkedMap.KeySetIterator.html | 397 +
.../collections/AbstractLinkedMap.LinkEntry.html | 384 +
.../AbstractLinkedMap.LinkIterator.html | 516 +
.../AbstractLinkedMap.LinkMapIterator.html | 494 +
.../AbstractLinkedMap.ValuesIterator.html | 397 +
.../lib/util/collections/AbstractLinkedMap.html | 1071 +
.../util/collections/AbstractListDecorator.html | 640 +
.../lib/util/collections/AbstractMapDecorator.html | 670 +
.../lib/util/collections/AbstractMapEntry.html | 434 +
.../collections/AbstractMapEntryDecorator.html | 473 +
.../collections/AbstractOrderedMapDecorator.html | 570 +
.../AbstractReferenceMap.ReferenceEntry.html | 615 +
.../AbstractReferenceMap.ReferenceStrength.html | 467 +
.../lib/util/collections/AbstractReferenceMap.html | 1240 +
.../AbstractSerializableListDecorator.html | 340 +
.../AbstractSerializableSetDecorator.html | 344 +
.../lib/util/collections/AbstractSetDecorator.html | 448 +
...stractSortedMapDecorator.SortedMapIterator.html | 418 +
.../collections/AbstractSortedMapDecorator.html | 675 +
.../AbstractUntypedIteratorDecorator.html | 385 +
.../openjpa/lib/util/collections/BidiMap.html | 500 +
.../openjpa/lib/util/collections/BoundedMap.html | 334 +
.../lib/util/collections/ComparableComparator.html | 511 +
.../lib/util/collections/ComparatorChain.html | 749 +
.../lib/util/collections/DefaultMapEntry.html | 371 +
.../lib/util/collections/DualHashBidiMap.html | 449 +
.../DualTreeBidiMap.BidiOrderedMapIterator.html | 571 +
.../util/collections/DualTreeBidiMap.ViewMap.html | 584 +
.../lib/util/collections/DualTreeBidiMap.html | 828 +
.../lib/util/collections/EmptyIterator.html | 586 +
.../lib/util/collections/EmptyMapIterator.html | 563 +
.../lib/util/collections/EmptyOrderedIterator.html | 549 +
.../util/collections/EmptyOrderedMapIterator.html | 570 +
.../collections/EntrySetToMapIteratorAdapter.html | 522 +
.../lib/util/collections/FilterIterator.html | 534 +
.../openjpa/lib/util/collections/IterableMap.html | 409 +
.../lib/util/collections/IterableSortedMap.html | 271 +
.../lib/util/collections/IteratorChain.html | 616 +
.../openjpa/lib/util/collections/KeyValue.html | 298 +
.../openjpa/lib/util/collections/LRUMap.html | 1140 +
.../openjpa/lib/util/collections/LinkedMap.html | 665 +
.../lib/util/collections/ListIteratorWrapper.html | 600 +
.../openjpa/lib/util/collections/MapBackedSet.html | 678 +
.../openjpa/lib/util/collections/MapIterator.html | 445 +
.../lib/util/collections/OrderedBidiMap.html | 343 +
.../lib/util/collections/OrderedIterator.html | 313 +
.../openjpa/lib/util/collections/OrderedMap.html | 414 +
.../lib/util/collections/OrderedMapIterator.html | 321 +
.../lib/util/collections/ReferenceIdentityMap.html | 714 +
.../openjpa/lib/util/collections/ReferenceMap.html | 584 +
.../lib/util/collections/ResettableIterator.html | 288 +
.../util/collections/ResettableListIterator.html | 256 +
.../lib/util/collections/SortedBidiMap.html | 369 +
.../openjpa/lib/util/collections/TreeBidiMap.html | 1078 +
.../openjpa/lib/util/collections/Unmodifiable.html | 212 +
.../util/collections/UnmodifiableCollection.html | 498 +
.../lib/util/collections/UnmodifiableEntrySet.html | 572 +
.../lib/util/collections/UnmodifiableIterator.html | 356 +
.../lib/util/collections/UnmodifiableList.html | 729 +
.../util/collections/UnmodifiableListIterator.html | 472 +
.../lib/util/collections/UnmodifiableMapEntry.html | 427 +
.../util/collections/UnmodifiableOrderedMap.html | 571 +
.../UnmodifiableOrderedMapIterator.html | 516 +
.../lib/util/collections/UnmodifiableSet.html | 534 +
.../class-use/AbstractCollectionDecorator.html | 274 +
.../AbstractDualBidiMap.BidiMapIterator.html | 149 +
.../class-use/AbstractDualBidiMap.EntrySet.html | 149 +
.../AbstractDualBidiMap.EntrySetIterator.html | 149 +
.../class-use/AbstractDualBidiMap.KeySet.html | 149 +
.../AbstractDualBidiMap.KeySetIterator.html | 149 +
.../class-use/AbstractDualBidiMap.MapEntry.html | 149 +
.../class-use/AbstractDualBidiMap.Values.html | 149 +
.../AbstractDualBidiMap.ValuesIterator.html | 149 +
.../class-use/AbstractDualBidiMap.View.html | 211 +
.../collections/class-use/AbstractDualBidiMap.html | 330 +
.../class-use/AbstractEmptyMapIterator.html | 204 +
.../class-use/AbstractHashedMap.EntrySet.html | 149 +
.../AbstractHashedMap.EntrySetIterator.html | 149 +
.../class-use/AbstractHashedMap.HashEntry.html | 483 +
.../class-use/AbstractHashedMap.HashIterator.html | 218 +
.../AbstractHashedMap.HashMapIterator.html | 149 +
.../class-use/AbstractHashedMap.KeySet.html | 149 +
.../AbstractHashedMap.KeySetIterator.html | 149 +
.../class-use/AbstractHashedMap.Values.html | 149 +
.../AbstractHashedMap.ValuesIterator.html | 149 +
.../collections/class-use/AbstractHashedMap.html | 334 +
.../collections/class-use/AbstractIterableMap.html | 228 +
.../class-use/AbstractIteratorDecorator.html | 211 +
.../collections/class-use/AbstractKeyValue.html | 214 +
.../AbstractLinkedMap.EntrySetIterator.html | 149 +
.../AbstractLinkedMap.KeySetIterator.html | 149 +
.../class-use/AbstractLinkedMap.LinkEntry.html | 356 +
.../class-use/AbstractLinkedMap.LinkIterator.html | 218 +
.../AbstractLinkedMap.LinkMapIterator.html | 149 +
.../AbstractLinkedMap.ValuesIterator.html | 149 +
.../collections/class-use/AbstractLinkedMap.html | 282 +
.../class-use/AbstractListDecorator.html | 204 +
.../class-use/AbstractMapDecorator.html | 220 +
.../collections/class-use/AbstractMapEntry.html | 206 +
.../class-use/AbstractMapEntryDecorator.html | 197 +
.../class-use/AbstractOrderedMapDecorator.html | 197 +
.../AbstractReferenceMap.ReferenceEntry.html | 238 +
.../AbstractReferenceMap.ReferenceStrength.html | 446 +
.../class-use/AbstractReferenceMap.html | 256 +
.../AbstractSerializableListDecorator.html | 197 +
.../AbstractSerializableSetDecorator.html | 197 +
.../class-use/AbstractSetDecorator.html | 211 +
...stractSortedMapDecorator.SortedMapIterator.html | 149 +
.../class-use/AbstractSortedMapDecorator.html | 197 +
.../AbstractUntypedIteratorDecorator.html | 218 +
.../lib/util/collections/class-use/BidiMap.html | 356 +
.../lib/util/collections/class-use/BoundedMap.html | 229 +
.../class-use/ComparableComparator.html | 214 +
.../collections/class-use/ComparatorChain.html | 149 +
.../collections/class-use/DefaultMapEntry.html | 149 +
.../collections/class-use/DualHashBidiMap.html | 149 +
.../DualTreeBidiMap.BidiOrderedMapIterator.html | 149 +
.../class-use/DualTreeBidiMap.ViewMap.html | 149 +
.../collections/class-use/DualTreeBidiMap.html | 220 +
.../util/collections/class-use/EmptyIterator.html | 149 +
.../collections/class-use/EmptyMapIterator.html | 149 +
.../class-use/EmptyOrderedIterator.html | 149 +
.../class-use/EmptyOrderedMapIterator.html | 149 +
.../class-use/EntrySetToMapIteratorAdapter.html | 197 +
.../util/collections/class-use/FilterIterator.html | 149 +
.../util/collections/class-use/IterableMap.html | 413 +
.../collections/class-use/IterableSortedMap.html | 205 +
.../util/collections/class-use/IteratorChain.html | 149 +
.../lib/util/collections/class-use/KeyValue.html | 279 +
.../lib/util/collections/class-use/LRUMap.html | 228 +
.../lib/util/collections/class-use/LinkedMap.html | 197 +
.../collections/class-use/ListIteratorWrapper.html | 149 +
.../util/collections/class-use/MapBackedSet.html | 205 +
.../util/collections/class-use/MapIterator.html | 339 +
.../util/collections/class-use/OrderedBidiMap.html | 252 +
.../collections/class-use/OrderedIterator.html | 318 +
.../lib/util/collections/class-use/OrderedMap.html | 378 +
.../collections/class-use/OrderedMapIterator.html | 326 +
.../class-use/ReferenceIdentityMap.html | 149 +
.../util/collections/class-use/ReferenceMap.html | 197 +
.../collections/class-use/ResettableIterator.html | 332 +
.../class-use/ResettableListIterator.html | 197 +
.../util/collections/class-use/SortedBidiMap.html | 224 +
.../util/collections/class-use/TreeBidiMap.html | 149 +
.../util/collections/class-use/Unmodifiable.html | 254 +
.../class-use/UnmodifiableCollection.html | 149 +
.../class-use/UnmodifiableEntrySet.html | 149 +
.../class-use/UnmodifiableIterator.html | 149 +
.../collections/class-use/UnmodifiableList.html | 149 +
.../class-use/UnmodifiableListIterator.html | 149 +
.../class-use/UnmodifiableMapEntry.html | 149 +
.../class-use/UnmodifiableOrderedMap.html | 149 +
.../class-use/UnmodifiableOrderedMapIterator.html | 149 +
.../collections/class-use/UnmodifiableSet.html | 149 +
.../lib/util/collections/package-summary.html | 751 +
.../openjpa/lib/util/collections/package-tree.html | 402 +
.../openjpa/lib/util/collections/package-use.html | 593 +
.../concurrent/AbstractConcurrentEventManager.html | 560 +
.../util/concurrent/ConcurrentHashMap.Entry.html | 443 +
.../lib/util/concurrent/ConcurrentHashMap.html | 1073 +
.../openjpa/lib/util/concurrent/ConcurrentMap.html | 316 +
.../concurrent/ConcurrentReferenceHashMap.html | 1057 +
.../concurrent/ConcurrentReferenceHashSet.html | 642 +
.../class-use/AbstractConcurrentEventManager.html | 197 +
.../class-use/ConcurrentHashMap.Entry.html | 242 +
.../concurrent/class-use/ConcurrentHashMap.html | 149 +
.../util/concurrent/class-use/ConcurrentMap.html | 205 +
.../class-use/ConcurrentReferenceHashMap.html | 149 +
.../class-use/ConcurrentReferenceHashSet.html | 149 +
.../lib/util/concurrent/package-summary.html | 215 +
.../openjpa/lib/util/concurrent/package-tree.html | 182 +
.../openjpa/lib/util/concurrent/package-use.html | 218 +
.../org/apache/openjpa/lib/util/git/GitUtils.html | 320 +
.../openjpa/lib/util/git/class-use/GitUtils.html | 149 +
.../openjpa/lib/util/git/package-summary.html | 167 +
.../apache/openjpa/lib/util/git/package-tree.html | 164 +
.../apache/openjpa/lib/util/git/package-use.html | 149 +
.../apache/openjpa/lib/util/package-summary.html | 487 +
.../org/apache/openjpa/lib/util/package-tree.html | 284 +
.../org/apache/openjpa/lib/util/package-use.html | 453 +
.../org/apache/openjpa/lib/xml/Commentable.html | 318 +
.../org/apache/openjpa/lib/xml/DocTypeReader.html | 560 +
.../org/apache/openjpa/lib/xml/Location.html | 397 +
.../openjpa/lib/xml/ValidatingErrorHandler.html | 368 +
.../org/apache/openjpa/lib/xml/XMLFactory.html | 357 +
.../org/apache/openjpa/lib/xml/XMLWriter.html | 426 +
.../openjpa/lib/xml/class-use/Commentable.html | 149 +
.../openjpa/lib/xml/class-use/DocTypeReader.html | 149 +
.../apache/openjpa/lib/xml/class-use/Location.html | 214 +
.../lib/xml/class-use/ValidatingErrorHandler.html | 149 +
.../openjpa/lib/xml/class-use/XMLFactory.html | 149 +
.../openjpa/lib/xml/class-use/XMLWriter.html | 149 +
.../apache/openjpa/lib/xml/package-summary.html | 216 +
.../org/apache/openjpa/lib/xml/package-tree.html | 186 +
.../org/apache/openjpa/lib/xml/package-use.html | 186 +
4.1.0/apidocs/overview-summary.html | 23 +
4.1.0/apidocs/overview-tree.html | 785 +
4.1.0/apidocs/package-search-index.js | 1 +
4.1.0/apidocs/package-search-index.zip | Bin 0 -> 326 bytes
4.1.0/apidocs/resources/glass.png | Bin 0 -> 499 bytes
4.1.0/apidocs/resources/x.png | Bin 0 -> 394 bytes
4.1.0/apidocs/script.js | 149 +
4.1.0/apidocs/search.js | 326 +
4.1.0/apidocs/serialized-form.html | 1495 +
4.1.0/apidocs/stylesheet.css | 910 +
4.1.0/apidocs/type-search-index.js | 1 +
4.1.0/apidocs/type-search-index.zip | Bin 0 -> 2206 bytes
794 files changed, 360801 insertions(+)
diff --git a/4.1.0/apache-openjpa/RELEASE-NOTES.html b/4.1.0/apache-openjpa/RELEASE-NOTES.html
new file mode 100644
index 000000000..07906dbed
--- /dev/null
+++ b/4.1.0/apache-openjpa/RELEASE-NOTES.html
@@ -0,0 +1,161 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html>
+<title>Release Notes for Apache OpenJPA 4.1.0</title>
+<body>
+<h1>Release Notes for Apache OpenJPA 4.1.0</h1>
+<p>
+<ul>
+ <li><a href="#Overview">Overview</a></li>
+ <li><a href="#Prerequisites">Prerequisites</a></li>
+ <li><a href="#Documentation">Documentation</a></li>
+ <li><a href="#GetInvolved">Getting Involved</a></li>
+ <li><a href="#License">License</a></li>
+ <li><a href="#Notice">Notice</a></li>
+ <li><a href="#ReleaseNotes">Release Notes</a></li>
+ <li><a href="#Previous">Release Notes for previous OpenJPA releases</a></li>
+</ul>
+</p>
+<BR>
+<hr>
+<h2><a name="Overview"></a>Overview</h2>
+
+<P>
+ The Apache OpenJPA community is proud to release a distribution of
+ OpenJPA 4.1.0. This distribution is based on the final Jakarta Persistence API,
+ Version 3.1 specification while not beeing fully TCK tested.
+ We remain backwards compatible with prior releases based on the
+ Java Persistence API up to 3.0.
+</P>
+
+<p>Additional information on the OpenJPA project may be found at the project
+web site: <a href="http://openjpa.apache.org">http://openjpa.apache.org</a></p>
+
+<h2><a name="Prerequisites"></a>Prerequisites</h2>
+<P>OpenJPA requires Java 11 or higher and a relational
+database of some sort.
+</p>
+
+<h2><a name="Documentation"></a>Documentation</h2>
+<p>If you have questions about OpenJPA, a good source of information is the
+online product manual. You can find the manual for the current release as well
+as older releases of OpenJPA at
+<a href="http://openjpa.apache.org/documentation.html">
+http://openjpa.apache.org/documentation.html</a></p>
+<p>If you can't find what you are looking for in the manual or would like more
+clarification, please post to the OpenJPA development mailing list.
+Information on all of the OpenJPA mailing lists may be found here:
+<a href="http://openjpa.apache.org/mailing-lists.html">
+http://openjpa.apache.org/mailing-lists.html</a></p>
+
+<h2><a name="GetInvolved"></a>Getting Involved</h2>
+<p>The Apache OpenJPA project is being built by the open source community for the open source community -
+we welcome your input and contributions!</p>
+<P>What we are looking for:
+<ul>
+ <li> Source code and fixes contributions </li>
+ <li> Documentation assistance </li>
+ <li> Product and feature suggestions </li>
+ <li> Detailed and constructive feedback </li>
+ <li> Articles and whitepapers </li>
+</ul></p>
+<p>How do I contribute?
+<ul>
+ <li> To discuss Apache OpenJPA topics check out the mailing lists. </li>
+ <li> Informal discussion also occurs on the #openjpa IRC channel on
+ freenode.net. </li>
+ <li> Bugs and other issues can be posted on
+ <a href="https://issues.apache.org/jira/browse/OPENJPA">
+ the issue tracker</a>.
+ </li>
+</ul>
+</p>
+
+<BR>
+<hr>
+<h2><a name="License"></a>License</h2>
+<P>Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.
+<BR>You may obtain a copy of the License at:
+<a href="http://www.apache.org/licenses/LICENSE-2.0">
+http://www.apache.org/licenses/LICENSE-2.0</a>
+<BR>Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.</p>
+<P>The license may also be found in LICENSE.txt which is included
+in each release of OpenJPA.</P>
+
+<h2><a name="Notice"></a>Notice</h2>
+<p>Copyright 2006,2025 The Apache Software Foundation
+<BR>This product includes software developed at The Apache Software Foundation (http://www.apache.org/).</p>
+<P>Apache OpenJPA includes the persistence and orm schemas from the JPA specifications.
+<BR>Copyright 2005-2009 Sun Microsystems, Inc. All rights reserved.
+<BR>Apache OpenJPA elects to include this software in this distribution under the CDDL license.
+<BR>You can obtain a copy of the License at:
+<a href="https://glassfish.dev.java.net/public/CDDL+GPL.html">https://glassfish.dev.java.net/public/CDDL+GPL.html</a>
+<BR>The source code is available at:
+<a href="http://java.net/projects/glassfish">http://java.net/projects/glassfish</a></p>
+<P>The complete list of notices can be found in NOTICE.txt included in each assembly.</p>
+
+<BR>
+<hr>
+<h2><a name="ReleaseNotes">Release Notes</a></h2>
+
+<hr>
+<h3><a name="312">OpenJPA 4.1.0</a></h3>
+
+
+
+<h1>Release Notes - OpenJPA - Version 4.1.0</h1>
+
+<h2> Bug
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2898'>OPENJPA-2898</a>] - Cannot resolve the name 'orm:versionType'
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2928'>OPENJPA-2928</a>] - Missing orm and persistence xml v3 schemas for offline processing
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2930'>OPENJPA-2930</a>] - UUID ID Generator Strategy
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2932'>OPENJPA-2932</a>] - Implement numeric JPA 3.1 JPQL functions and equivalent Criteria API
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2933'>OPENJPA-2933</a>] - Implement new date JPA 3.1 JPQL functions and equivalent Criteria API
+</li>
+</ul>
+
+<h2> Task
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2934'>OPENJPA-2934</a>] - Offline XSD schema for JPA 3.1. should be added
+</li>
+</ul>
+
+<hr>
+<p>Copyright (C) 2006,2025 Apache Software Foundation. Licensed under Apache License 2.0.<br>
+Apache, the Apache feather logo and OpenJPA are trademarks of Apache Software Foundation.<br>
+</body>
+</html>
diff --git a/4.1.0/apache-openjpa/docs/appendices.html b/4.1.0/apache-openjpa/docs/appendices.html
new file mode 100644
index 000000000..aad7a7b0d
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/appendices.html
@@ -0,0 +1,171 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Part 4. Appendices</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="prev" href="ref_guide_instrumentation_custom.html" title="2. Custom Providers and Instruments"><link rel="next" href="jpa_resources [...]
+ JPA Resources
+ </a></span></dt><dt><span class="appendix"><a href="supported_databases.html">2.
+ Supported Databases
+ </a></span></dt><dd><dl><dt><span class="section"><a href="supported_databases.html#dbappendix">1.
+ Overview
+ </a></span></dt><dt><span class="section"><a href="dbsupport.html">2.
+ Verified Database Matrix
+ </a></span></dt><dt><span class="section"><a href="dbcompatible.html">3.
+ Compatible Database Matrix
+ </a></span></dt><dt><span class="section"><a href="dbunverified.html">4.
+ Unverified Database Matrix
+ </a></span></dt><dt><span class="section"><a href="dbsupport_derby.html">5.
+ Apache Derby
+ </a></span></dt><dt><span class="section"><a href="dbsupport_interbase.html">6.
+ Borland Interbase
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_interbase.html#dbsupport_interbase_issues">6.1.
+ Known issues with Interbase
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_jdatastore.html">7.
+ JDataStore
+ </a></span></dt><dt><span class="section"><a href="dbsupport_db2.html">8.
+ IBM DB2
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_db2.html#dbsupport_db2_issues">8.1.
+ Known issues with DB2
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_empress.html">9.
+ Empress
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_empress.html#dbsupport_empress_issues">9.1.
+ Known issues with Empress
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_h2.html">10.
+ H2 Database Engine
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_h2.html#dbsupport_h2_issues">10.1.
+ Known issues with H2 Database Engine
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_hypersonic.html">11.
+ Hypersonic
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_hypersonic.html#dbsupport_hypersonic_issues">11.1.
+ Known issues with Hypersonic
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_firebird.html">12.
+ Firebird
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_firebird.html#dbsupport_firebird_issues">12.1.
+ Known issues with Firebird
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_informix.html">13.
+ Informix
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_informix.html#dbsupport_informix_issues">13.1.
+ Known issues with Informix
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_ingres.html">14.
+ Ingres Database
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_ingres.html#dbsupport_ingres_issues">14.1.
+ Known issues with Ingres
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_intersystems_cache.html">15.
+ InterSystems Cache
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_intersystems_cache.html#dbsupport_intersystems_cache_issues">15.1.
+ Known issues with InterSystems Cache
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_access.html">16.
+ Microsoft Access
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_access.html#dbsupport_access_issues">16.1.
+ Known issues with Microsoft Access
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_sqlserver.html">17.
+ Microsoft SQL Server
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_sqlserver.html#dbsupport_sqlserver_issues">17.1.
+ Known issues with SQL Server
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_foxpro.html">18.
+ Microsoft FoxPro
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_foxpro.html#dbsupport_foxpro_issues">18.1.
+ Known issues with Microsoft FoxPro
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_mysql.html">19.
+ MySQL
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_mysql.html#dbsupport_mysql_query_hints">19.1.
+ Using Query Hints with MySQL
+ </a></span></dt><dt><span class="section"><a href="dbsupport_mysql.html#dbsupport_mysql_issues">19.2.
+ Known issues with MySQL
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_mariadb.html">20.
+ MariaDB
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_mariadb.html#dbsupport_mariadb_issues">20.1.
+ Known issues with MariaDB
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_oracle.html">21.
+ Oracle
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_query_hints">21.1.
+ Using Query Hints with Oracle
+ </a></span></dt><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_issues">21.2.
+ Known issues with Oracle
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_pointbase.html">22.
+ Pointbase
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_pointbase.html#dbsupport_pointbase_issues">22.1.
+ Known issues with Pointbase
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_postgresql.html">23.
+ PostgreSQL
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_postgresql.html#dbsupport_postgresql_issues">23.1.
+ Known issues with PostgreSQL
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_soliddb.html">24.
+ IBM solidDB
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_table_types">24.1.
+ M-type tables vs. D-type tables
+ </a></span></dt><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_concurrency_control">24.2.
+ Concurrency control mechanism
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_sybase.html">25.
+ Sybase Adaptive Server
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_sybase.html#dbsupport_sybase_issues">25.1.
+ Known issues with Sybase
+ </a></span></dt></dl></dd></dl></dd><dt><span class="appendix"><a href="migration_considerations.html">3.
+ Migration Considerations
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#jpa_2.0">1.
+ OpenJPA 2.0.0
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#jpa_2.0_incompatibilities">1.1.
+ Incompatibilities
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#getProperties">1.1.1.
+ getProperties()
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#migration_detach_behavior">1.1.2.
+ Detach Behavior
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#private_persistent_properties">1.1.3.
+ Use of private persistent properties
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#setParameter">1.1.4.
+ Query.setParameter()
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#serialization">1.1.5.
+ Serialization of Entities
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#QuerySQLCache">1.1.6.
+ openjpa.jdbc.QuerySQLCache
+ </a></span></dt></dl></dd><dt><span class="section"><a href="migration_considerations.html#Disabling AutoOff Collection Tracking">1.2.
+ Disabling AutoOff Collection Tracking
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#internal_differences">1.3.
+ Internal Behavioral Differences
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#prePostUpdate">1.3.1.
+ PreUpdate/PostUpdate Life Cycle Callbacks
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#createemf">1.3.2.
+ createEntityManagerFactory Exceptions
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#querycache">1.3.3.
+ openjpa.QueryCache default
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_2.2.html">2.
+ OpenJPA 2.2.0
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_incompatibilities">2.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_allocationSize">2.1.1.
+ allocationSize Property of Sequence Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_metamodelArrays">2.1.2.
+ MetaModel Attributes for Arrays
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_SupportsSetClob">2.1.3.
+ supportsSetClob Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_UseNativeSequenceCache">2.1.4.
+ useNativeSequenceCache Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_cascadePersist">2.1.5.
+ Cascade persist behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_LifecycleEventManager">2.1.6.
+ Life Cycle Event Manager Callback Behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_sharedCacheMode">2.1.7.
+ shared-cache-mode Property
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_2.3.html">3.
+ OpenJPA 2.3.0
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_incompatibilities">3.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_MappingTool">3.1.1.
+ MappingTool Behavior for DB2 and Derby
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_RequiresSearchStringEscapeForLike">3.1.2.
+ RequiresSearchStringEscapeForLike DBDictionary Property
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#ReturnNullOnEmptyAggregateResult">3.1.3.
+ Return value of aggregate functions in SELECT clause
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_3.2.html">4. OpenJPA 3.2.0</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_incompatibilities">4.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_SumDouble">4.1.1. SUM now always returns Double</a></span></dt><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_InvalidColumnNames">4.1.2. Invalid Column Name Changes< [...]
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_instrumentation_custom.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="jpa_resources.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.
+ Custom Providers and Instruments
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix 1.
+ JPA Resources
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/ch13s02.html b/4.1.0/apache-openjpa/docs/ch13s02.html
new file mode 100644
index 000000000..729627639
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/ch13s02.html
@@ -0,0 +1,27 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>2. Executing a CriteriaQuery</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="jpa_overview_criteria.html" title="Chapter 11. JPA Criteria"><link rel="prev" href="jpa_overview_criteria.html" title="Chapter 11. JPA Criteria"><link rel="next" href="ch13s0 [...]
+ JPA Criteria
+ </th><td width="20%" align="right"> <a accesskey="n" href="ch13s03.html">Next</a></td></tr></table><hr></div><div class="section" id="d5e5501"><div class="titlepage"><div><div><h2 class="title" style="clear: both">2. Executing a CriteriaQuery</h2></div></div></div>
+
+ <p>
+ A CriteriaQuery is executed in a similar fashion to a string-based JPQL
+ query via the EntityManager and Query interfaces.
+ </p><pre class="programlisting">
+EntityManager em = ...
+Query query = em.createQuery(qdef);
+List result = query.getResultList();
+ </pre><p>
+ </p>
+ <p>
+ A query definition can use named parameters, and the parameter values are
+ set as usual in the Query instance.
+ </p>
+
+ <p>
+ <a class="ulink" href="http://www.ibm.com/developerworks/java/library/j-typesafejpa/" target="_top">A developerworks article</a>
+ explains details and further usage of Criteria API and its OpenJPA extensions.
+ </p>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="jpa_overview_criteria.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="jpa_overview_criteria.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch13s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11.
+ JPA Criteria
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 3. Extension to Criteria API</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/ch13s03.html b/4.1.0/apache-openjpa/docs/ch13s03.html
new file mode 100644
index 000000000..addfc783d
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/ch13s03.html
@@ -0,0 +1,23 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>3. Extension to Criteria API</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="jpa_overview_criteria.html" title="Chapter 11. JPA Criteria"><link rel="prev" href="ch13s02.html" title="2. Executing a CriteriaQuery"><link rel="next" href="ch13s04.html" title="4 [...]
+ JPA Criteria
+ </th><td width="20%" align="right"> <a accesskey="n" href="ch13s04.html">Next</a></td></tr></table><hr></div><div class="section" id="d5e5508"><div class="titlepage"><div><div><h2 class="title" style="clear: both">3. Extension to Criteria API</h2></div></div></div>
+
+ <p>
+ Criteria API has provided an alternative means to string-based JPQL to
+ execute a query. However, JPA 2.0 specification has not explicitly specified
+ any equivalence between a dynamically constructed CriteriaQuery and
+ a JPQL string. OpenJPA provides a mechanism to convert a CriteriaQuery to
+ an equivalent JPQL query string via the extended OpenJPACriteriaQuery API.
+ </p><pre class="programlisting">
+public interface OpenJPACriteriaQuery extends CriteriaQuery {
+ /**
+ * Gets equivalent JPQL String for the given CriteriaQuery.
+ */
+ public String toCQL();
+}
+ </pre><p>
+
+ </p>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch13s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="jpa_overview_criteria.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch13s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2. Executing a CriteriaQuery </td><td width="20%" align="center"><a accesskey= [...]
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/ch13s04.html b/4.1.0/apache-openjpa/docs/ch13s04.html
new file mode 100644
index 000000000..814006b6e
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/ch13s04.html
@@ -0,0 +1,60 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>4. Generation of Canonical MetaModel classes</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="jpa_overview_criteria.html" title="Chapter 11. JPA Criteria"><link rel="prev" href="ch13s03.html" title="3. Extension to Criteria API"><link rel="next" href="jpa_ov [...]
+ JPA Criteria
+ </th><td width="20%" align="right"> <a accesskey="n" href="jpa_overview_sqlquery.html">Next</a></td></tr></table><hr></div><div class="section" id="d5e5512"><div class="titlepage"><div><div><h2 class="title" style="clear: both">4. Generation of Canonical MetaModel classes</h2></div></div></div>
+
+ <p>
+Annotation processing tool generates source code for a metamodel class given
+the annotated source code of persistent entity.
+This tool is invoked during compilation for JDK6 compiler if OpenJPA and JPA
+libraries are specified in the compiler <code class="code">-classpath</code> option <span class="emphasis"><em>and</em></span>
+Annotation processor option <code class="code">-Aopenjpa.metamodel=true</code> is specified.
+ </p><pre class="programlisting">
+ $ javac -classpath path/to/openjpa-all.jar -Aopenjpa.metamodel=true mypackage/MyEntity.java
+ </pre><p>
+will generate source code for canonical meta-model class <code class="code">mypackage.MyEntity_</code>.
+The source code is generated relative to the directory specified in <code class="code">-s</code> option
+of <code class="code">javac</code> compiler and defaulted to the current directory.
+ </p>
+
+ <p>
+The Annotation Processor recognizes the following options specified in the command-line with <code class="code">-A</code>
+(none of them are mandatory).
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+ -Aopenjpa.log=TRACE|INFO|WARN|ERROR : The logging level. Default is <code class="code">WARN</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+ -Aopenjpa.source=<n> : where <n> denotes the integral number for Java source
+ version of the generated code. Default is <code class="code">6</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+ -Aopenjpa.naming=class name : fully-qualified name of a class implementing
+ <code class="code">org.apache.openjpa.meta.MetaDataFactory</code> that determines
+the name of a meta-class given the name of the original persistent Java entity class. Defaults to
+<code class="code">org.apache.openjpa.persistence.PersistenceMetaDataFactory</code> which appends an underscore character
+(<code class="code">_</code>) to the original Java class name.
+ </p>
+ </li><li class="listitem">
+ <p>
+ -Aopenjpa.header=<url> : A url whose content will appear as comment header to the generated file(s).
+ Recognizes special value <code class="code">ASL</code> for Apache Source License header as comment.
+ By default, adds an OpenJPA proprietary text as comment block.
+ </p>
+ </li><li class="listitem">
+ <p>
+ -Aopenjpa.addGeneratedAnnotation=auto|force|false : Configure whether the annotation
+ <code class="code">jakarta.annotation.Generated</code> should be added to the generated metamodel classes.
+ This annotation is not available on Java 9 upwards unless the <code class="code">jakarta.annotation-api</code>
+ is in the classpath.
+ The default is <code class="code">auto</code>. Set to <code class="code">force</code> to add the annotation even if it is
+ not in the classpath or to <code class="code">false</code> to never add it to the generated class.
+ </p>
+ </li></ul></div><p>
+ </p>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch13s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="jpa_overview_criteria.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jpa_overview_sqlquery.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3. Extension to Criteria API </td><td width="20%" align="center" [...]
+ SQL Queries
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/ch29s04.html b/4.1.0/apache-openjpa/docs/ch29s04.html
new file mode 100644
index 000000000..281fc0c45
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/ch29s04.html
@@ -0,0 +1,197 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>4. Configuration Properties</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="ref_guide_slice.html" title="Chapter 13. Slice: Distributed Persistence"><link rel="prev" href="slice_configuration.html" title="3. Usage"><link rel="next" href="ref_guide_integrati [...]
+ Slice: Distributed Persistence
+ </th><td width="20%" align="right"> <a accesskey="n" href="ref_guide_integration.html">Next</a></td></tr></table><hr></div><div class="section" id="d5e17291"><div class="titlepage"><div><div><h2 class="title" style="clear: both">4. Configuration Properties</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="ch29s04.html#d5e17296">4.1. Global Properties</a></span></dt><dd><dl><dt><span class="section"><a href="ch29s04.html#d5e17298">4.1.1. [...]
+
+ <p>
+ The properties to configure Slice can be classified in two broad groups.
+The <span class="emphasis"><em>global</em></span> properties apply to all the slices, for example,
+the thread pool used to execute the queries in parallel or the transaction
+manager used to coordinate transaction across multiple slices.
+The <span class="emphasis"><em>per-slice</em></span> properties apply to individual slice, for example,
+the JDBC connection URL of a slice.
+ </p>
+
+ <div class="section" id="d5e17296"><div class="titlepage"><div><div><h3 class="title">4.1. Global Properties</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="ch29s04.html#d5e17298">4.1.1. openjpa.slice.DistributionPolicy</a></span></dt><dt><span class="section"><a href="ch29s04.html#d5e17304">4.1.2. openjpa.slice.Lenient</a></span></dt><dt><span class="section"><a href="ch29s04.html#d5e17311">4.1.3. openjpa.slice.Master</a></span></dt><dt> [...]
+
+
+ <div class="section" id="d5e17298"><div class="titlepage"><div><div><h4 class="title">4.1.1. openjpa.slice.DistributionPolicy</h4></div></div></div>
+
+ <p>
+ This <span class="emphasis"><em>mandatory</em></span> plug-in property determines how newly
+ persistent instances are distributed across individual slices.
+ The value of this property is a fully-qualified class name that implements
+ <a class="ulink" href="../../apidocs/org/apache/openjpa/slice/DistributionPolicy.html" target="_top">
+ <code class="classname">org.apache.openjpa.slice.DistributionPolicy</code>
+ </a> interface.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17304"><div class="titlepage"><div><div><h4 class="title">4.1.2. openjpa.slice.Lenient</h4></div></div></div>
+ <p>
+ This boolean plug-in property controls the behavior when one or more slice
+ can not be connected or unavailable for some other reasons.
+ If <code class="classname">true</code>, the unreachable slices are ignored. If
+ <code class="classname">false</code> then any unreachable slice will raise an exception
+ during startup.
+ </p>
+ <p>
+ By default this value is set to <code class="classname">false</code> i.e. all configured
+ slices must be available.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17311"><div class="titlepage"><div><div><h4 class="title">4.1.3. openjpa.slice.Master</h4></div></div></div>
+
+ <p>
+ The user application often directs OpenJPA to generate primary keys
+ for persistence instances automatically or from a specific database
+ sequence. For such primary key value generation strategy where
+ a database instance is required, Slice uses a designated slice
+ referred to as <span class="emphasis"><em>master</em></span> slice.
+ </p>
+ <p>
+ The master slice can be specified explicitly via
+ <code class="classname">openjpa.slice.Master</code> property and whose value is one
+ of the configured slice names. If this property is not explicitly
+ specified then, by default, the master slice is the first slice
+ in the list of configured slice names.
+ </p>
+ <p>
+ </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>
+ Currently, there is no provision to use sequence from
+ multiple slices.
+ </div><p>
+ </p>
+ </div>
+
+ <div class="section" id="d5e17319"><div class="titlepage"><div><div><h4 class="title">4.1.4. openjpa.slice.Names</h4></div></div></div>
+
+ <p>
+ This plug-in property can be used to register the logical slice names.
+ The value of this property is comma-separated list of slice names.
+ The ordering of the names in this list is
+ <span class="emphasis"><em>significant</em></span> because
+ <a class="link" href="slice_configuration.html#distribution_policy" title="3.3. Implement DistributionPolicy interface">DistributionPolicy</a> and
+ <a class="link" href="slice_configuration.html#replication_policy" title="3.4. Implement ReplicationPolicy interface">ReplicationPolicy</a> receive
+ the input argument of the slice names in the same order.
+ </p>
+ <p>
+ If logical slice names are not registered explicitly via this property,
+ then all logical slice names available in the persistence unit are
+ registered. The ordering of the slice names in this case is alphabetical.
+ </p>
+ <p>
+ If logical slice names are registered explicitly via this property, then
+ any logical slice that is available in the persistence unit but excluded
+ from this list is ignored.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17327"><div class="titlepage"><div><div><h4 class="title">4.1.5. openjpa.slice.ThreadingPolicy</h4></div></div></div>
+
+ <p>
+ This plug-in property determines the nature of thread pool being used
+ for database operations such as query or flush on individual slices.
+ The value of the property is a
+ fully-qualified class name that implements
+ <a class="ulink" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html" target="_top">
+ <code class="classname">java.util.concurrent.ExecutorService</code>
+ </a> interface.
+ Two pre-defined pools can be chosen via their aliases namely
+ <code class="classname">fixed</code> or <code class="classname">cached</code>.
+ </p>
+ <p>
+ The pre-defined alias <code class="classname">cached</code> activates a
+ <a class="ulink" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool()" target="_top">cached thread pool</a>.
+ A cached thread pool creates new threads as needed, but will reuse
+ previously constructed threads when they are available. This pool
+ is suitable in scenarios that execute many short-lived asynchronous tasks.
+ The way Slice uses the thread pool to execute database operations is
+ akin to such scenario and hence <code class="classname">cached</code> is the default
+ value for this plug-in property.
+ </p>
+ <p>
+ The <code class="classname">fixed</code> alias activates a
+ <a class="ulink" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Executors.html#newFixedThreadPool(int)" target="_top">fixed thread pool</a>.
+ The fixed thread pool can be further parameterized with
+ <code class="classname">CorePoolSize</code>, <code class="classname">MaximumPoolSize</code>,
+ <code class="classname">KeepAliveTime</code> and <code class="classname">RejectedExecutionHandler</code>.
+ The meaning of these parameters are described in
+ <a class="ulink" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html" target="_top">JavaDoc</a>.
+ The users can exercise finer control on thread pool behavior via these
+ parameters.
+ By default, the core pool size is <code class="classname">10</code>, maximum pool size is
+ also <code class="classname">10</code>, keep alive time is <code class="classname">60</code> seconds and
+ rejected execution is
+ <a class="ulink" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.AbortPolicy.html" target="_top">aborted</a>.
+ </p>
+ <p>
+ Both of the pre-defined aliases can be parameterized with a fully-qualified
+ class name that implements
+ <a class="ulink" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html" target="_top">
+ <code class="classname">java.util.concurrent.ThreadFactory</code>
+ </a> interface.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17353"><div class="titlepage"><div><div><h4 class="title">4.1.6. openjpa.slice.TransactionPolicy</h4></div></div></div>
+
+ <p>
+ This plug-in property determines the policy for transaction commit
+ across multiple slices. The value of this property is a fully-qualified
+ class name that implements
+ <a class="ulink" href="http://download.oracle.com/javaee/6/api/javax/transaction/TransactionManager.html" target="_top">
+ <code class="classname">javax.transaction.TransactionManager</code>
+ </a> interface.
+ </p>
+ <p>
+ Three pre-defined policies can be chosen
+ by their aliases namely <code class="classname">default</code>,
+ <code class="classname">xa</code> and <code class="classname">jndi</code>.
+ </p>
+ <p>
+ The <code class="classname">default</code> policy employs
+ a Transaction Manager that commits or rolls back transaction on individual
+ slices <span class="emphasis"><em>without</em></span> a two-phase commit protocol.
+ It does <span class="emphasis"><em>not</em></span>
+ guarantee atomic nature of transaction across all the slices because if
+ one or more slice fails to commit, there is no way to rollback the transaction
+ on other slices that committed successfully.
+ </p>
+ <p>
+ The <code class="classname">xa</code> policy employs a Transaction Manager that that commits
+ or rolls back transaction on individual
+ slices using a two-phase commit protocol. The prerequisite to use this scheme
+ is, of course, that all the slices must be configured to use
+ XA-compliant JDBC driver.
+ </p>
+ <p>
+ The <code class="classname">jndi</code> policy employs a Transaction Manager by looking up the
+ JNDI context. The prerequisite to use this transaction
+ manager is, of course, that all the slices must be configured to use
+ XA-compliant JDBC driver.
+ </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>This JNDI based policy is not available currently.</div><p>
+ </p>
+ </div>
+ </div>
+
+ <div class="section" id="d5e17371"><div class="titlepage"><div><div><h3 class="title">4.2. Per-Slice Properties</h3></div></div></div>
+
+ <p>
+ Any OpenJPA property can be configured for each individual slice. The property name
+ is of the form <code class="classname">openjpa.slice.[Logical slice name].[OpenJPA Property Name]</code>.
+ For example, <code class="classname">openjpa.slice.One.ConnectionURL</code> where <code class="classname">One</code>
+ is the logical slice name and <code class="classname">ConnectionURL</code> is an OpenJPA property
+ name.
+ </p>
+ <p>
+ If a property is not configured for a specific slice, then the value for
+ the property equals to the corresponding <code class="classname">openjpa.*</code> property.
+ </p>
+ </div>
+
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="slice_configuration.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_slice.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ref_guide_integration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3. Usage </td><td width="20%" align="center"><a accesskey="h [...]
+ Third Party Integration
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbcompatible.html b/4.1.0/apache-openjpa/docs/dbcompatible.html
new file mode 100644
index 000000000..e05f825a3
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbcompatible.html
@@ -0,0 +1,198 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>3. Compatible Database Matrix</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport.html" title="2. Verified Database Matrix"><link rel="next" href="dbunverified. [...]
+ Compatible Database Matrix
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbunverified.html">Next</a></td></tr></table><hr></div><div class="section" id="dbcompatible"><div class="titlepage"><div><div><h2 class="title" style="clear: both">3.
+ Compatible Database Matrix
+ </h2></div></div></div>
+
+ <p>
+Following is a table of the database and JDBC driver versions that are
+compatible with OpenJPA. Some of these databases have been tested against this
+version of OpenJPA, while others were added or tested in prior releases and
+may not support all of the new features of this release. For the list of
+databases that have been fully tested against this release, please refer to the
+<a class="link" href="dbsupport.html" title="2. Verified Database Matrix">Verified Database Matrix</a> section.
+ </p>
+ <div class="table" id="d5e17998"><p class="title"><b>Table 2.2.
+ Compatible Databases and JDBC Drivers
+ </b></p><div class="table-contents">
+
+ <table class="table" summary="
 Compatible Databases and JDBC Drivers
 " border="1"><colgroup><col align="left" class="dbname"><col align="left" class="dbversion"><col align="left" class="drivname"><col align="left" class="drivversion"></colgroup><thead><tr><th align="left">
+ Database Name
+ </th><th align="left">
+ Database Version
+ </th><th align="left">
+ JDBC Driver Name
+ </th><th align="left">
+ JDBC Driver Version
+ </th></tr></thead><tbody><tr><td align="left">
+ <a class="link" href="dbsupport_derby.html" title="5. Apache Derby">Apache Derby</a>
+ </td><td align="left">
+ 10.1.2.1
+ </td><td align="left">
+ Apache Derby Embedded JDBC Driver
+ </td><td align="left">
+ 10.1.2.1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_interbase.html" title="6. Borland Interbase">Borland Interbase</a>
+ </td><td align="left">
+ 7.1.0.202
+ </td><td align="left">
+ Interclient
+ </td><td align="left">
+ 4.5.1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_jdatastore.html" title="7. JDataStore">Borland JDataStore</a>
+ </td><td align="left">
+ 6.0
+ </td><td align="left">
+ Borland JDataStore
+ </td><td align="left">
+ 6.0
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_db2.html" title="8. IBM DB2">DB2</a>
+ </td><td align="left">
+ 8.1
+ </td><td align="left">
+ IBM DB2 JDBC Universal Driver
+ </td><td align="left">
+ 1.0.581, 2.10.72
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_empress.html" title="9. Empress">Empress</a>
+ </td><td align="left">
+ 8.62
+ </td><td align="left">
+ Empress Category 2 JDBC Driver
+ </td><td align="left">
+ 8.62
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_firebird.html" title="12. Firebird">Firebird</a>
+ </td><td align="left">
+ 1.5, 2.0, 2.1
+ </td><td align="left">
+ JayBird JCA/JDBC driver
+ </td><td align="left">
+ 2.1.6
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_h2.html" title="10. H2 Database Engine">H2 Database Engine</a>
+ </td><td align="left">
+ 1.1.118
+ </td><td align="left">
+ H2
+ </td><td align="left">
+ Same as Database Version
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_hypersonic.html" title="11. Hypersonic">Hypersonic Database Engine</a>
+ </td><td align="left">
+ 1.8.0, 2.0.1 RC2
+ </td><td align="left">
+ Hypersonic
+ </td><td align="left">
+ Same as Database Version
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_informix.html" title="13. Informix">Informix Dynamic Server</a>
+ </td><td align="left">
+ 9.30.UC10, 9.4xC7
+ </td><td align="left">
+ Informix JDBC driver
+ </td><td align="left">
+ 2.21.JC2, 3.00 JC3, 3.10 JC1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_ingres.html" title="14. Ingres Database">Ingres Database</a>
+ </td><td align="left">
+ 9.2
+ </td><td align="left">
+ Ingres JDBC Driver
+ </td><td align="left">
+ 9.2-3.4.8
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_intersystems_cache.html" title="15. InterSystems Cache">InterSystems Cache</a>
+ </td><td align="left">
+ 5.0
+ </td><td align="left">
+ Cache JDBC Driver
+ </td><td align="left">
+ 5.0
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_access.html" title="16. Microsoft Access">Microsoft Access</a>
+ </td><td align="left">
+ 9.0 (a.k.a. "2000")
+ </td><td align="left">
+ DataDirect SequeLink
+ </td><td align="left">
+ 5.4.0038
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_sqlserver.html" title="17. Microsoft SQL Server">Microsoft SQL Server</a>
+ </td><td align="left">
+ 2000 (8.00)
+ </td><td align="left">
+ Microsoft SQL Server JDBC Driver
+ </td><td align="left">
+ 1.2
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_foxpro.html" title="18. Microsoft FoxPro">Microsoft Visual FoxPro</a>
+ </td><td align="left">
+ 7.0
+ </td><td align="left">
+ DataDirect SequeLink
+ </td><td align="left">
+ 5.4.0038
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_mysql.html" title="19. MySQL">MySQL</a>
+ </td><td align="left">
+ 3.23.43-log
+ </td><td align="left">
+ MySQL Driver
+ </td><td align="left">
+ 3.0.14
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_oracle.html" title="21. Oracle">Oracle</a>
+ </td><td align="left">
+ 8.1, 9.2
+ </td><td align="left">
+ Oracle JDBC driver
+ </td><td align="left">
+ 10.2.0.1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_pointbase.html" title="22. Pointbase">Pointbase</a>
+ </td><td align="left">
+ 4.4
+ </td><td align="left">
+ Pointbase JDBC driver
+ </td><td align="left">
+ 4.4 (4.4)
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_postgresql.html" title="23. PostgreSQL">PostgreSQL</a>
+ </td><td align="left">
+ 7.2.1, 8.1.5
+ </td><td align="left">
+ PostgreSQL Native Driver
+ </td><td align="left">
+ 8.1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_soliddb.html" title="24. IBM solidDB">IBM solidDB</a>
+ </td><td align="left">
+ 6.5.0.0
+ </td><td align="left">
+ solidDB JDBC Driver
+ </td><td align="left">
+ 2.0
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_sybase.html" title="25. Sybase Adaptive Server">Sybase Adaptive Server Enterprise</a>
+ </td><td align="left">
+ 12.5
+ </td><td align="left">
+ jConnect
+ </td><td align="left">
+ 5.5 (5.5)
+ </td></tr></tbody></table>
+ </div></div><br class="table-break">
+
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbunverified.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.
+ Verified Database Matrix
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 4.
+ Unverified Database Matrix
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport.html b/4.1.0/apache-openjpa/docs/dbsupport.html
new file mode 100644
index 000000000..ee37d2bde
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport.html
@@ -0,0 +1,132 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>2. Verified Database Matrix</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="next" hr [...]
+ Verified Database Matrix
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="supported_databases.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbcompatible.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport"><div class="titlepage"><div><div><h2 class="title" style="clear: both">2.
+ Verified Database Matrix
+ </h2></div></div></div>
+
+ <p>
+Following is a table of the supported database and JDBC driver versions that
+have been verified against this version of OpenJPA. For the list of other
+databases and drivers that were tested in prior releases or by other OpenJPA
+users, but may not support every feature of this release, please refer to the
+<a class="link" href="dbcompatible.html" title="3. Compatible Database Matrix">Compatible Database Matrix</a> section.
+ </p>
+ <div class="table" id="d5e17908"><p class="title"><b>Table 2.1.
+ Supported Databases and JDBC Drivers
+ </b></p><div class="table-contents">
+
+ <table class="table" summary="
 Supported Databases and JDBC Drivers
 " border="1"><colgroup><col align="left" class="dbname"><col align="left" class="dbversion"><col align="left" class="drivname"><col align="left" class="drivversion"></colgroup><thead><tr><th align="left">
+ Database Name
+ </th><th align="left">
+ Database Version
+ </th><th align="left">
+ JDBC Driver Name
+ </th><th align="left">
+ JDBC Driver Version
+ </th></tr></thead><tbody><tr><td align="left">
+ <a class="link" href="dbsupport_derby.html" title="5. Apache Derby">Apache Derby</a>
+ </td><td align="left">
+ 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.3.0, 10.8.2.2, 10.14.2.0
+ </td><td align="left">
+ Apache Derby Embedded JDBC Driver
+ </td><td align="left">
+ Same as Database Version
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_h2.html" title="10. H2 Database Engine">H2</a>
+ </td><td align="left">
+ 1.4.195, 1.4.196
+ </td><td align="left">
+ H2 Embedded JDBC Driver
+ </td><td align="left">
+ Same as Database Version
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_sqlserver.html" title="17. Microsoft SQL Server">Microsoft SQL Server</a>
+ </td><td align="left">
+ 2005 (9.00), 2008 (10.00), 2017
+ </td><td align="left">
+ Microsoft SQL Server JDBC Driver
+ </td><td align="left">
+ 1.2 or 2.0, 9.2.1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_oracle.html" title="21. Oracle">Oracle</a>
+ </td><td align="left">
+ 10g (10.1, 10.2), 11g (11.1, 11.2), 12c, 18c, 19c
+ </td><td align="left">
+ Oracle JDBC driver
+ </td><td align="left">
+ 11.2.0.1, 11.2.0.4, 19.3.0.0
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_postgresql.html" title="23. PostgreSQL">PostgreSQL</a>
+ </td><td align="left">
+ 8.3.5, 8.4, 9, 11, 12, 13
+ </td><td align="left">
+ PostgreSQL Native Driver
+ </td><td align="left">
+ 8.3 JDBC3 (build 603), 8.4 JDBC3 (build 701), 42.2.5, , 42.2.19
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_mysql.html" title="19. MySQL">MySQL</a>
+ </td><td align="left">
+ 5.0.26, 5.1.6, 5.7
+ </td><td align="left">
+ MySQL Driver
+ </td><td align="left">
+ 5.1.6, 5.1.47
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_mariadb.html" title="20. MariaDB">MariaDB</a>
+ </td><td align="left">
+ 10.5
+ </td><td align="left">
+ MariaDB Driver
+ </td><td align="left">
+ 2.7.2
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_hypersonic.html" title="11. Hypersonic">Hypersonic HSQLDB</a>
+ </td><td align="left">
+ 2.5.1
+ </td><td align="left">
+ HSQLDB Driver
+ </td><td align="left">
+ Same as Database Version
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_db2.html" title="8. IBM DB2">IBM DB2</a>
+ </td><td align="left">
+ 8.1, 8.2, 9.1, 9.5, 9.7
+ </td><td align="left">
+ IBM DB2 JDBC Universal Driver
+ </td><td align="left">
+ 3.50.152
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_informix.html" title="13. Informix">IBM Informix Dynamic Server</a>
+ </td><td align="left">
+ 10.00xC6, 11.10xC1, 11.5xC1
+ </td><td align="left">
+ Informix JDBC driver
+ </td><td align="left">
+ 3.00 JC3, 3.10 JC1, 3.50 JC1
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_soliddb.html" title="24. IBM solidDB">IBM solidDB</a>
+ </td><td align="left">
+ 6.5.0.0
+ </td><td align="left">
+ solidDB JDBC Driver
+ </td><td align="left">
+ 2.0
+ </td></tr><tr><td align="left">
+ <a class="link" href="dbsupport_sybase.html" title="25. Sybase Adaptive Server">Sybase Adaptive Server Enterprise</a>
+ </td><td align="left">
+ 12.5, 15.0
+ </td><td align="left">
+ jConnect
+ </td><td align="left">
+ 5.5, 6.0
+ </td></tr></tbody></table>
+ </div></div><br class="table-break">
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="supported_databases.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbcompatible.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix 2.
+ Supported Databases
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 3.
+ Compatible Database Matrix
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_access.html b/4.1.0/apache-openjpa/docs/dbsupport_access.html
new file mode 100644
index 000000000..61db8dcf2
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_access.html
@@ -0,0 +1,36 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>16. Microsoft Access</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_intersystems_cache.html" title="15. InterSystems Cache"><link rel="next" href="dbsuppor [...]
+ Microsoft Access
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_intersystems_cache.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_sqlserver.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_access"><div class="titlepage"><div><div><h2 class="title" style="clear: both">16.
+ Microsoft Access
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_access.html#dbsupport_access_issues">16.1.
+ Known issues with Microsoft Access
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_access"><p class="title"><b>Example 2.12.
+ Example properties for Microsoft Access
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.ddtek.jdbc.sequelink.SequeLinkDriver
+openjpa.ConnectionURL: jdbc:sequelink://SERVER_NAME:SERVER_PORT
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_access_issues"><div class="titlepage"><div><div><h3 class="title">16.1.
+ Known issues with Microsoft Access
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Using the Sun JDBC-ODBC bridge to connect is not supported.
+ </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="dbsupport_intersystems_cache.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_sqlserver.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">15.
+ InterSystems Cache
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 17.
+ Microsoft SQL Server
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_db2.html b/4.1.0/apache-openjpa/docs/dbsupport_db2.html
new file mode 100644
index 000000000..79e1b19b8
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_db2.html
@@ -0,0 +1,83 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>8. IBM DB2</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_jdatastore.html" title="7. JDataStore"><link rel="next" href="dbsupport_empress.html" title="9.&n [...]
+ IBM DB2
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_jdatastore.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_empress.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_db2"><div class="titlepage"><div><div><h2 class="title" style="clear: both">8.
+ IBM DB2
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_db2.html#dbsupport_db2_issues">8.1.
+ Known issues with DB2
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_db2"><p class="title"><b>Example 2.4.
+ Example properties for IBM DB2
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.ibm.db2.jcc.DB2Driver
+openjpa.ConnectionURL: jdbc:db2://SERVER_NAME:SERVER_PORT/DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_db2_issues"><div class="titlepage"><div><div><h3 class="title">8.1.
+ Known issues with DB2
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Floats and doubles may lose precision when stored.
+ </p>
+ </li><li class="listitem">
+ <p>
+Empty char values are stored as NULL.
+ </p>
+ </li><li class="listitem">
+ <p>
+Fields of type BLOB and CLOB are limited to 1M. This number can be increased by
+extending <code class="classname">DB2Dictionary</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+Explicit creation of indexes specified by the OpenJPA @Index annotation will
+fail on DB2 for iSeries if the default schema used by the JDBC driver does not
+exist. If a default schema is not specified on the connection, the iSeries
+will default to the user profile name. If a schema of that name does not
+exist, DB2 on iSeries will not create the schema, resulting in a failure when
+creating the index. The failure message will look similar to: "[SQL0204]
+USERNAME in QSYS type *LIB not found." To work around this issue, specify a
+default schema on the JDBC URL or data source property and make sure that
+schema exists or create a schema which matches the user profile of the
+connection.
+ </p>
+ </li><li class="listitem">
+ <p>
+Use of DB2 on z/OS with the IBM JCC driver requires the DESCSTAT subsystem
+parameter value to be set to 'YES'. If this parameter is set to 'NO', the
+mapping tool will fail with a persistence exception containing this text:
+"Invalid parameter: Unknown column name TABLE_SCHEM". After changing the value
+of DESCSTAT, DB2 metadata tables must be recreated by running the DSNTIJMS job.
+See DB2 for z/OS documentation for additional information.
+ </p>
+ </li><li class="listitem">
+ <p>
+When using LOBs with persistent attributes of a streaming data type (e.g.
+<code class="literal">java.io.InputStream</code>) in the case of very large LOB, DB2 JCC
+driver will automatically use progressive streaming to retrieve the LOB data.
+With progressiveStreaming, the inputStream retrieved must be fully materialized
+before the next iteration of call to rs.next(). By default
+this will result in a LobClosedException when OpenJPA processes the InputStream.
+ </p>
+ <p>
+To work around this condition you may force fullyMaterializedLobData to true in
+the connection URL as shown below :
+</p><pre class="programlisting">
+openjpa.ConnectionURL: jdbc:db2://localhost:50000/demodb:fullyMaterializeLobData=true;progressiveStreaming=NO
+</pre><p>
+ </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="dbsupport_jdatastore.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_empress.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">7.
+ JDataStore
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 9.
+ Empress
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_derby.html b/4.1.0/apache-openjpa/docs/dbsupport_derby.html
new file mode 100644
index 000000000..96a4a71d2
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_derby.html
@@ -0,0 +1,24 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>5. Apache Derby</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbunverified.html" title="4. Unverified Database Matrix"><link rel="next" href="dbsupport_interbase.ht [...]
+ Apache Derby
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbunverified.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_interbase.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_derby"><div class="titlepage"><div><div><h2 class="title" style="clear: both">5.
+ Apache Derby
+ </h2></div></div></div>
+
+ <div class="example" id="example_props_derby"><p class="title"><b>Example 2.1.
+ Example properties for Derby
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: org.apache.derby.jdbc.EmbeddedDriver
+openjpa.ConnectionURL: jdbc:derby:DB_NAME;create=true
+</pre>
+ </div></div><br class="example-break">
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbunverified.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_interbase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4.
+ Unverified Database Matrix
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 6.
+ Borland Interbase
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_empress.html b/4.1.0/apache-openjpa/docs/dbsupport_empress.html
new file mode 100644
index 000000000..f4e4d24cc
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_empress.html
@@ -0,0 +1,42 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>9. Empress</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_db2.html" title="8. IBM DB2"><link rel="next" href="dbsupport_h2.html" title="10. H2 Databa [...]
+ Empress
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_db2.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_h2.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_empress"><div class="titlepage"><div><div><h2 class="title" style="clear: both">9.
+ Empress
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_empress.html#dbsupport_empress_issues">9.1.
+ Known issues with Empress
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_empress"><p class="title"><b>Example 2.5.
+ Example properties for Empress
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: empress.jdbc.empressDriver
+openjpa.ConnectionURL: jdbc:empress://SERVER=yourserver;PORT=6322;DATABASE=yourdb
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_empress_issues"><div class="titlepage"><div><div><h3 class="title">9.1.
+ Known issues with Empress
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Empress enforces pessimistic semantics (lock on
+read) when not using <code class="literal">AllowConcurrentRead</code> property (which
+bypasses row locking) for <code class="classname">EmpressDictionary</code>.
+ </p>
+ </li><li class="listitem">
+ <p>
+Only the category 2 non-local driver is supported.
+ </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="dbsupport_db2.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_h2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">8.
+ IBM DB2
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 10.
+ H2 Database Engine
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_firebird.html b/4.1.0/apache-openjpa/docs/dbsupport_firebird.html
new file mode 100644
index 000000000..36b9b8192
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_firebird.html
@@ -0,0 +1,41 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>12. Firebird</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_hypersonic.html" title="11. Hypersonic"><link rel="next" href="dbsupport_informix.html" title=" [...]
+ Firebird
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_hypersonic.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_informix.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_firebird"><div class="titlepage"><div><div><h2 class="title" style="clear: both">12.
+ Firebird
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_firebird.html#dbsupport_firebird_issues">12.1.
+ Known issues with Firebird
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_firebird"><p class="title"><b>Example 2.8.
+ Example properties for Firebird
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: org.firebirdsql.jdbc.FBDriver
+openjpa.ConnectionURL: jdbc:firebirdsql:SERVER_NAME/3050:DB_PATH_OR_ALIAS
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_firebird_issues"><div class="titlepage"><div><div><h3 class="title">12.1.
+ Known issues with Firebird
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Firebird does not support auto-increment columns.
+ </p>
+ </li><li class="listitem">
+ <p>
+In order to use many of JPQL functions with Firebird 1.5, Interbase UDFs
+have to be available in the database.
+ </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="dbsupport_hypersonic.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_informix.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">11.
+ Hypersonic
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 13.
+ Informix
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_foxpro.html b/4.1.0/apache-openjpa/docs/dbsupport_foxpro.html
new file mode 100644
index 000000000..4e61c4ef6
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_foxpro.html
@@ -0,0 +1,36 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>18. Microsoft FoxPro</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_sqlserver.html" title="17. Microsoft SQL Server"><link rel="next" href="dbsupport_mysql [...]
+ Microsoft FoxPro
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_sqlserver.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_mysql.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_foxpro"><div class="titlepage"><div><div><h2 class="title" style="clear: both">18.
+ Microsoft FoxPro
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_foxpro.html#dbsupport_foxpro_issues">18.1.
+ Known issues with Microsoft FoxPro
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_foxpro"><p class="title"><b>Example 2.14.
+ Example properties for Microsoft FoxPro
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.ddtek.jdbc.sequelink.SequeLinkDriver
+openjpa.ConnectionURL: jdbc:sequelink://SERVER_NAME:SERVER_PORT
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_foxpro_issues"><div class="titlepage"><div><div><h3 class="title">18.1.
+ Known issues with Microsoft FoxPro
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Using the Sun JDBC-ODBC bridge to connect is not supported.
+ </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="dbsupport_sqlserver.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_mysql.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">17.
+ Microsoft SQL Server
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 19.
+ MySQL
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_h2.html b/4.1.0/apache-openjpa/docs/dbsupport_h2.html
new file mode 100644
index 000000000..bf14d0fa4
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_h2.html
@@ -0,0 +1,39 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>10. H2 Database Engine</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_empress.html" title="9. Empress"><link rel="next" href="dbsupport_hypersonic.html" ti [...]
+ H2 Database Engine
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_empress.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_hypersonic.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_h2"><div class="titlepage"><div><div><h2 class="title" style="clear: both">10.
+ H2 Database Engine
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_h2.html#dbsupport_h2_issues">10.1.
+ Known issues with H2 Database Engine
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_h2"><p class="title"><b>Example 2.6.
+ Example properties for H2 Database Engine
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: org.h2.Driver
+openjpa.ConnectionURL: jdbc:h2:DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_h2_issues"><div class="titlepage"><div><div><h3 class="title">10.1.
+ Known issues with H2 Database Engine
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+<code class="classname">UUID</code> support allows usage of binary data on entities.
+If the user wants to exchange <code class="classname">String</code> for
+<code class="classname">UUID</code>, it is necessary to previously convert the
+<code class="classname">String</code> to UUID type in database.
+ </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="dbsupport_empress.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_hypersonic.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">9.
+ Empress
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 11.
+ Hypersonic
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_hypersonic.html b/4.1.0/apache-openjpa/docs/dbsupport_hypersonic.html
new file mode 100644
index 000000000..8f924ccb2
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_hypersonic.html
@@ -0,0 +1,38 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>11. Hypersonic</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_h2.html" title="10. H2 Database Engine"><link rel="next" href="dbsupport_firebird.html" title [...]
+ Hypersonic
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_h2.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_firebird.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_hypersonic"><div class="titlepage"><div><div><h2 class="title" style="clear: both">11.
+ Hypersonic
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_hypersonic.html#dbsupport_hypersonic_issues">11.1.
+ Known issues with Hypersonic
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_hypersonic"><p class="title"><b>Example 2.7.
+ Example properties for Hypersonic
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: org.hsqldb.jdbcDriver
+openjpa.ConnectionURL: jdbc:hsqldb:DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_hypersonic_issues"><div class="titlepage"><div><div><h3 class="title">11.1.
+ Known issues with Hypersonic
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Hypersonic does not support pessimistic locking, so non-optimistic transactions
+will fail unless the <code class="literal">SimulateLocking</code> property is set for the
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2. openjpa.jdbc.DBDictionary"> openjpa.jdbc.DBDictionary</a>
+ </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="dbsupport_h2.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_firebird.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">10.
+ H2 Database Engine
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 12.
+ Firebird
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_informix.html b/4.1.0/apache-openjpa/docs/dbsupport_informix.html
new file mode 100644
index 000000000..003fc2030
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_informix.html
@@ -0,0 +1,37 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>13. Informix</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_firebird.html" title="12. Firebird"><link rel="next" href="dbsupport_ingres.html" title="14.&nb [...]
+ Informix
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_firebird.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_ingres.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_informix"><div class="titlepage"><div><div><h2 class="title" style="clear: both">13.
+ Informix
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_informix.html#dbsupport_informix_issues">13.1.
+ Known issues with Informix
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_informix"><p class="title"><b>Example 2.9.
+ Example properties for Informix Dynamic Server
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.informix.jdbc.IfxDriver
+openjpa.ConnectionURL: \
+ jdbc:informix-sqli://SERVER_NAME:SERVER_PORT/DB_NAME:INFORMIXSERVER=SERVER_ID
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_informix_issues"><div class="titlepage"><div><div><h3 class="title">13.1.
+ Known issues with Informix
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+None
+ </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="dbsupport_firebird.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_ingres.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">12.
+ Firebird
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 14.
+ Ingres Database
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_ingres.html b/4.1.0/apache-openjpa/docs/dbsupport_ingres.html
new file mode 100644
index 000000000..71d7fe183
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_ingres.html
@@ -0,0 +1,38 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>14. Ingres Database</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_informix.html" title="13. Informix"><link rel="next" href="dbsupport_intersystems_cache. [...]
+ Ingres Database
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_informix.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_intersystems_cache.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_ingres"><div class="titlepage"><div><div><h2 class="title" style="clear: both">14.
+ Ingres Database
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_ingres.html#dbsupport_ingres_issues">14.1.
+ Known issues with Ingres
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_ingres"><p class="title"><b>Example 2.10.
+ Example properties for Ingres
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.ingres.jdbc.IngresDriver
+openjpa.ConnectionURL: \
+ jdbc:ingres://SERVER_NAME:DAS_SERVER_PORT/DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_ingres_issues"><div class="titlepage"><div><div><h3 class="title">14.1.
+ Known issues with Ingres
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+ Databases must be created with the -n flag for Unicode compatibility in
+ order to use LOBs.
+ </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="dbsupport_informix.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_intersystems_cache.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">13.
+ Informix
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 15.
+ InterSystems Cache
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_interbase.html b/4.1.0/apache-openjpa/docs/dbsupport_interbase.html
new file mode 100644
index 000000000..a883fa505
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_interbase.html
@@ -0,0 +1,42 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>6. Borland Interbase</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_derby.html" title="5. Apache Derby"><link rel="next" href="dbsupport_jdatastore.html" t [...]
+ Borland Interbase
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_derby.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_jdatastore.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_interbase"><div class="titlepage"><div><div><h2 class="title" style="clear: both">6.
+ Borland Interbase
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_interbase.html#dbsupport_interbase_issues">6.1.
+ Known issues with Interbase
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_interbase"><p class="title"><b>Example 2.2.
+ Example properties for Interbase
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: interbase.interclient.Driver
+openjpa.ConnectionURL: jdbc:interbase://SERVER_NAME:SERVER_PORT/DB_PATH
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_interbase_issues"><div class="titlepage"><div><div><h3 class="title">6.1.
+ Known issues with Interbase
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Interbase does not support record locking, so
+datastore transactions cannot use the pessimistic lock manager.
+ </p>
+ </li><li class="listitem">
+ <p>
+Interbase does not support the <code class="literal">LOWER</code>,
+<code class="literal">SUBSTRING</code>, or <code class="literal">INSTR</code> SQL functions.
+ </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="dbsupport_derby.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_jdatastore.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">5.
+ Apache Derby
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 7.
+ JDataStore
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_intersystems_cache.html b/4.1.0/apache-openjpa/docs/dbsupport_intersystems_cache.html
new file mode 100644
index 000000000..fc44a600b
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_intersystems_cache.html
@@ -0,0 +1,37 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>15. InterSystems Cache</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_ingres.html" title="14. Ingres Database"><link rel="next" href="dbsupport_access.html [...]
+ InterSystems Cache
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_ingres.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_access.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_intersystems_cache"><div class="titlepage"><div><div><h2 class="title" style="clear: both">15.
+ InterSystems Cache
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_intersystems_cache.html#dbsupport_intersystems_cache_issues">15.1.
+ Known issues with InterSystems Cache
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_intersystems_cache"><p class="title"><b>Example 2.11.
+ Example properties for InterSystems Cache
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.intersys.jdbc.CacheDriver
+openjpa.ConnectionURL: jdbc:Cache://SERVER_NAME:SERVER_PORT/DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_intersystems_cache_issues"><div class="titlepage"><div><div><h3 class="title">15.1.
+ Known issues with InterSystems Cache
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Support for Cache is done via SQL access over JDBC, not through their object
+database APIs.
+ </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="dbsupport_ingres.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_access.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">14.
+ Ingres Database
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 16.
+ Microsoft Access
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_jdatastore.html b/4.1.0/apache-openjpa/docs/dbsupport_jdatastore.html
new file mode 100644
index 000000000..5347c7667
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_jdatastore.html
@@ -0,0 +1,24 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>7. JDataStore</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_interbase.html" title="6. Borland Interbase"><link rel="next" href="dbsupport_db2.html" title= [...]
+ JDataStore
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_interbase.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_db2.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_jdatastore"><div class="titlepage"><div><div><h2 class="title" style="clear: both">7.
+ JDataStore
+ </h2></div></div></div>
+
+ <div class="example" id="example_props_jdatastore"><p class="title"><b>Example 2.3.
+ Example properties for JDataStore
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.borland.datastore.jdbc.DataStoreDriver
+openjpa.ConnectionURL: jdbc:borland:dslocal:db-jdatastore.jds;create=true
+</pre>
+ </div></div><br class="example-break">
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_interbase.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_db2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">6.
+ Borland Interbase
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 8.
+ IBM DB2
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_mariadb.html b/4.1.0/apache-openjpa/docs/dbsupport_mariadb.html
new file mode 100644
index 000000000..25b5576f6
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_mariadb.html
@@ -0,0 +1,46 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>20. MariaDB</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_mysql.html" title="19. MySQL"><link rel="next" href="dbsupport_oracle.html" title="21. Ora [...]
+ MariaDB
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_mysql.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_oracle.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_mariadb"><div class="titlepage"><div><div><h2 class="title" style="clear: both">20.
+ MariaDB
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_mariadb.html#dbsupport_mariadb_issues">20.1.
+ Known issues with MariaDB
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_mariadb"><p class="title"><b>Example 2.17.
+ Example properties for MariaDB
+ </b></p><div class="example-contents">
+
+ <pre class="programlisting">
+ openjpa.ConnectionDriverName: org.mariadb.jdbc.Driver
+ openjpa.ConnectionURL: jdbc:mariadb://SERVER_NAME/DB_NAME
+ </pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_mariadb_issues"><div class="titlepage"><div><div><h3 class="title">20.1.
+ Known issues with MariaDB
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+ As of MariaDB 10.2 the <code class="code">DATETIME</code> data type supports sub-second fractions.
+ The default of MariaDB internally is to use no fractions.
+ The number of fractions can be explicitly set via scale:
+ <code class="code">@Column(scale=6)</code> will lead to a <code class="code">DATETIME(6)</code> column and able to store microseconds.
+ A value of <code class="code">@Column(scale=-1)</code> will explicitly turn off all fractions.
+ </p>
+ </li><li class="listitem">
+ <p>
+ As of MariaDB 10.7 the <code class="code">UUID</code> data type is supported,
+ but the JDBC driver does not writes the object directly, so
+ UUID field support is made through UUID to String conversion.
+ </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="dbsupport_mysql.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_oracle.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">19.
+ MySQL
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 21.
+ Oracle
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_mysql.html b/4.1.0/apache-openjpa/docs/dbsupport_mysql.html
new file mode 100644
index 000000000..ab2010c4d
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_mysql.html
@@ -0,0 +1,108 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>19. MySQL</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_foxpro.html" title="18. Microsoft FoxPro"><link rel="next" href="dbsupport_mariadb.html" title="20 [...]
+ MySQL
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_foxpro.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_mariadb.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_mysql"><div class="titlepage"><div><div><h2 class="title" style="clear: both">19.
+ MySQL
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_mysql.html#dbsupport_mysql_query_hints">19.1.
+ Using Query Hints with MySQL
+ </a></span></dt><dt><span class="section"><a href="dbsupport_mysql.html#dbsupport_mysql_issues">19.2.
+ Known issues with MySQL
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_mysql"><p class="title"><b>Example 2.15.
+ Example properties for MySQL
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.mysql.jdbc.Driver
+openjpa.ConnectionURL: jdbc:mysql://SERVER_NAME/DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_mysql_query_hints"><div class="titlepage"><div><div><h3 class="title">19.1.
+ Using Query Hints with MySQL
+ </h3></div></div></div>
+
+ <p>
+MySQL has support for "query hints", which are keywords embedded in
+SQL that provide some hint for how the query should be executed. These hints are
+usually designed to provide suggestions to the MySQL query optimizer for how to
+efficiently perform a certain query, and aren't typically needed for any but
+the most intensive queries.
+OpenJPA supports hints to be placed between SELECT keyword and column list.
+ </p>
+ <div class="example" id="dbsupport_mysql_query_hints_ex"><p class="title"><b>Example 2.16.
+ Using MySQL Hints
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+Query query = em.createQuery(...);
+query.setHint("openjpa.hint.MySQLSelectHint", "SQL_NO_CACHE");
+List results = query.getResultList();
+</pre>
+ </div></div><br class="example-break">
+ </div>
+ <div class="section" id="dbsupport_mysql_issues"><div class="titlepage"><div><div><h3 class="title">19.2.
+ Known issues with MySQL
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+The default table types that MySQL uses do not support transactions, which will
+prevent OpenJPA from being able to roll back transactions. Use the
+<code class="literal">InnoDB</code> table type for any tables that OpenJPA will access.
+ </p>
+ </li><li class="listitem">
+ <p>
+MySQL does not support sub-selects in versions prior to 4.1, so
+some operations (such as the <code class="function">isEmpty()</code> method in a
+query) will fail due to this.
+ </p>
+ </li><li class="listitem">
+ <p>
+Rollback due to database error or optimistic lock violation is not supported
+unless the table type is one of the MySQL transactional types. Explicit calls to
+<code class="function">rollback()</code> before a transaction has been committed,
+however, are always supported.
+ </p>
+ </li><li class="listitem">
+ <p>
+Floats and doubles may lose precision when stored in some datastores.
+ </p>
+ </li><li class="listitem">
+ <p>
+When storing a field of type <code class="classname">java.math.BigDecimal</code>, some
+datastores will add extraneous trailing 0 characters, causing an equality
+mismatch between the field that is stored and the field that is retrieved.
+ </p>
+ </li><li class="listitem">
+ <p>
+When using large result sets with MySQL there are a number of documented limitations.
+Please read the section titled "ResultSet" in the "MySQL JDBC API Implementation Notes".
+The net effect of these limitations is that you will have to read all of the rows of a
+result set (or close the connection) before you can issue any other queries on
+the connection, or an exception will be thrown. Setting openjpa.FetchBatchSize
+to any value greater than zero will enable streaming result sets.
+ </p>
+ </li><li class="listitem">
+ <p>
+The use of <a class="link" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11. LOB Streaming">LOB streaming</a> is limited.
+When reading LOB data from the database, the MySQL JDBC driver will actually
+load all the data into memory at the same time.
+ </p>
+ </li><li class="listitem">
+ <p>
+As of MySQL 5.7 the <code class="code">DATETIME</code> data type supports sub-second fractions.
+The default of MySQL is to use no fractions.
+The number of fractions can be explicitly set via scale:
+<code class="code">@Column(scale=3)</code> will lead to a <code class="code">DATETIME(3)</code> column.
+ </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="dbsupport_foxpro.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_mariadb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">18.
+ Microsoft FoxPro
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 20.
+ MariaDB
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_oracle.html b/4.1.0/apache-openjpa/docs/dbsupport_oracle.html
new file mode 100644
index 000000000..b6c291a82
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_oracle.html
@@ -0,0 +1,142 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>21. Oracle</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_mariadb.html" title="20. MariaDB"><link rel="next" href="dbsupport_pointbase.html" title="22.&nbs [...]
+ Oracle
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_mariadb.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_pointbase.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_oracle"><div class="titlepage"><div><div><h2 class="title" style="clear: both">21.
+ Oracle
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_query_hints">21.1.
+ Using Query Hints with Oracle
+ </a></span></dt><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_issues">21.2.
+ Known issues with Oracle
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_oracle"><p class="title"><b>Example 2.18.
+ Example properties for Oracle
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: oracle.jdbc.driver.OracleDriver
+openjpa.ConnectionURL: jdbc:oracle:thin:@SERVER_NAME:1521:DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_oracle_query_hints"><div class="titlepage"><div><div><h3 class="title">21.1.
+ Using Query Hints with Oracle
+ </h3></div></div></div>
+
+ <p>
+Oracle has support for "query hints", which are formatted comments embedded in
+SQL that provide some hint for how the query should be executed. These hints are
+usually designed to provide suggestions to the Oracle query optimizer for how to
+efficiently perform a certain query, and aren't typically needed for any but
+the most intensive queries.
+ </p>
+ <div class="example" id="dbsupport_oracle_query_hints_ex"><p class="title"><b>Example 2.19.
+ Using Oracle Hints
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+Query query = em.createQuery(...);
+query.setHint("openjpa.hint.OracleSelectHint", "/*+ first_rows(100) */");
+List results = query.getResultList();
+</pre>
+ </div></div><br class="example-break">
+ </div>
+ <div class="section" id="dbsupport_oracle_issues"><div class="titlepage"><div><div><h3 class="title">21.2.
+ Known issues with Oracle
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+The Oracle JDBC driver has significant differences between different versions.
+It is important to use the officially supported version of the drivers
+(10.2.0.1.0/11.2.0.x.0), which is backward compatible with previous versions of the Oracle
+server. It can be downloaded from
+<a class="ulink" href="http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html" target="_top">
+http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html</a>.
+ </p>
+ </li><li class="listitem">
+ <p>
+Empty string/char values are stored as NULL.
+ </p>
+ </li><li class="listitem">
+ <p>
+Oracle corp's JDBC driver for Oracle has only limited support for batch updates.
+The result for OpenJPA is that batching of some statements may fail and in some cases,
+the exact object that failed an optimistic lock check cannot be determined. OpenJPA will
+throw an <code class="classname">OptimisticException</code> with more failed objects than actually
+failed. This situation may be resolved by disabling statement batching by setting the
+batchLimit value to zero or by using a more recent Oracle JDBC Driver (11.2.0.1) with
+batch support improvements. Attempting to resolve the issue with a more current driver
+is recommended since disabling statement batching can result in a decrease in performance.
+ </p><div class="example" id="dbsupport_oracle_disable_batch_updates"><p class="title"><b>Example 2.20.
+ Property to disable statement batching for Oracle
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.jdbc.DBDictionary: oracle(batchLimit=0)
+</pre>
+ </div></div><p><br class="example-break">
+ </p>
+ </li><li class="listitem">
+ <p>
+Oracle cannot store numbers with more than 38 digits in numeric columns.
+ </p>
+ </li><li class="listitem">
+ <p>
+Floats and doubles may lose precision when stored.
+ </p>
+ </li><li class="listitem">
+ <p>
+CLOB columns cannot be used in queries.
+ </p>
+ </li><li class="listitem">
+ <p>
+The use of LOBs with persistent attributes of a streaming data type (ex.
+<code class="literal">java.io.InputStream</code> or <code class="literal">java.io.Reader</code>) may
+require the same connection to be used over the life of the transaction or
+entity manager. If the same connection is not used for persistent operations
+a <code class="literal">java.io.IOException</code> with message <code class="literal">Closed Connection
+</code> may result. The OpenJPA property <code class="literal">openjpa.ConnectionRetainMode</code>
+can be used to control how OpenJPA uses datastore connections. See
+<a class="xref" href="ref_guide_dbsetup_retain.html" title="8. Configuring the Use of JDBC Connections">Section 8, “
+ Configuring the Use of JDBC Connections
+ ”</a> for details.
+ </p><div class="example" id="dbsupport_oracle_retain_connection"><p class="title"><b>Example 2.21.
+ Property to retain connection over the lifetime of the entity manager
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionRetainMode: always
+</pre>
+ </div></div><p><br class="example-break">
+ </p>
+ </li><li class="listitem">
+ <p>
+Mapping persistent attributes to <a class="link" href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping" title="7.10. XML Column Mapping">XML columns</a> requires
+a JDBC 4 compliant driver if XML strings are longer than 4000 bytes, as counted in database.
+Otherwise an <code class="literal">ORA-01461: can bind a LONG value only for insert into a LONG column</code>
+error may result.
+ </p>
+ </li><li class="listitem">
+ <p>
+If Oracle dictionary property <code class="literal">MaxEmbeddedBlobSize</code> or
+<code class="literal">MaxEmbeddedClobSize</code> is set to some limit (i.e. not -1) and embedded collection
+with BLOB/CLOB attribute is used, a
+<code class="literal">"org.apache.openjpa.persistence.ArgumentException:
+"x.y.z.EmbedOwner.embedCollection<element:class x.y.z.EmbedValue>"
+is mapped as embedded, but embedded field
+"x.y.z.EmbedOwner.embedCollection.x.y.z.EmbedValue.blob" is not embeddable.
+Embedded element/key/value types are limited to simple fields and direct relations to other
+persistent types"</code> error may result. To overcome this limitation, either use JDBC driver
+11.2.0.x.0 (or later version) or set both <code class="literal">MaxEmbeddedBlobSize</code> and
+<code class="literal">MaxEmbeddedClobSize</code> properties to -1.
+ </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="dbsupport_mariadb.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_pointbase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">20.
+ MariaDB
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 22.
+ Pointbase
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_pointbase.html b/4.1.0/apache-openjpa/docs/dbsupport_pointbase.html
new file mode 100644
index 000000000..e5b4058ea
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_pointbase.html
@@ -0,0 +1,39 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>22. Pointbase</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_oracle.html" title="21. Oracle"><link rel="next" href="dbsupport_postgresql.html" title="23.&n [...]
+ Pointbase
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_oracle.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_postgresql.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_pointbase"><div class="titlepage"><div><div><h2 class="title" style="clear: both">22.
+ Pointbase
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_pointbase.html#dbsupport_pointbase_issues">22.1.
+ Known issues with Pointbase
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_pointbase"><p class="title"><b>Example 2.22.
+ Example properties for Pointbase
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.pointbase.jdbc.jdbcUniversalDriver
+openjpa.ConnectionURL: \
+ jdbc:pointbase:DB_NAME,database.home=pointbasedb,create=true,cache.size=10000,database.pagesize=30720
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_pointbase_issues"><div class="titlepage"><div><div><h3 class="title">22.1.
+ Known issues with Pointbase
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Fields of type BLOB and CLOB are limited to 1M. Set the <code class="literal">BlobTypeName
+</code> and/or <code class="literal">ClobTypeName</code> properties of the
+<code class="literal">openjpa.jdbc.DBDictionary</code> setting to override.
+ </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="dbsupport_oracle.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_postgresql.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">21.
+ Oracle
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 23.
+ PostgreSQL
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_postgresql.html b/4.1.0/apache-openjpa/docs/dbsupport_postgresql.html
new file mode 100644
index 000000000..6502d3ce3
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_postgresql.html
@@ -0,0 +1,57 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>23. PostgreSQL</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_pointbase.html" title="22. Pointbase"><link rel="next" href="dbsupport_soliddb.html" title="2 [...]
+ PostgreSQL
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_pointbase.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_soliddb.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_postgresql"><div class="titlepage"><div><div><h2 class="title" style="clear: both">23.
+ PostgreSQL
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_postgresql.html#dbsupport_postgresql_issues">23.1.
+ Known issues with PostgreSQL
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_postgresql"><p class="title"><b>Example 2.23.
+ Example properties for PostgreSQL
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: org.postgresql.Driver
+openjpa.ConnectionURL: jdbc:postgresql://SERVER_NAME:5432/DB_NAME
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_postgresql_issues"><div class="titlepage"><div><div><h3 class="title">23.1.
+ Known issues with PostgreSQL
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+Floats and doubles may lose precision when stored.
+ </p>
+ </li><li class="listitem">
+ <p>
+PostgreSQL cannot store very low and very high dates.
+ </p>
+ </li><li class="listitem">
+ <p>
+Empty string/char values are stored as NULL.
+ </p>
+ </li><li class="listitem">
+ <p>
+Persistent fields of type <code class="classname">java.io.Reader</code> are not
+supported when using
+<a class="link" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11. LOB Streaming">LOB streaming</a>.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="classname">UUID</code> support allows usage of binary data on entities.
+If the user wants to exchange <code class="classname">String</code> for
+<code class="classname">UUID</code>, it is necessary to previously convert the
+<code class="classname">String</code> to UUID type in database.
+ </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="dbsupport_pointbase.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_soliddb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">22.
+ Pointbase
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 24.
+ IBM solidDB
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_soliddb.html b/4.1.0/apache-openjpa/docs/dbsupport_soliddb.html
new file mode 100644
index 000000000..72ad023fa
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_soliddb.html
@@ -0,0 +1,70 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>24. IBM solidDB</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_postgresql.html" title="23. PostgreSQL"><link rel="next" href="dbsupport_sybase.html" title= [...]
+ IBM solidDB
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_postgresql.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_sybase.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_soliddb"><div class="titlepage"><div><div><h2 class="title" style="clear: both">24.
+ IBM solidDB
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_table_types">24.1.
+ M-type tables vs. D-type tables
+ </a></span></dt><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_concurrency_control">24.2.
+ Concurrency control mechanism
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_soliddb"><p class="title"><b>Example 2.24.
+ Example properties for IBM solidDB
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: solid.jdbc.SolidDriver
+openjpa.ConnectionURL: jdbc:solid://localhost:2315/dba/dba
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_soliddb_table_types"><div class="titlepage"><div><div><h3 class="title">24.1.
+ M-type tables vs. D-type tables
+ </h3></div></div></div>
+
+ <p>
+IBM solidDB supports two types of tables: in-memory tables (M-tables) and
+on-disk tables (D-tables). Since cursor hold over commit can not apply to M-tables
+(which will cause SOLID Table Error 13187: The cursor cannot continue
+accessing M-tables after the transaction has committed or aborted.
+The statement must be re-executed), the default OpenJPA tables are D-tables.
+One can set the whole server to disk-based mode by adding
+ [General]
+ DefaultStoreIsMemory=no
+in solid.ini. The table types can also be determined by setting OpenJPA property
+"openjpa.jdbc.DBDictionary" with value "storeIsMemory=true" or "storeIsMemory=false"
+in the persistence.xml. The "STORE MEMORY" and "STORE DISK" will be appended to
+the create table DDL, respectively.
+ </p>
+ </div>
+ <div class="section" id="dbsupport_soliddb_concurrency_control"><div class="titlepage"><div><div><h3 class="title">24.2.
+ Concurrency control mechanism
+ </h3></div></div></div>
+
+ <p>
+The default concurrency control mechanism depends on the table type:
+Disk-based tables (D-tables) are by default optimistic.
+Main-memory tables (M-tables) are always pessimistic.
+Since OpenJPA applications expects lock waits as usually is done with
+normal pessimistic databases, the server should be set to the pessimistic mode.
+The optimistic mode is about not waiting for the locks at all. That increases
+concurrency but requires more programming. The pessimistic mode with the
+READ COMMITTED isolation level (default) should get as much concurrency as one
+might need. The pessimistic locking mode can be set in solid.ini:
+ [General]
+ Pessimistic=yes
+One can override the locking mode on the per table base by setting OpenJPA property
+"openjpa.jdbc.DBDictionary" to value "lockingMode=PESSIMISTIC" in the persistence.xml.
+An extra SQL will be generated along with CREATE TABLE DDL:
+ALTER TABLE EX_POBJECT SET PESSIMISTIC.
+The possible values for lockingMode is OPTIMISTIC/PESSIMISTIC.
+ </p>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbsupport_postgresql.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_sybase.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">23.
+ PostgreSQL
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 25.
+ Sybase Adaptive Server
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_sqlserver.html b/4.1.0/apache-openjpa/docs/dbsupport_sqlserver.html
new file mode 100644
index 000000000..e0eba678b
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_sqlserver.html
@@ -0,0 +1,99 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>17. Microsoft SQL Server</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_access.html" title="16. Microsoft Access"><link rel="next" href="dbsupport_foxpro.h [...]
+ Microsoft SQL Server
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_access.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_foxpro.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_sqlserver"><div class="titlepage"><div><div><h2 class="title" style="clear: both">17.
+ Microsoft SQL Server
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_sqlserver.html#dbsupport_sqlserver_issues">17.1.
+ Known issues with SQL Server
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_sqlserver"><p class="title"><b>Example 2.13.
+ Example properties for Microsoft SQL Server
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
+openjpa.ConnectionURL: \
+ jdbc:sqlserver://SERVER_NAME:1433;DatabaseName=DB_NAME;selectMethod=cursor;sendStringParametersAsUnicode=false
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_sqlserver_issues"><div class="titlepage"><div><div><h3 class="title">17.1.
+ Known issues with SQL Server
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+When using a Microsoft SQL Server JDBC Driver v1.2 or earlier, the
+ConnectionURL must always contain the <code class="literal">selectMethod=cursor
+</code> string, which is necessary for the driver to properly
+support large result sets.
+ </p>
+ </li><li class="listitem">
+ <p>
+When using a Microsoft SQL Server JDBC Driver v1.2 or earlier, the
+JDBC driver has bugs that manifest themselves when prepared statements
+are pooled. Please disable prepared statement pooling by including the
+<code class="literal">MaxCachedStatements=0</code> configuration property
+in your org.apache.openjpa.ConnectionFactoryProperties.
+ </p>
+ </li><li class="listitem">
+ <p>
+SQL Server date fields are accurate only to the nearest 3 milliseconds,
+possibly resulting in precision loss in stored dates.
+ </p>
+ </li><li class="listitem">
+ <p>
+Adding <code class="literal">sendStringParametersAsUnicode=false</code> to the
+ConnectionURL may significantly increase performance.
+ </p>
+ </li><li class="listitem">
+ <p>
+The Microsoft SQL Server driver only emulates batch updates. The DataDirect JDBC
+driver has true support for batch updates, and may result in a significant
+performance gain.
+ </p>
+ </li><li class="listitem">
+ <p>
+Floats and doubles may lose precision when stored.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TEXT</code> columns cannot be used in queries.
+ </p>
+ </li><li class="listitem">
+ <p>
+When using a SQL Server instance that has been configured to be case-sensitive
+in schema names, you need to set the "schemaCase=preserve" parameter in the
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2. openjpa.jdbc.DBDictionary">openjpa.jdbc.DBDictionary</a>
+property.
+ </p>
+ </li><li class="listitem">
+ <p>
+SQL Server 2005 does not support native sequences. If you would like to use
+generated values with SQL Server you should use GenerationType.IDENTITY,
+GenerationType.TABLE, or GenerationType.AUTO.
+ </p>
+ </li><li class="listitem">
+ <p>
+The use of <a class="link" href="ref_guide_mapping_jpa.html#ref_guide_streamsupport" title="7.11. LOB Streaming">LOB streaming</a> is limited.
+When reading LOB data from the database, the Microsoft SQL Server driver will
+actually load all the data into memory at the same time.
+ </p>
+ </li><li class="listitem">
+ <p>
+The SQL Server 2008 DATETIME2 data type supports 7 digits sub-second precision.
+When DataDirect JDBC driver is used with SQL Server 2008, setTimestamp method call with
+a java.sql.Timestamp argument of more than 3 digits precision in a prepared statement
+will result in truncation. This may cause loss of data precision or
+optimistic lock exception if an entity uses Timestamp type as version field.
+ </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="dbsupport_access.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_foxpro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">16.
+ Microsoft Access
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 18.
+ Microsoft FoxPro
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbsupport_sybase.html b/4.1.0/apache-openjpa/docs/dbsupport_sybase.html
new file mode 100644
index 000000000..842752616
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbsupport_sybase.html
@@ -0,0 +1,71 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>25. Sybase Adaptive Server</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbsupport_soliddb.html" title="24. IBM solidDB"><link rel="next" href="migration_considerat [...]
+ Sybase Adaptive Server
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbsupport_soliddb.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="migration_considerations.html">Next</a></td></tr></table><hr></div><div class="section" id="dbsupport_sybase"><div class="titlepage"><div><div><h2 class="title" style="clear: both">25.
+ Sybase Adaptive Server
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="dbsupport_sybase.html#dbsupport_sybase_issues">25.1.
+ Known issues with Sybase
+ </a></span></dt></dl></div>
+
+ <div class="example" id="example_props_sybase"><p class="title"><b>Example 2.25.
+ Example properties for Sybase
+ </b></p><div class="example-contents">
+
+<pre class="programlisting">
+openjpa.ConnectionDriverName: com.sybase.jdbc2.jdbc.SybDriver
+openjpa.ConnectionURL: \
+ jdbc:sybase:Tds:SERVER_NAME:4100/DB_NAME?ServiceName=DB_NAME&BE_AS_JDBC_COMPLIANT_AS_POSSIBLE=true
+</pre>
+ </div></div><br class="example-break">
+ <div class="section" id="dbsupport_sybase_issues"><div class="titlepage"><div><div><h3 class="title">25.1.
+ Known issues with Sybase
+ </h3></div></div></div>
+
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+The "<code class="literal">DYNAMIC_PREPARE</code>" parameter of the Sybase JDBC driver
+cannot be used with OpenJPA.
+ </p>
+ </li><li class="listitem">
+ <p>
+Datastore locking cannot be used when manipulating many-to-many relations using
+the default OpenJPA schema created by the schematool, unless an auto-increment
+primary key field is manually added to the table.
+ </p>
+ </li><li class="listitem">
+ <p>
+Persisting a zero-length string results in a string with a single space
+character being returned from Sybase, Inc.'s JDBC driver.
+ </p>
+ </li><li class="listitem">
+ <p>
+The <code class="literal">BE_AS_JDBC_COMPLIANT_AS_POSSIBLE</code> is required in order to
+use datastore (pessimistic) locking. Failure to set this property may lead to
+obscure errors like " <code class="literal">FOR UPDATE can not be used in a SELECT which is
+not part of the declaration of a cursor or which is not inside a stored
+procedure.</code> ".
+ </p>
+ </li><li class="listitem">
+ <p>
+Applications performing update/insert data of the BigDecimal Java type may fail
+with OptimisticException if the data exceeds the scale or precision of the
+column on Sybase. To avoid this problem, applications can specify the precision
+and scale for the numeric type by setting numericTypeName='NUMERIC(p,s)' for
+the column type mapped by the BigDecimal Java type. See
+<a class="link" href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary" title="6.2. openjpa.jdbc.DBDictionary">openjpa.jdbc.DBDictionary</a> for
+more detail. Alternatively, application can set the precision and scale using
+the standard <code class="classname">Column</code> annotation, described in
+<a class="xref" href="jpa_overview_mapping_column.html" title="3. Column">Section 3, “
+ Column
+ ”</a>.
+ </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="dbsupport_soliddb.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="migration_considerations.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">24.
+ IBM solidDB
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix 3.
+ Migration Considerations
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/dbunverified.html b/4.1.0/apache-openjpa/docs/dbunverified.html
new file mode 100644
index 000000000..667acf3d0
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/dbunverified.html
@@ -0,0 +1,46 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>4. Unverified Database Matrix</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="supported_databases.html" title="Appendix 2. Supported Databases"><link rel="prev" href="dbcompatible.html" title="3. Compatible Database Matrix"><link rel="next" href="dbsuppor [...]
+ Unverified Database Matrix
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dbcompatible.html">Prev</a> </td><th width="60%" align="center">Appendix 2.
+ Supported Databases
+ </th><td width="20%" align="right"> <a accesskey="n" href="dbsupport_derby.html">Next</a></td></tr></table><hr></div><div class="section" id="dbunverified"><div class="titlepage"><div><div><h2 class="title" style="clear: both">4.
+ Unverified Database Matrix
+ </h2></div></div></div>
+
+ <p>
+Following is a table of the database and JDBC driver versions that have been reported
+to work with OpenJPA by the community but have not been verified by the development
+team. In some cases this is a question of availability since the developers may not
+be able to obtain a license to test, or have experience configuring these databases.
+For the list of databases that have been fully tested against this release, please
+refer to the <a class="link" href="dbsupport.html" title="2. Verified Database Matrix">Verified Database Matrix</a> section.
+ </p>
+ <div class="table" id="d5e18136"><p class="title"><b>Table 2.3.
+ Unverified Databases and JDBC Drivers
+ </b></p><div class="table-contents">
+
+ <table class="table" summary="
 Unverified Databases and JDBC Drivers
 " border="1"><colgroup><col align="left" class="dbname"><col align="left" class="dbversion"><col align="left" class="drivname"><col align="left" class="drivversion"></colgroup><thead><tr><th align="left">
+ Database Name
+ </th><th align="left">
+ Database Version
+ </th><th align="left">
+ JDBC Driver Name
+ </th><th align="left">
+ JDBC Driver Version
+ </th></tr></thead><tbody><tr><td align="left">
+ SAP MaxDB
+ </td><td align="left">
+
+ </td><td align="left">
+
+ </td><td align="left">
+
+ </td></tr></tbody></table>
+ </div></div><br class="table-break">
+
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dbcompatible.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="supported_databases.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="dbsupport_derby.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.
+ Compatible Database Matrix
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 5.
+ Apache Derby
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/features_and_limitations.html b/4.1.0/apache-openjpa/docs/features_and_limitations.html
new file mode 100644
index 000000000..b1dabcf7c
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/features_and_limitations.html
@@ -0,0 +1,259 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>2. Salient Features</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="ref_guide_slice.html" title="Chapter 13. Slice: Distributed Persistence"><link rel="prev" href="ref_guide_slice.html" title="Chapter 13. Slice: Distributed Persistence"><link rel="nex [...]
+ Slice: Distributed Persistence
+ </th><td width="20%" align="right"> <a accesskey="n" href="slice_configuration.html">Next</a></td></tr></table><hr></div><div class="section" id="features_and_limitations"><div class="titlepage"><div><div><h2 class="title" style="clear: both">2. Salient Features</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="features_and_limitations.html#d5e17150">2.1. Transparency</a></span></dt><dt><span class="section"><a href="features_and_limita [...]
+
+ <div class="section" id="d5e17150"><div class="titlepage"><div><div><h3 class="title">2.1. Transparency</h3></div></div></div>
+ <p>
+ The primary design objective for Slice is to make the user
+ application transparent to the change in storage strategy where
+ data resides in multiple (possibly heterogeneous) databases instead
+ of a single database. Slice achieves this transparency by
+ virtualization of multiple databases as a single database such
+ that OpenJPA object management kernel continues to interact in
+ exactly the same manner with storage layer. Similarly,
+ the existing application or the persistent domain model requires
+ <span class="emphasis"><em>no change</em></span> to upgrade from a single database
+ to a distributed database environment.
+ </p>
+ <p>
+ An existing application developed for a single database can be
+ adapted to work with multiple databases purely by configuring
+ a persistence unit via <code class="classname">META-INF/persistence.xml</code>.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17156"><div class="titlepage"><div><div><h3 class="title">2.2. Scaling</h3></div></div></div>
+ <p>
+ The primary performance characteristics for Slice is to scale against
+ growing data volume by <span class="emphasis"><em>horizontal</em></span> partitioning data
+ across many databases.
+ </p>
+ <p>
+ Slice executes the database operations such as query or flush <span class="emphasis"><em>in
+ parallel</em></span> across each physical database. Hence, scaling characteristics
+ against data volume are bound by the size of the maximum data
+ partition instead of the size of the entire data set. The use cases
+ where the data is naturally amenable to horizontal partitions,
+ for example, by temporal interval (e.g. Purchase Orders per month)
+ or by geographical regions (e.g. Customer by Zip Code) can derive
+ significant performance benefit and favorable scaling behavior by
+ using Slice.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17162"><div class="titlepage"><div><div><h3 class="title">2.3. Distributed Query</h3></div></div></div>
+ <p>
+ The queries are executed in parallel across one or more slices and the
+ individual query results are merged into a single list before being
+ returned to the caller application. The <span class="emphasis"><em>merge</em></span> operation is
+ more complex for the queries that involve sorting and/or specify a
+ range. Slice supports both sorting and range queries.
+ </p>
+ <p>
+ Slice also supports aggregate queries where the aggregate operation
+ is <span class="emphasis"><em>commutative</em></span> to partitioning such as
+ <code class="classname">COUNT()</code> or <code class="classname">MAX()</code> but not <code class="classname">AVG()</code>.
+ </p>
+
+ <p>
+ By default, any query is executed against all available slices.
+ However, the application can target the query only to a subset of
+ slices by setting <span class="emphasis"><em>hint</em></span> on <code class="classname">jakarta.persistence.Query</code>.
+ The hint key is <code class="classname">openjpa.hint.slice.Target</code> and
+ hint value is an array of slice identifiers. The following
+ example shows how to target a query only to a pair of slices
+ with logical identifier <code class="classname">"One"</code> and <code class="classname">"Two"</code>.
+
+ </p><pre class="programlisting">
+ EntityManager em = ...;
+ em.getTransaction().begin();
+ String hint = "openjpa.hint.slice.Target";
+ Query query = em.createQuery("SELECT p FROM PObject")
+ .setHint(hint, new String[]{"One", "Two"});
+ List result = query.getResultList();
+ // verify that each instance is originating from the hinted slices
+ for (Object pc : result) {
+ String sliceOrigin = SlicePersistence.getSlice(pc);
+ assertTrue ("One".equals(sliceOrigin) || "Two".equals(sliceOrigin));
+ }
+
+ </pre><p>
+ </p>
+
+ <p>
+ To confine queries to a subset of slices via setting query hints can be considered
+ intrusive to existing application. The alternative means of targeting queries is to
+ configure a <span class="emphasis"><em>Query Target Policy</em></span>. This policy is configured
+ via plug-in property <code class="classname">openjpa.slice.QueryTargetPolicy</code>. The
+ plug-in property is fully-qualified class name of an implementation
+ for <code class="classname">org.apache.openjpa.slice.QueryTargetPolicy</code> interface.
+ This interface contract allows a user application to target a query to a subset
+ of slices based on the query and its bound parameters. The query target policy is consulted
+ only when no explicit target hint is set on the query. By default, the policy
+ executes a query on all available slices.
+ </p>
+
+ <p>
+ A similar policy interface <code class="classname">org.apache.openjpa.slice.FinderTargetPolicy</code>
+ is available to target queries that originate from <code class="classname">find()</code>
+ by primary key. This finder target policy is consulted
+ only when no explicit target hint is set on the current fetch plan. By default, the policy
+ executes a query on all available slices to find an instance by its primary key.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17185"><div class="titlepage"><div><div><h3 class="title">2.4. Data Distribution</h3></div></div></div>
+ <p>
+ The user application decides how the newly persistent instances be
+ distributed across the slices. The user application specifies the
+ data distribution policy by implementing
+ <code class="classname">org.apache.openjpa.slice.DistributionPolicy</code>.
+
+ The <code class="classname">DistributionPolicy</code> interface
+ is simple with a single method. The complete listing of the
+ documented interface follows:
+ </p><pre class="programlisting">
+
+ public interface DistributionPolicy {
+ /**
+ * Gets the name of the slice where the given newly persistent
+ * instance will be stored.
+ *
+ * @param pc The newly persistent or to-be-merged object.
+ * @param slices name of the configured slices.
+ * @param context persistence context managing the given instance.
+ *
+ * @return identifier of the slice. This name must match one of the
+ * configured slice names.
+ * @see DistributedConfiguration#getSliceNames()
+ */
+ String distribute(Object pc, List<String> slices, Object context);
+ }
+
+ </pre><p>
+ </p>
+
+ <p>
+ Slice runtime invokes this user-supplied method for the newly
+ persistent instance that is explicit argument of the
+ <code class="classname">jakarta.persistence.EntityManager.persist(Object pc)</code>
+ method. The user application must return a valid slice name from
+ this method to designate the target slice for the given instance.
+ The data distribution policy may be based on the attribute
+ of the data itself. For example, all Customer whose first name
+ begins with character 'A' to 'M' will be stored in one slice
+ while names beginning with 'N' to 'Z' will be stored in another
+ slice. The noteworthy aspect of such policy implementation is
+ the attribute values that participate in
+ the distribution policy logic should be set before invoking
+ <code class="classname">EntityManager.persist()</code> method.
+ </p>
+
+ <p>
+ The user application needs to specify the target slice <span class="emphasis"><em>only</em></span>
+ for the <span class="emphasis"><em>root</em></span> instance i.e. the explicit argument for the
+ <code class="classname">EntityManager.persist(Object pc)</code> method. Slice computes
+ the transitive closure of the graph i.e. the set of all instances
+ directly or indirectly reachable from the root instance and stores
+ them in the same target slice.
+ </p>
+
+ <p>
+ Slice tracks the original database for existing instances. When
+ an application issues a query, the resultant instances can be loaded
+ from different slices. As Slice tracks the original slice for each
+ instance, any subsequent update to an instance is committed to the
+ appropriate original database slice.
+ </p>
+
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+ You can find the original slice of an instance <code class="classname">pc</code> by
+ the static utility method
+ <code class="methodname">SlicePersistence.getSlice(pc)</code>.
+ This method returns the slice identifier associated with the
+ given <span class="emphasis"><em>managed</em></span> instance. If the instance is not
+ being managed then the method return null because any unmanaged or
+ detached instance is not associated with any slice.
+ </p>
+ </div>
+ </div>
+
+ <div class="section" id="d5e17204"><div class="titlepage"><div><div><h3 class="title">2.5. Data Replication</h3></div></div></div>
+ <p>
+ While Slice ensures that the transitive closure is stored in the
+ same slice, there can be data elements that are commonly referred by
+ many instances such as Country or Currency code. Such quasi-static
+ master data can be stored as identical copies in multiple slices.
+ The user application must enumerate the replicated entity type names in
+ <code class="classname">openjpa.slice.ReplicatedTypes</code> as a comma-separated list
+ and implement a <code class="classname">org.apache.openjpa.slice.ReplicationPolicy</code>
+ interface. The <code class="classname">ReplicationPolicy</code> interface
+ is quite similar to <code class="classname">DistributionPolicy</code>
+ interface except it returns an array of target slice names instead
+ of a single slice.
+ </p><pre class="programlisting">
+
+ String[] replicate(Object pc, List<String> slices, Object context);
+
+ </pre><p>
+ </p>
+ <p>
+ The default implementation assumes that replicated instances are
+ stored in all available slices. If any such replicated instance
+ is modified then the modification is updated to all target slices
+ to maintain the critical assumption that the state of a replicated
+ instance is identical across all its target slices.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17213"><div class="titlepage"><div><div><h3 class="title">2.6. Heterogeneous Database</h3></div></div></div>
+ <p>
+ Each slice can be configured independently with its own JDBC
+ driver and other connection parameters. Hence the target database
+ environment can constitute of heterogeneous databases.
+ </p>
+ </div>
+
+ <div class="section" id="d5e17216"><div class="titlepage"><div><div><h3 class="title">2.7. Distributed Transaction</h3></div></div></div>
+ <p>
+ The database slices participate in a global transaction provided
+ each slice is configured with a XA-compliant JDBC driver, even
+ when the persistence unit is configured for <code class="classname">RESOURCE_LOCAL</code>
+ transaction.
+ </p>
+ <p>
+ </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3>
+ If any of the configured slices is not XA-compliant <span class="emphasis"><em>and</em></span>
+ the persistence unit is configured for <code class="classname">RESOURCE_LOCAL</code>
+ transaction then each slice is committed without any two-phase
+ commit protocol. If commit on any slice fails, then atomic nature of
+ the transaction is not ensured.
+ </div><p>
+ </p>
+ </div>
+
+ <div class="section" id="collocation_constraint"><div class="titlepage"><div><div><h3 class="title">2.8. Collocation Constraint</h3></div></div></div>
+ <p>
+ No relationship can exist across database slices. In O-R mapping parlance,
+ this condition translates to the limitation that the transitive closure of an object graph must be
+ <span class="emphasis"><em>collocated</em></span> in the same database.
+ For example, consider a domain model where Person relates to Address.
+ Person X refers to Address A while Person Y refers to Address B.
+ Collocation Constraint means that <span class="emphasis"><em>both</em></span> X and A
+ must be stored in the same
+ database slice. Similarly Y and B must be stored in a single slice.
+ </p>
+ <p>
+ Slice, however, helps to maintain collocation constraint automatically.
+ The instances in the closure set of any newly persistent instance
+ reachable via cascaded relationship is stored in the same slice.
+ The user-defined distribution policy requires to supply the slice
+ for the root instance only.
+ </p>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref_guide_slice.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref_guide_slice.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="slice_configuration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 13.
+ Slice: Distributed Persistence
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 3. Usage</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/index.html b/4.1.0/apache-openjpa/docs/index.html
new file mode 100644
index 000000000..4ed8932e5
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/index.html
@@ -0,0 +1,1633 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Apache OpenJPA 3.2 User's Guide</title><base target="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="next" href="introduction.html" title="Part 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summ [...]
+ About
+ </a></span></dt><dt><span class="chapter"><a href="openjpa_legal.html">2.
+ Legal
+ </a></span></dt><dd><dl><dt><span class="section"><a href="openjpa_legal.html#openjpa_legal_license">1.
+ License
+ </a></span></dt><dt><span class="section"><a href="openjpa_legal_notice.html">2.
+ Notice
+ </a></span></dt><dt><span class="section"><a href="openjpa_legal_copyright.html">3.
+ Copyrights
+ </a></span></dt><dd><dl><dt><span class="section"><a href="openjpa_legal_copyright.html#openjpa_legal_copyright_apache">3.1. Apache</a></span></dt><dt><span class="section"><a href="openjpa_legal_copyright.html#openjpa_legal_copyright_sun">3.2. Sun</a></span></dt><dt><span class="section"><a href="openjpa_legal_copyright.html#openjpa_legal_copyright_other">3.3. Other</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="jpa_overview.html">2. Java Persistenc [...]
+ Introduction
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_intro.html#jpa_overview_intro_audience">1.
+ Intended Audience
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_intro_transpers.html">2.
+ Lightweight Persistence
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_why.html">2.
+ Why JPA?
+ </a></span></dt><dt><span class="chapter"><a href="jpa_overview_arch.html">3.
+ Java Persistence API Architecture
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_arch.html#jpa_overview_arch_exceptions">1.
+ JPA Exceptions
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_pc.html">4.
+ Entity
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict">1.
+ Restrictions on Persistent Classes
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_no_arg">1.1.
+ Default or No-Arg Constructor
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_final">1.2.
+ Final
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_id">1.3.
+ Identity Fields
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_version">1.4.
+ Version Field
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict_inheritance">1.5.
+ Inheritance
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict_fields">1.6.
+ Persistent Fields
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict_conclusion">1.7.
+ Conclusions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_pc_identity.html">2.
+ Entity Identity
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc_identity.html#jpa_overview_pc_identitycls">2.1.
+ Identity Class
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc_identity.html#jpa_overview_pc_identity_hierarchy">2.1.1.
+ Identity Hierarchies
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_overview_pc_callbacks.html">3.
+ Lifecycle Callbacks
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_pc_callbacks_methods">3.1.
+ Callback Methods
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_callbacks_using">3.2.
+ Using Callback Methods
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_entity_listeners_using">3.3.
+ Using Entity Listeners
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_entity_listeners_exclude">3.4.
+ Entity Listeners Hierarchy
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_pc_conclusion.html">4.
+ Conclusions
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_meta.html">5.
+ Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_class">1.
+ Class Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_entity">1.1.
+ Entity
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_idclass">1.2.
+ Id Class
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_embeddablesuper">1.3.
+ Mapped Superclass
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_embeddable">1.4.
+ Embeddable
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_entity_listeners">1.5.
+ EntityListeners
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_classex">1.6.
+ Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html">2.
+ Field and Property Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_explicit_access">2.1.
+ Explicit Access
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_transient">2.2.
+ Transient
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_id">2.3.
+ Id
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_gen">2.4.
+ Generated Value
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_embedid">2.5.
+ Embedded Id
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_version">2.6.
+ Version
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_basic">2.7.
+ Basic
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_fetch">2.7.1.
+ Fetch Type
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_embedded">2.8.
+ Embedded
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_manytoone">2.9.
+ Many To One
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_cascade">2.9.1.
+ Cascade Type
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_onetomany">2.10.
+ One To Many
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_mappedby">2.10.1.
+ Bidirectional Relations
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_onetoone">2.11.
+ One To One
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_manytomany">2.12.
+ Many To Many
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_orderby">2.13.
+ Order By
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_mapkey">2.14.
+ Map Key
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_fielddefaults">2.15.
+ Persistent Field Defaults
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_xml.html">3.
+ XML Schema
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_complete.html">4.
+ Conclusion
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_persistence.html">6.
+ Persistence
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_persistence.html#jpa_overview_persistence_xml">1.
+ persistence.xml
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_persistence_use.html">2.
+ Non-EE Use
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_emfactory.html">7.
+ EntityManagerFactory
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_emfactory.html#jpa_overview_emfactory_obtain">1.
+ Obtaining an EntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_em.html">2.
+ Obtaining EntityManagers
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_perscontext.html">3.
+ Persistence Context
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_emfactory_perscontext.html#jpa_overview_emfactory_perscontext_trans">3.1.
+ Transaction Persistence Context
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_perscontext.html#jpa_overview_emfactory_perscontext_extend">3.2.
+ Extended Persistence Context
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_emf_properties.html">4.
+ Retrieving Properties Information
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_close.html">5.
+ Closing the EntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_puutil.html">6.
+ PersistenceUnitUtil
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_em.html">8.
+ EntityManager
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_em.html#jpa_overview_em_trans">1.
+ Transaction Association
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_lifecycle.html">2.
+ Entity Lifecycle Management
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_lifeexamples.html">3.
+ Lifecycle Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_identity.html">4.
+ Entity Identity Management
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_cache.html">5.
+ Cache Management
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_query.html">6.
+ Query Factory
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_locking.html">7.
+ Entity Locking
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_properties.html">8.
+ Retrieving Properties Information
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_closing.html">9.
+ Closing
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_trans.html">9.
+ Transaction
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_trans.html#jpa_overview_trans_types">1.
+ Transaction Types
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_trans_local.html">2.
+ The EntityTransaction Interface
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_query.html">10.
+ JPA Query
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_query.html#jpa_query_api">1.
+ JPQL API
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_basic">1.1.
+ Query Basics
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_relations">1.2.
+ Relation Traversal
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_embeddables">1.3.
+ Embeddable Traversal
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_join_fetch">1.4.
+ Fetch Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_functions">1.5.
+ JPQL Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_inheritance">1.6.
+ Polymorphic Queries
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_params">1.7.
+ Query Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_hints">1.8.
+ Query Hints
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_locking">1.8.1.
+ Locking Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_locktimeout">1.8.2.
+ Lock Timeout Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_querytimeout">1.8.3.
+ Query Timeout Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_resultset">1.8.4.
+ Result Set Size Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_isolation">1.8.5.
+ Isolation Level Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_fetchplan">1.8.6.
+ Other Fetchplan Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#d5e3458">1.8.7.
+ Database-Specific Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_named">1.8.8.
+ Named Query Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#multi-hints-handling">1.8.9.
+ Handling of Multiple Similar Query Hints
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_ordering">1.9.
+ Ordering
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_aggregates">1.10.
+ Aggregates
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_named">1.11.
+ Named Queries
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_delete">1.12.
+ Delete By Query
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_update">1.13.
+ Update By Query
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html">2.
+ JPQL Language Reference
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_stmnttypes">2.1.
+ JPQL Statement Types
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select">2.1.1.
+ JPQL Select Statement
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk">2.1.2.
+ JPQL Update and Delete Statements
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schematypes">2.2.
+ JPQL Abstract Schema Types and Query Domains
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemanaming">2.2.1.
+ JPQL Entity Naming
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemaexample">2.2.2.
+ JPQL Schema Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fromclause">2.3.
+ JPQL FROM Clause and Navigational Declarations
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_identifiers">2.3.1.
+ JPQL FROM Identifiers
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_vars">2.3.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_range">2.3.3.
+ JPQL Range Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path">2.3.4.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_Joins">2.3.5.
+ JPQL Joins
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_inner_joins">2.3.5.1.
+ JPQL Inner Joins (Relationship Joins)
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_outer_joins">2.3.5.2.
+ JPQL Outer Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fetch_joins">2.3.5.3.
+ JPQL Fetch Joins
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_dec">2.3.6.
+ JPQL Collection Member Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_clause_and_sql">2.3.7.
+ JPQL FROM Clause and SQL
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_polymorph">2.3.8.
+ JPQL Polymorphism
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_where">2.4.
+ JPQL WHERE Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond">2.5.
+ JPQL Conditional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_lit">2.5.1.
+ JPQL Literals
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_idvar">2.5.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path_exp">2.5.3.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_input_params">2.5.4.
+ JPQL Input Parameters
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_pos_params">2.5.4.1.
+ JPQL Positional Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_named_params">2.5.4.2.
+ JPQL Named Parameters
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond_comp">2.5.5.
+ JPQL Conditional Expression Composition
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_operators">2.5.6.
+ JPQL Operators and Operator Precedence
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_comparison_expressions">2.5.7.
+ JPQL Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_between">2.5.8.
+ JPQL Between Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_in_expressions">2.5.9.
+ JPQL In Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_like">2.5.10.
+ JPQL Like Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null">2.5.11.
+ JPQL Null Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_empty_comp">2.5.12.
+ JPQL Empty Collection Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_member">2.5.13.
+ JPQL Collection Member Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_exists">2.5.14.
+ JPQL Exists Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_all_any">2.5.15.
+ JPQL All or Any Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_subqueries">2.5.16.
+ JPQL Subqueries
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_scalar_expressions">2.6.
+ JPQL Scalar Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_math_expressions">2.6.1.
+ Arithmetic Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_functional_expressions">2.6.2.
+ String, Arithmetic, and Datetime Functional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_string_fun">2.6.2.1.
+ JPQL String Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_arithmetic">2.6.2.2.
+ JPQL Arithmetic Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_datetime">2.6.2.3.
+ JPQL Datetime Functions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_case_expressions">2.6.3.
+ Case Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_entity_type_expressions">2.6.4.
+ Entity Type Expressions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_group">2.7.
+ JPQL GROUP BY, HAVING
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select_clause">2.8.
+ JPQL SELECT Clause
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_resulttype">2.8.1.
+ JPQL Result Type of the SELECT Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_constructor">2.8.2.
+ JPQL Constructor Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_select">2.8.3.
+ JPQL Null Values in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_embeddables">2.8.4.
+ JPQL Embeddables in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_aggregates">2.8.5.
+ JPQL Aggregate Functions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_agg_examples">2.8.5.1.
+ JPQL Aggregate Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_numeric_expressions_in_select">2.8.5.2.
+ JPQL Numeric Expressions in the SELECT Clause
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_orderby">2.9.
+ JPQL ORDER BY Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk_ops">2.10.
+ JPQL Bulk Update and Delete
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_values">2.11.
+ JPQL Null Values
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_equality">2.12.
+ JPQL Equality and Comparison Semantics
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bnf">2.13.
+ JPQL BNF
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="jpa_overview_criteria.html">11.
+ JPA Criteria
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_criteria.html#d5e5484">1. Constructing a CriteriaQuery</a></span></dt><dt><span class="section"><a href="ch13s02.html">2. Executing a CriteriaQuery</a></span></dt><dt><span class="section"><a href="ch13s03.html">3. Extension to Criteria API</a></span></dt><dt><span class="section"><a href="ch13s04.html">4. Generation of Canonical MetaModel classes</a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_ov [...]
+ SQL Queries
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_sqlquery.html#jpa_overview_sqlquery_create">1.
+ Creating SQL Queries
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_sqlquery_obj.html">2.
+ Retrieving Persistent Objects with SQL
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_mapping.html">13.
+ Mapping Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping.html#jpa_overview_mapping_table">1.
+ Table
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_unq.html">2.
+ Unique Constraints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_column.html">3.
+ Column
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_id.html">4.
+ Identity Mapping
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_sequence.html">5.
+ Generators
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_seqgen">5.1.
+ Sequence Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_tablegen">5.2.
+ Table Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_genex">5.3.
+ Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html">6.
+ Inheritance
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single">6.1.
+ Single Table
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single_adv">6.1.1.
+ Advantages
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single_disadv">6.1.2.
+ Disadvantages
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined">6.2.
+ Joined
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined_adv">6.2.1.
+ Advantages
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined_disadv">6.2.2.
+ Disadvantages
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpc">6.3.
+ Table Per Class
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpc_adv">6.3.1.
+ Advantages
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpc_disadv">6.3.2.
+ Disadvantages
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_together">6.4.
+ Putting it All Together
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_discrim.html">7.
+ Discriminator
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html">8.
+ Field Mapping
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_basic">8.1.
+ Basic Mapping
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_lob">8.1.1.
+ LOBs
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_enum">8.1.2.
+ Enumerated
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_temporal">8.1.3.
+ Temporal Types
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_basic_example">8.1.4.
+ The Updated Mappings
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_secondary">8.2.
+ Secondary Tables
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_embed">8.3.
+ Embedded Mapping
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_rel">8.4.
+ Direct Relations
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_assoccoll">8.5.
+ Join Table
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_bidi">8.6.
+ Bidirectional Mapping
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html#jpa_overview_mapping_map">8.7.
+ Map Mapping
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_full.html">9.
+ The Complete Mappings
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_conclusion.html">14.
+ Conclusion
+ </a></span></dt></dl></dd><dt><span class="part"><a href="ref_guide.html">3. Reference Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="ref_guide_intro.html">1.
+ Introduction
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_intro.html#ref_guide_intro_audience">1.
+ Intended Audience
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="ref_guide_conf.html">2.
+ Configuration
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_conf.html#ref_guide_conf_intro">1.
+ Introduction
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_specify.html">2.
+ Runtime Configuration
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_devtools.html">3.
+ Command Line Configuration
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_conf_devtools.html#ref_guide_conf_devtools_format">3.1.
+ Code Formatting
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_conf_plugins.html">4.
+ Plugin Configuration
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html">5.
+ OpenJPA Properties
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.AutoClear">5.1.
+ openjpa.AutoClear
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.AutoDetach">5.2.
+ openjpa.AutoDetach
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.BrokerFactory">5.3.
+ openjpa.BrokerFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.BrokerImpl">5.4.
+ openjpa.BrokerImpl
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Callbacks">5.5. openjpa.Callbacks</a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ClassResolver">5.6.
+ openjpa.ClassResolver
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Compatibility">5.7.
+ openjpa.Compatibility
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionDriverName">5.8.
+ openjpa.ConnectionDriverName
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Connection2DriverName">5.9.
+ openjpa.Connection2DriverName
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactory">5.10.
+ openjpa.ConnectionFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactory2">5.11.
+ openjpa.ConnectionFactory2
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactoryName">5.12.
+ openjpa.ConnectionFactoryName
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactory2Name">5.13.
+ openjpa.ConnectionFactory2Name
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactoryMode">5.14.
+ openjpa.ConnectionFactoryMode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactoryProperties">5.15.
+ openjpa.ConnectionFactoryProperties
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionFactory2Properties">5.16.
+ openjpa.ConnectionFactory2Properties
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionPassword">5.17.
+ openjpa.ConnectionPassword
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Connection2Password">5.18.
+ openjpa.Connection2Password
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionProperties">5.19.
+ openjpa.ConnectionProperties
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Connection2Properties">5.20.
+ openjpa.Connection2Properties
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionURL">5.21.
+ openjpa.ConnectionURL
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Connection2URL">5.22.
+ openjpa.Connection2URL
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionUserName">5.23.
+ openjpa.ConnectionUserName
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Connection2UserName">5.24.
+ openjpa.Connection2UserName
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ConnectionRetainMode">5.25.
+ openjpa.ConnectionRetainMode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DataCache">5.26.
+ openjpa.DataCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DataCacheManager">5.27.
+ openjpa.DataCacheManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DataCacheMode">5.28.
+ openjpa.DataCacheMode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DataCacheTimeout">5.29.
+ openjpa.DataCacheTimeout
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DetachState">5.30.
+ openjpa.DetachState
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DynamicDataStructs">5.31.
+ openjpa.DynamicDataStructs
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.DynamicEnhancementAgent">5.32. openjpa.DynamicEnhancementAgent</a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.FetchBatchSize">5.33.
+ openjpa.FetchBatchSize
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.EncryptionProvider">5.34.
+ openjpa.EncryptionProvider
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.FetchGroups">5.35.
+ openjpa.FetchGroups
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.FlushBeforeQueries">5.36.
+ openjpa.FlushBeforeQueries
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.IgnoreChanges">5.37.
+ openjpa.IgnoreChanges
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Id">5.38. openjpa.Id</a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.InitializeEagerly">5.39.
+ openjpa.InitializeEagerly
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Instrumentation">5.40.
+ openjpa.Instrumentation
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.InverseManager">5.41.
+ openjpa.InverseManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.LockManager">5.42.
+ openjpa.LockManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.LockTimeout">5.43.
+ openjpa.LockTimeout
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Log">5.44.
+ openjpa.Log
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ManagedRuntime">5.45.
+ openjpa.ManagedRuntime
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Mapping">5.46.
+ openjpa.Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.MaxFetchDepth">5.47.
+ openjpa.MaxFetchDepth
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.MetaDataFactory">5.48.
+ openjpa.MetaDataFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.MetaDataRepository">5.49.
+ openjpa.MetaDataRepository
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Multithreaded">5.50.
+ openjpa.Multithreaded
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Optimistic">5.51.
+ openjpa.Optimistic
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.OptimizeIdCopy">5.52.
+ openjpa.OptimizeIdCopy
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.OrphanedKeyAction">5.53.
+ openjpa.OrphanedKeyAction
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.NontransactionalRead">5.54.
+ openjpa.NontransactionalRead
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.NontransactionalWrite">5.55.
+ openjpa.NontransactionalWrite
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ProxyManager">5.56.
+ openjpa.ProxyManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.PostLoadOnMerge">5.57.
+ openjpa.PostLoadOnMerge
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.QueryCache">5.58.
+ openjpa.QueryCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.QueryCompilationCache">5.59.
+ openjpa.QueryCompilationCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.ReadLockLevel">5.60.
+ openjpa.ReadLockLevel
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.RemoteCommitProvider">5.61.
+ openjpa.RemoteCommitProvider
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.RestoreState">5.62.
+ openjpa.RestoreState
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.RetainState">5.63.
+ openjpa.RetainState
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.RetryClassRegistration">5.64.
+ openjpa.RetryClassRegistration
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.RuntimeUnenhancedClasses">5.65. openjpa.RuntimeUnenhancedClasses</a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.SavepointManager">5.66.
+ openjpa.SavepointManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Sequence">5.67.
+ openjpa.Sequence
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.Specification">5.68.
+ openjpa.Specification
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.TransactionMode">5.69.
+ openjpa.TransactionMode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.UseTCCLinSelectNew">5.70.
+ openjpa.UseTCCLinSelectNew
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_openjpa.html#openjpa.WriteLockLevel">5.71.
+ openjpa.WriteLockLevel
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_conf_jdbc.html">6.
+ OpenJPA JDBC Properties
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.ConnectionDecorators">6.1.
+ openjpa.jdbc.ConnectionDecorators
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.DBDictionary">6.2.
+ openjpa.jdbc.DBDictionary
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.DriverDataSource">6.3.
+ openjpa.jdbc.DriverDataSource
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.EagerFetchMode">6.4.
+ openjpa.jdbc.EagerFetchMode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.FetchDirection">6.5.
+ openjpa.jdbc.FetchDirection
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.JDBCListeners">6.6.
+ openjpa.jdbc.JDBCListeners
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.LRSSize">6.7.
+ openjpa.jdbc.LRSSize
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.MappingDefaults">6.8.
+ openjpa.jdbc.MappingDefaults
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.MappingFactory">6.9.
+ openjpa.jdbc.MappingFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.QuerySQLCache">6.10.
+ openjpa.jdbc.QuerySQLCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.ResultSetType">6.11.
+ openjpa.jdbc.ResultSetType
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.Schema">6.12.
+ openjpa.jdbc.Schema
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.SchemaFactory">6.13.
+ openjpa.jdbc.SchemaFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.Schemas">6.14.
+ openjpa.jdbc.Schemas
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.SQLFactory">6.15.
+ openjpa.jdbc.SQLFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.SubclassFetchMode">6.16.
+ openjpa.jdbc.SubclassFetchMode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.SynchronizeMappings">6.17.
+ openjpa.jdbc.SynchronizeMappings
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.TransactionIsolation">6.18.
+ openjpa.jdbc.TransactionIsolation
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#openjpa.jdbc.UpdateManager">6.19.
+ openjpa.jdbc.UpdateManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_conf_jdbc.html#ref_guide_spec_compatibility">6.20. Compatibility with Specification</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_logging.html">3.
+ Logging and Auditing
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_logging.html#ref_guide_logging_channels">1.
+ Logging Channels
+ </a></span></dt><dt><span class="section"><a href="ref_guide_logging_openjpa.html">2.
+ OpenJPA Logging
+ </a></span></dt><dt><span class="section"><a href="ref_guide_logging_noop.html">3.
+ Disabling Logging
+ </a></span></dt><dt><span class="section"><a href="ref_guide_logging_log4j.html">4.
+ Log4J
+ </a></span></dt><dt><span class="section"><a href="ref_guide_logging_commons.html">5.
+ Apache Commons Logging
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_logging_commons.html#ref_guide_logging_jdk14">5.1.
+ JDK java.util.logging
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_logging_slf4j.html">6.
+ SLF4J
+ </a></span></dt><dt><span class="section"><a href="ref_guide_logging_custom.html">7.
+ Custom Log
+ </a></span></dt><dt><span class="section"><a href="ref_guide_audit.html">8. OpenJPA Audit</a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_audit.html#d5e9667">8.1. Configuration</a></span></dt><dt><span class="section"><a href="ref_guide_audit.html#d5e9689">8.2. Developing custom auditing</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_dbsetup.html">4.
+ JDBC
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_dbsetup.html#ref_guide_dbsetup_builtin">1.
+ Using the OpenJPA DataSource
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_dbsetup.html#ref_guide_dbsetup_auto">1.1.
+ Optional Connection Pooling
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup.html#ref_guide_dbsetup_config">1.2.
+ Configuring the OpenJPA DataSource
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup.html#ref_guide_dbsetup_dbcp">1.3.
+ Configuring Apache Commons DBCP
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_dbsetup_thirdparty.html">2.
+ Using a Third-Party DataSource
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_dbsetup_thirdparty.html#ref_guide_dbsetup_thirdparty_enlist">2.1.
+ Managed and XA DataSources
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_thirdparty.html#ref_guide_dbsetup_setDSatRuntime">2.2. Setting the DataSource at runtime</a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_dbsetup_thirdparty.html#ref_guide_dbsetup_setDSPerEM">2.2.1. Using different DataSources for each EntityManager</a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_dbsetup_thirdparty.html#ref_guide_dbsetup_setDSBenefits">2.2.1.1. Benefits [...]
+ Runtime Access to DataSource
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_dbsupport.html">4.
+ Database Support
+ </a></span></dt><dd><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></dd><dt><span class="section"><a href="ref_guide_dbsetup_isolation.html">5.
+ Setting the Transaction Isolation
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_sql92.html">6.
+ Setting the SQL Join Syntax
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_multidb.html">7.
+ Accessing Multiple Databases
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_retain.html">8.
+ Configuring the Use of JDBC Connections
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_stmtbatch.html">9.
+ Statement Batching
+ </a></span></dt><dt><span class="section"><a href="ref_guide_dbsetup_lrs.html">10.
+ Large Result Sets
+ </a></span></dt><dt><span class="section"><a href="ref_guide_schema_def.html">11.
+ Default Schema
+ </a></span></dt><dt><span class="section"><a href="ref_guide_schema_info.html">12.
+ Schema Reflection
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_schema_info.html#ref_guide_schema_info_list">12.1.
+ Schemas List
+ </a></span></dt><dt><span class="section"><a href="ref_guide_schema_info.html#ref_guide_schema_info_factory">12.2.
+ Schema Factory
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_schema_schematool.html">13.
+ Schema Tool
+ </a></span></dt><dt><span class="section"><a href="ref_guide_schema_xml.html">14.
+ XML Schema Format
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="ref_guide_pc.html">5.
+ Persistent Classes
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc.html#ref_guide_pc_pcclasses">1.
+ Persistent Class List
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_enhance.html">2.
+ Enhancement
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_build">2.1.
+ Enhancing at Build Time
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_runtime_container">2.2.
+ Enhancing JPA Entities on Deployment
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_runtime">2.3.
+ Enhancing at Runtime
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_dynamic">2.4.
+ Enhancing Dynamically at Runtime
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_unenhanced_types">2.5.
+ Omitting the OpenJPA enhancer
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_pc_interfaces.html">3. Managed Interfaces</a></span></dt><dt><span class="section"><a href="ref_guide_pc_oid.html">4.
+ Object Identity
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc_oid.html#ref_guide_pc_oid_datastore">4.1.
+ Datastore Identity
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_oid.html#ref_guide_pc_oid_entitypk">4.2.
+ Entities as Identity Fields
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_oid.html#ref_guide_pc_oid_application">4.3.
+ Application Identity Tool
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_oid.html#ref_guide_pc_oid_pkgen_autoinc">4.4.
+ Autoassign / Identity Strategy Caveats
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_inverses.html">5.
+ Managed Inverses
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html">6.
+ Persistent Fields
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_restore">6.1.
+ Restoring State
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_order">6.2.
+ Typing and Ordering
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_calendar_timezone">6.3.
+ Calendar Fields and TimeZones
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy">6.4.
+ Proxies
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_smart">6.4.1.
+ Smart Proxies
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_lrs">6.4.2.
+ Large Result Set Proxies
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_custom">6.4.3.
+ Custom Proxies
+ </a></span></dt><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_serial">6.4.4.
+ Serialization
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_extern">6.5.
+ Externalization
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc_scos.html#ref_guide_pc_extern_values">6.5.1.
+ External Values
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ref_guide_fetch.html">7.
+ Fetch Groups
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_fetch.html#ref_guide_fetch_custom">7.1.
+ Custom Fetch Groups
+ </a></span></dt><dt><span class="section"><a href="ref_guide_fetch.html#ref_guide_fetch_conf">7.2.
+ Custom Fetch Group Configuration
+ </a></span></dt><dt><span class="section"><a href="ref_guide_fetch.html#ref_guide_fetch_single_field">7.3.
+ Per-field Fetch Configuration
+ </a></span></dt><dt><span class="section"><a href="ref_guide_fetch.html#ref_guide_fetch_impl">7.4.
+ Implementation Notes
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_perfpack_eager.html">8.
+ Eager Fetching
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_perfpack_eager.html#ref_guide_perfpack_eager_conf">8.1.
+ Configuring Eager Fetching
+ </a></span></dt><dt><span class="section"><a href="ref_guide_perfpack_eager.html#ref_guide_perfpack_eager_consider">8.2.
+ Eager Fetching Considerations and Limitations
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_meta.html">6.
+ Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_meta.html#ref_guide_meta_factory">1.
+ Metadata Factory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_repository.html">2. Metadata Repository</a></span></dt><dt><span class="section"><a href="ref_guide_meta_jpa.html">3.
+ Additional JPA Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_meta_jpa.html#ref_guide_meta_jpa_datastoreid">3.1.
+ Datastore Identity
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_jpa.html#ref_guide_meta_jpa_version">3.2.
+ Surrogate Version
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_jpa.html#ref_guide_meta_jpa_persistent">3.3.
+ Persistent Field Values
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_jpa.html#ref_guide_meta_jpa_persistent_coll">3.4. Persistent Collection Fields</a></span></dt><dt><span class="section"><a href="ref_guide_meta_jpa.html#ref_guide_meta_jpa_persistent_map">3.5. Persistent Map Fields</a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_meta_ext.html">4.
+ Metadata Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_meta_ext.html#ref_guide_meta_class">4.1.
+ Class Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_meta_ext.html#fetch-groups">4.1.1.
+ Fetch Groups
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#data-cache">4.1.2.
+ Data Cache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#detached-state-field">4.1.3.
+ Detached State
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_meta_ext.html#ref_guide_meta_field">4.2.
+ Field Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_meta_ext.html#dependent">4.2.1.
+ Dependent
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#load-fetch-group">4.2.2.
+ Load Fetch Group
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#lrs">4.2.3.
+ LRS
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#inverse-logical">4.2.4.
+ Inverse-Logical
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#read-only">4.2.5.
+ Read-Only
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#type">4.2.6.
+ Type
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#externalizer">4.2.7.
+ Externalizer
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#factory">4.2.8.
+ Factory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#external-values">4.2.9.
+ External Values
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_meta_ext.html#ref_guide_meta_example">4.3.
+ Example
+ </a></span></dt><dt><span class="section"><a href="ref_guide_meta_ext.html#ref_guide_meta_xml">4.4.
+ XML extensions
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_mapping.html">7.
+ Mapping
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping.html#ref_guide_mapping_mappingtool">1.
+ Forward Mapping
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping.html#ref_guide_mapping_mappingtool_examples">1.1.
+ Using the Mapping Tool
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping.html#ref_guide_ddl_examples">1.2.
+ Generating DDL SQL
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping.html#ref_guide_mapping_synch">1.3.
+ Runtime Forward Mapping
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_pc_reverse.html">2.
+ Reverse Mapping
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_pc_reverse.html#ref_guide_pc_reverse_custom">2.1.
+ Customizing Reverse Mapping
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_mapping_middle.html">3.
+ Meet-in-the-Middle Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_defaults.html">4.
+ Mapping Defaults
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_factory.html">5.
+ Mapping Factory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_notes_nonstdjoins.html">6.
+ Non-Standard Joins
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html">7.
+ Additional JPA Mappings
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_datastoreid">7.1.
+ Datastore Identity Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_version">7.2.
+ Surrogate Version Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_columns">7.3.
+ Multi-Column Mappings
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_fieldjoin">7.4.
+ Join Column Attribute Targets
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_embed">7.5.
+ Embedded Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_coll">7.6.
+ Collections
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_coll_table">7.6.1.
+ Container Table
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_coll_joincols">7.6.2.
+ Element Join Columns
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_coll_order">7.6.3.
+ Order Column
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_onemany">7.7.
+ One-Sided One-Many Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_map">7.8.
+ Maps
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_map_keycols">7.8.1. Key Columns</a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_map_keyjoincols">7.8.2. Key Join Columns</a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_map_embedkey">7.8.3. Key Embedded Mapping</a></span></dt><dt><span class="section"><a href="ref_guide [...]
+ Indexes and Constraints
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_index">7.9.1.
+ Indexes
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_fk">7.9.2.
+ Foreign Keys
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_unique">7.9.3.
+ Unique Constraints
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping">7.10.
+ XML Column Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_jpa.html#ref_guide_streamsupport">7.11.
+ LOB Streaming
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_mapping_limits.html">8.
+ Mapping Limitations
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_limits.html#ref_guide_mapping_limits_tpc">8.1.
+ Table Per Class
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_mapping_ext.html">9.
+ Mapping Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_ext.html#ref_guide_mapping_ext_cls">9.1.
+ Class Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_ext.html#subclass-fetch-mode">9.1.1.
+ Subclass Fetch Mode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_ext.html#class-strategy">9.1.2.
+ Strategy
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_ext.html#discriminator-strategy">9.1.3.
+ Discriminator Strategy
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_ext.html#version-strategy">9.1.4.
+ Version Strategy
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_mapping_ext.html#ref_guide_mapping_ext_field">9.2.
+ Field Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_ext.html#eager-fetch-mode">9.2.1.
+ Eager Fetch Mode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_ext.html#nonpolymorphic">9.2.2.
+ Nonpolymorphic
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_ext.html#class-criteria">9.2.3.
+ Class Criteria
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_ext.html#strategy">9.2.4.
+ Strategy
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ref_guide_mapping_custom.html">10.
+ Custom Mappings
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_custom.html#ref_guide_mapping_custom_class">10.1.
+ Custom Class Mapping
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_custom.html#ref_guide_mapping_custom_versdiscrim">10.2.
+ Custom Discriminator and Version Strategies
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_custom.html#ref_guide_mapping_custom_field">10.3.
+ Custom Field Mapping
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_mapping_custom.html#ref_guide_mapping_custom_vhandler">10.3.1.
+ Value Handlers
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_custom.html#ref_guide_mapping_custom_fieldstrat">10.3.2.
+ Field Strategies
+ </a></span></dt><dt><span class="section"><a href="ref_guide_mapping_custom.html#ref_guide_mapping_custom_field_conf">10.3.3.
+ Configuration
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ref_guide_orphan.html">11.
+ Orphaned Keys
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="ref_guide_deploy.html">8.
+ Deployment
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_deploy.html#ref_guide_deploy_factory">1.
+ Factory Deployment
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_deploy.html#ref_guide_deploy_factory_standalone">1.1.
+ Standalone Deployment
+ </a></span></dt><dt><span class="section"><a href="ref_guide_deploy.html#ref_guide_deploy_inject">1.2.
+ EntityManager Injection
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_enterprise_trans.html">2.
+ Integrating with the Transaction Manager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_enterprise_xa.html">3.
+ XA Transactions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_enterprise_xa.html#ref_guide_enterprise_xa_req">3.1.
+ Using OpenJPA with XA Transactions
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_runtime.html">9.
+ Runtime Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_arch">1.
+ Architecture
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_broker_finalization">1.1.
+ Broker Finalization
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime.html#ref_guide_runtime_broker_extension">1.2.
+ Broker Customization and Eviction
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_runtime_jpa.html">2.
+ JPA Extensions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_emfactory">2.1.
+ OpenJPAEntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_em">2.2.
+ OpenJPAEntityManager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaquery">2.3.
+ OpenJPAQuery
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaextent">2.4.
+ Extent
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpacache">2.5.
+ StoreCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaquerycache">2.6.
+ QueryResultCache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpafetch">2.7.
+ FetchPlan
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpaentitytransaction">2.8.
+ OpenJPAEntityTransaction
+ </a></span></dt><dt><span class="section"><a href="ref_guide_runtime_jpa.html#ref_guide_runtime_openjpapersistence">2.9.
+ OpenJPAPersistence
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_locking.html">3.
+ Object Locking
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_default">3.1.
+ Configuring Default Locking
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_runtime">3.2.
+ Configuring Lock Levels at Runtime
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_apis">3.3.
+ Object Locking APIs
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_lockmgr">3.4.
+ Lock Manager
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_rules">3.5.
+ Rules for Locking Behavior
+ </a></span></dt><dt><span class="section"><a href="ref_guide_locking.html#ref_guide_locking_issues">3.6.
+ Known Issues and Limitations
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_savepoints.html">4.
+ Savepoints
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_savepoints.html#reg_guide_savepoints_using">4.1.
+ Using Savepoints
+ </a></span></dt><dt><span class="section"><a href="ref_guide_savepoints.html#ref_guide_savepoints_conf">4.2.
+ Configuring Savepoints
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_enterprise_methodql.html">5.
+ MethodQL
+ </a></span></dt><dt><span class="section"><a href="ref_guide_sequence.html">6.
+ Generators
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_sequence.html#ref_guide_sequence_runtime">6.1.
+ Runtime Access
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_runtime_pm_event.html">7.
+ Transaction Events
+ </a></span></dt><dt><span class="section"><a href="ref_guide_enterprise_abstractstore.html">8.
+ Non-Relational Stores
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="ref_guide_caching.html">10.
+ Caching
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache">1.
+ Data Cache
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_conf">1.1.
+ Data Cache Configuration
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_data_cache">1.1.1.
+ openjpa.DataCache Configuration
+ </a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_shared_cache_mode_integration">1.1.2.
+ Integration with JPA standard shared cache mode
+ </a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_distribution">1.1.3. Distributing instances across cache partitions</a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_use">1.2.
+ Data Cache Usage
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_use_JPA">1.2.1. Using the JPA standard Cache interface</a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_use_openJPA">1.2.2. Using the OpenJPA StoreCache extensions</a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_statistics">1.3.
+ Cache Statistics
+ </a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_query">1.4.
+ Query Cache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_extension">1.5.
+ Cache Extension
+ </a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#ref_guide_cache_notes">1.6.
+ Important Notes
+ </a></span></dt><dt><span class="section"><a href="ref_guide_caching.html#datastore_cache_issues">1.7.
+ Known Issues and Limitations
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_cache_querycomp.html">2.
+ Query Compilation Cache
+ </a></span></dt><dt><span class="section"><a href="ref_guide_cache_querysql.html">3. Prepared SQL Cache</a></span></dt></dl></dd><dt><span class="chapter"><a href="ref_guide_encryption.html">11.
+ Encryption Provider
+ </a></span></dt><dt><span class="chapter"><a href="ref_guide_remote.html">12.
+ Remote and Offline Operation
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_remote.html#ref_guide_detach">1.
+ Detach and Attach
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_remote.html#ref_guide_detach_behavior">1.1.
+ Detach Behavior
+ </a></span></dt><dt><span class="section"><a href="ref_guide_remote.html#ref_guide_attach_behavior">1.2.
+ Attach Behavior
+ </a></span></dt><dt><span class="section"><a href="ref_guide_remote.html#ref_guide_detach_graph">1.3.
+ Defining the Detached Object Graph
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_remote.html#ref_guide_detach_state">1.3.1.
+ Detached State
+ </a></span></dt><dt><span class="section"><a href="ref_guide_remote.html#ref_guide_detach_field">1.3.2.
+ Detached State Field
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="ref_guide_event.html">2.
+ Remote Event Notification Framework
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_event.html#ref_guide_event_conf">2.1.
+ Remote Commit Provider Configuration
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_event.html#ref_guide_event_conf_jms">2.1.1.
+ JMS
+ </a></span></dt><dt><span class="section"><a href="ref_guide_event.html#ref_guide_event_conf_tcp">2.1.2.
+ TCP
+ </a></span></dt><dt><span class="section"><a href="ref_guide_event.html#ref_guide_event_conf_common">2.1.3.
+ Common Properties
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_event.html#ref_guide_event_customization">2.2.
+ Customization
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_slice.html">13.
+ Slice: Distributed Persistence
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_slice.html#slice_overview">1. Overview</a></span></dt><dt><span class="section"><a href="features_and_limitations.html">2. Salient Features</a></span></dt><dd><dl><dt><span class="section"><a href="features_and_limitations.html#d5e17150">2.1. Transparency</a></span></dt><dt><span class="section"><a href="features_and_limitations.html#d5e17156">2.2. Scaling</a></span></dt><dt><span class="section"><a href="features_and [...]
+ Third Party Integration
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_ant">1.
+ Apache Ant
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_conf">1.1.
+ Common Ant Configuration Options
+ </a></span></dt><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_enhance">1.2.
+ Enhancer Ant Task
+ </a></span></dt><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_appidtool">1.3.
+ Application Identity Tool Ant Task
+ </a></span></dt><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_mappingtool">1.4.
+ Mapping Tool Ant Task
+ </a></span></dt><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_revmappingtool">1.5.
+ Reverse Mapping Tool Ant Task
+ </a></span></dt><dt><span class="section"><a href="ref_guide_integration.html#ref_guide_integration_schematool">1.6.
+ Schema Tool Ant Task
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_integration_dbcp.html">2.
+ Apache Commons DBCP
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_integration_dbcp.html#ref_guide_integration_dbcp_conf">2.1.
+ Apache Commons DBCP Configuration Options
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ref_guide_optimization.html">15.
+ Optimization Guidelines
+ </a></span></dt><dt><span class="chapter"><a href="ref_guide_instrumentation.html">16.
+ Instrumentation
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_instrumentation.html#ref_guide_instrumentation_config">1.
+ Configuration
+ </a></span></dt><dd><dl><dt><span class="section"><a href="ref_guide_instrumentation.html#ref_guide_instrumentation_config_jmx">1.1.
+ JMX Platform MBean Enablement
+ </a></span></dt></dl></dd><dt><span class="section"><a href="ref_guide_instrumentation_custom.html">2.
+ Custom Providers and Instruments
+ </a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="appendices.html">4. Appendices</a></span></dt><dd><dl><dt><span class="appendix"><a href="jpa_resources.html">1.
+ JPA Resources
+ </a></span></dt><dt><span class="appendix"><a href="supported_databases.html">2.
+ Supported Databases
+ </a></span></dt><dd><dl><dt><span class="section"><a href="supported_databases.html#dbappendix">1.
+ Overview
+ </a></span></dt><dt><span class="section"><a href="dbsupport.html">2.
+ Verified Database Matrix
+ </a></span></dt><dt><span class="section"><a href="dbcompatible.html">3.
+ Compatible Database Matrix
+ </a></span></dt><dt><span class="section"><a href="dbunverified.html">4.
+ Unverified Database Matrix
+ </a></span></dt><dt><span class="section"><a href="dbsupport_derby.html">5.
+ Apache Derby
+ </a></span></dt><dt><span class="section"><a href="dbsupport_interbase.html">6.
+ Borland Interbase
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_interbase.html#dbsupport_interbase_issues">6.1.
+ Known issues with Interbase
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_jdatastore.html">7.
+ JDataStore
+ </a></span></dt><dt><span class="section"><a href="dbsupport_db2.html">8.
+ IBM DB2
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_db2.html#dbsupport_db2_issues">8.1.
+ Known issues with DB2
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_empress.html">9.
+ Empress
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_empress.html#dbsupport_empress_issues">9.1.
+ Known issues with Empress
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_h2.html">10.
+ H2 Database Engine
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_h2.html#dbsupport_h2_issues">10.1.
+ Known issues with H2 Database Engine
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_hypersonic.html">11.
+ Hypersonic
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_hypersonic.html#dbsupport_hypersonic_issues">11.1.
+ Known issues with Hypersonic
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_firebird.html">12.
+ Firebird
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_firebird.html#dbsupport_firebird_issues">12.1.
+ Known issues with Firebird
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_informix.html">13.
+ Informix
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_informix.html#dbsupport_informix_issues">13.1.
+ Known issues with Informix
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_ingres.html">14.
+ Ingres Database
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_ingres.html#dbsupport_ingres_issues">14.1.
+ Known issues with Ingres
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_intersystems_cache.html">15.
+ InterSystems Cache
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_intersystems_cache.html#dbsupport_intersystems_cache_issues">15.1.
+ Known issues with InterSystems Cache
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_access.html">16.
+ Microsoft Access
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_access.html#dbsupport_access_issues">16.1.
+ Known issues with Microsoft Access
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_sqlserver.html">17.
+ Microsoft SQL Server
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_sqlserver.html#dbsupport_sqlserver_issues">17.1.
+ Known issues with SQL Server
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_foxpro.html">18.
+ Microsoft FoxPro
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_foxpro.html#dbsupport_foxpro_issues">18.1.
+ Known issues with Microsoft FoxPro
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_mysql.html">19.
+ MySQL
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_mysql.html#dbsupport_mysql_query_hints">19.1.
+ Using Query Hints with MySQL
+ </a></span></dt><dt><span class="section"><a href="dbsupport_mysql.html#dbsupport_mysql_issues">19.2.
+ Known issues with MySQL
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_mariadb.html">20.
+ MariaDB
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_mariadb.html#dbsupport_mariadb_issues">20.1.
+ Known issues with MariaDB
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_oracle.html">21.
+ Oracle
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_query_hints">21.1.
+ Using Query Hints with Oracle
+ </a></span></dt><dt><span class="section"><a href="dbsupport_oracle.html#dbsupport_oracle_issues">21.2.
+ Known issues with Oracle
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_pointbase.html">22.
+ Pointbase
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_pointbase.html#dbsupport_pointbase_issues">22.1.
+ Known issues with Pointbase
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_postgresql.html">23.
+ PostgreSQL
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_postgresql.html#dbsupport_postgresql_issues">23.1.
+ Known issues with PostgreSQL
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_soliddb.html">24.
+ IBM solidDB
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_table_types">24.1.
+ M-type tables vs. D-type tables
+ </a></span></dt><dt><span class="section"><a href="dbsupport_soliddb.html#dbsupport_soliddb_concurrency_control">24.2.
+ Concurrency control mechanism
+ </a></span></dt></dl></dd><dt><span class="section"><a href="dbsupport_sybase.html">25.
+ Sybase Adaptive Server
+ </a></span></dt><dd><dl><dt><span class="section"><a href="dbsupport_sybase.html#dbsupport_sybase_issues">25.1.
+ Known issues with Sybase
+ </a></span></dt></dl></dd></dl></dd><dt><span class="appendix"><a href="migration_considerations.html">3.
+ Migration Considerations
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#jpa_2.0">1.
+ OpenJPA 2.0.0
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#jpa_2.0_incompatibilities">1.1.
+ Incompatibilities
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#getProperties">1.1.1.
+ getProperties()
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#migration_detach_behavior">1.1.2.
+ Detach Behavior
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#private_persistent_properties">1.1.3.
+ Use of private persistent properties
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#setParameter">1.1.4.
+ Query.setParameter()
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#serialization">1.1.5.
+ Serialization of Entities
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#QuerySQLCache">1.1.6.
+ openjpa.jdbc.QuerySQLCache
+ </a></span></dt></dl></dd><dt><span class="section"><a href="migration_considerations.html#Disabling AutoOff Collection Tracking">1.2.
+ Disabling AutoOff Collection Tracking
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#internal_differences">1.3.
+ Internal Behavioral Differences
+ </a></span></dt><dd><dl><dt><span class="section"><a href="migration_considerations.html#prePostUpdate">1.3.1.
+ PreUpdate/PostUpdate Life Cycle Callbacks
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#createemf">1.3.2.
+ createEntityManagerFactory Exceptions
+ </a></span></dt><dt><span class="section"><a href="migration_considerations.html#querycache">1.3.3.
+ openjpa.QueryCache default
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_2.2.html">2.
+ OpenJPA 2.2.0
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_incompatibilities">2.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_allocationSize">2.1.1.
+ allocationSize Property of Sequence Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_metamodelArrays">2.1.2.
+ MetaModel Attributes for Arrays
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_SupportsSetClob">2.1.3.
+ supportsSetClob Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_UseNativeSequenceCache">2.1.4.
+ useNativeSequenceCache Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_cascadePersist">2.1.5.
+ Cascade persist behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_LifecycleEventManager">2.1.6.
+ Life Cycle Event Manager Callback Behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_sharedCacheMode">2.1.7.
+ shared-cache-mode Property
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_2.3.html">3.
+ OpenJPA 2.3.0
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_incompatibilities">3.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_MappingTool">3.1.1.
+ MappingTool Behavior for DB2 and Derby
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_RequiresSearchStringEscapeForLike">3.1.2.
+ RequiresSearchStringEscapeForLike DBDictionary Property
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#ReturnNullOnEmptyAggregateResult">3.1.3.
+ Return value of aggregate functions in SELECT clause
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_3.2.html">4. OpenJPA 3.2.0</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_incompatibilities">4.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_SumDouble">4.1.1. SUM now always returns Double</a></span></dt><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_InvalidColumnNames">4.1.2. Invalid Column Name Changes< [...]
+ Persistence Mechanisms
+ </a></dt><dt>10.1. <a href="jpa_overview_query.html#d5e3411">
+ Interaction of ReadLockMode hint and LockManager
+ </a></dt><dt>2.1. <a href="ref_guide_conf_openjpa.html#d5e7109">
+ Standard JPA Properties and OpenJPA equivalents
+ </a></dt><dt>4.1. <a href="ref_guide_dbsetup_dbsupport.html#d5e11741">
+ Default delimiters for delimited identifiers
+ </a></dt><dt>4.2. <a href="ref_guide_dbsetup_retain.html#d5e11910">
+ OpenJPA Automatic Flush Behavior
+ </a></dt><dt>5.1. <a href="ref_guide_pc_scos.html#d5e12984">
+ Externalizer Options
+ </a></dt><dt>5.2. <a href="ref_guide_pc_scos.html#d5e13021">
+ Factory Options
+ </a></dt><dt>10.1. <a href="ref_guide_caching.html#d5e16289">
+ Data access methods
+ </a></dt><dt>10.2. <a href="ref_guide_cache_querycomp.html#d5e16680">
+ Pre-defined aliases
+ </a></dt><dt>10.3. <a href="ref_guide_cache_querysql.html#d5e16734">
+ Pre-defined aliases
+ </a></dt><dt>15.1. <a href="ref_guide_optimization.html#d5e17583">
+ Optimization Guidelines
+ </a></dt><dt>2.1. <a href="dbsupport.html#d5e17908">
+ Supported Databases and JDBC Drivers
+ </a></dt><dt>2.2. <a href="dbcompatible.html#d5e17998">
+ Compatible Databases and JDBC Drivers
+ </a></dt><dt>2.3. <a href="dbunverified.html#d5e18136">
+ Unverified Databases and JDBC Drivers
+ </a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>3.1. <a href="jpa_overview_arch.html#jpa_overview_arch_interact_outside">
+ Interaction of Interfaces Outside Container
+ </a></dt><dt>3.2. <a href="jpa_overview_arch.html#jpa_overview_arch_interact_inside">
+ Interaction of Interfaces Inside Container
+ </a></dt><dt>4.1. <a href="jpa_overview_pc.html#jpa_overview_pc_pcclass">
+ Persistent Class
+ </a></dt><dt>4.2. <a href="jpa_overview_pc_identity.html#jpa_overview_pc_identity_appidcode">
+ Identity Class
+ </a></dt><dt>5.1. <a href="jpa_overview_meta.html#jpa_overview_meta_classlisting">
+ Class Metadata
+ </a></dt><dt>5.2. <a href="jpa_overview_meta_complete.html#jpa_overview_meta_complete_ex">
+ Complete Metadata
+ </a></dt><dt>6.1. <a href="jpa_overview_persistence.html#jpa_overview_persistence_xmlex">
+ persistence.xml
+ </a></dt><dt>6.2. <a href="jpa_overview_persistence_use.html#jpa_overview_persistence_getemfactory">
+ Obtaining an EntityManagerFactory
+ </a></dt><dt>7.1. <a href="jpa_overview_emfactory_perscontext.html#jpa_overview_emfactory_perscontext_transex">
+ Behavior of Transaction Persistence Context
+ </a></dt><dt>7.2. <a href="jpa_overview_emfactory_perscontext.html#jpa_overview_emfactory_perscontext_extendex">
+ Behavior of Extended Persistence Context
+ </a></dt><dt>8.1. <a href="jpa_overview_em_lifeexamples.html#jpa_overview_em_lifecycle_persist">
+ Persisting Objects
+ </a></dt><dt>8.2. <a href="jpa_overview_em_lifeexamples.html#jpa_overview_em_lifecycle_update">
+ Updating Objects
+ </a></dt><dt>8.3. <a href="jpa_overview_em_lifeexamples.html#jpa_overview_em_lifecycle_delete">
+ Removing Objects
+ </a></dt><dt>8.4. <a href="jpa_overview_em_lifeexamples.html#jpa_overview_em_detachex">
+ Detaching and Merging
+ </a></dt><dt>9.1. <a href="jpa_overview_trans_local.html#jpa_overview_trans_group">
+ Grouping Operations with Transactions
+ </a></dt><dt>10.1. <a href="jpa_overview_query.html#jpa_query_hint1">
+ Query Hints
+ </a></dt><dt>10.2. <a href="jpa_overview_query.html#jpa_query_hint2">
+ Named Query using Hints
+ </a></dt><dt>10.3. <a href="jpa_overview_query.html#multi-hints-example">
+ Setting Multiple Similar Query Hints
+ </a></dt><dt>10.4. <a href="jpa_overview_query.html#jpa_overview_query_deleteex">
+ Delete by Query
+ </a></dt><dt>10.5. <a href="jpa_overview_query.html#jpa_overview_query_updateex">
+ Update by Query
+ </a></dt><dt>12.1. <a href="jpa_overview_sqlquery.html#jpa_overview_sqlquery_createex">
+ Creating a SQL Query
+ </a></dt><dt>12.2. <a href="jpa_overview_sqlquery_obj.html#jpa_overview_sqlquery_objex">
+ Retrieving Persistent Objects
+ </a></dt><dt>12.3. <a href="jpa_overview_sqlquery_obj.html#jpa_overview_sqlquery_obj_paramex">
+ SQL Query Parameters
+ </a></dt><dt>13.1. <a href="jpa_overview_mapping.html#jpa_overview_mapping_classex">
+ Mapping Classes
+ </a></dt><dt>13.2. <a href="jpa_overview_mapping_unq.html#jpa_overview_mapping_unq_attrex">
+ Defining a Unique Constraint
+ </a></dt><dt>13.3. <a href="jpa_overview_mapping_id.html#jpa_overview_mapping_identityex">
+ Identity Mapping
+ </a></dt><dt>13.4. <a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequenceex">
+ Generator Mapping
+ </a></dt><dt>13.5. <a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_singleex">
+ Single Table Mapping
+ </a></dt><dt>13.6. <a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joinedex">
+ Joined Subclass Tables
+ </a></dt><dt>13.7. <a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpcex">
+ Table Per Class Mapping
+ </a></dt><dt>13.8. <a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_togetherex">
+ Inheritance Mapping
+ </a></dt><dt>13.9. <a href="jpa_overview_mapping_discrim.html#jpa_overview_mapping_discrimex">
+ Discriminator Mapping
+ </a></dt><dt>13.10. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_basicex">
+ Basic Field Mapping
+ </a></dt><dt>13.11. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_secondaryex">
+ Secondary Table Field Mapping
+ </a></dt><dt>13.12. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_embedex">
+ Embedded Field Mapping
+ </a></dt><dt>13.13. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_joined_overex">
+ Mapping Mapped Superclass Field
+ </a></dt><dt>13.14. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_relex">
+ Direct Relation Field Mapping
+ </a></dt><dt>13.15. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_assoccollex">
+ Join Table Mapping
+ </a></dt><dt>13.16. <a href="jpa_overview_mapping_field.html#jpa_overview_mapping_mapex">
+ Join Table Map Mapping
+ </a></dt><dt>13.17. <a href="jpa_overview_mapping_full.html#jpa_overview_mapping_fullex">
+ Full Entity Mappings
+ </a></dt><dt>2.1. <a href="ref_guide_conf_devtools.html#ref_guide_conf_devtools_format_ex">
+ Code Formatting with the Application Id Tool
+ </a></dt><dt>3.1. <a href="ref_guide_logging_openjpa.html#ref_guide_logging_openjpa_std_ex">
+ Standard OpenJPA Log Configuration
+ </a></dt><dt>3.2. <a href="ref_guide_logging_openjpa.html#ref_guide_logging_openjpa_sql_ex">
+ Standard OpenJPA Log Configuration + All SQL Statements
+ </a></dt><dt>3.3. <a href="ref_guide_logging_openjpa.html#ref_guide_logging_openjpa_file">
+ Logging to a File
+ </a></dt><dt>3.4. <a href="ref_guide_logging_log4j.html#ref_guide_logging_log4j_ex">
+ Standard Log4J Logging
+ </a></dt><dt>3.5. <a href="ref_guide_logging_commons.html#ref_guide_logging_jdk14_propfile">
+ JDK Log Properties
+ </a></dt><dt>3.6. <a href="ref_guide_logging_custom.html#ref_guide_logging_custom_ex">
+ Custom Logging Class
+ </a></dt><dt>4.1. <a href="ref_guide_dbsetup.html#ref_guide_dbsetup_builtin_ex">
+ Properties for the OpenJPA DataSource
+ </a></dt><dt>4.2. <a href="ref_guide_dbsetup_thirdparty.html#ref_guide_dbsetup_thirdparty_ex">
+ Properties File for a Third-Party DataSource
+ </a></dt><dt>4.3. <a href="ref_guide_dbsetup_thirdparty.html#ref_guide_enterprise_xa_conf_ex">
+ Managed DataSource Configuration
+ </a></dt><dt>4.4. <a href="ref_guide_dbsetup_thirdparty.html#d5e9933">
+ Setting DataSource at Runtime
+ </a></dt><dt>4.5. <a href="ref_guide_dbsetup_sqlconn.html#ref_guide_dbsetup_conn_jpa">
+ Using the EntityManager's Connection
+ </a></dt><dt>4.6. <a href="ref_guide_dbsetup_sqlconn.html#ref_guide_dbsetup_conn_from_factory_jpa">
+ Using the EntityManagerFactory's DataSource
+ </a></dt><dt>4.7. <a href="ref_guide_dbsetup_dbsupport.html#ref_guide_dbsetup_dbdict">
+ Specifying a DBDictionary
+ </a></dt><dt>4.8. <a href="ref_guide_dbsetup_isolation.html#ref_guide_dbsetup_isoex">
+ Specifying a Transaction Isolation
+ </a></dt><dt>4.9. <a href="ref_guide_dbsetup_sql92.html#ref_guide_dbsetup_sql92_conf">
+ Specifying the Join Syntax Default
+ </a></dt><dt>4.10. <a href="ref_guide_dbsetup_sql92.html#ref_guide_dbsetup_sql92_fetch">
+ Specifying the Join Syntax at Runtime
+ </a></dt><dt>4.11. <a href="ref_guide_dbsetup_retain.html#ref_guide_dbsetup_sql92_retain_conf">
+ Specifying Connection Usage Defaults
+ </a></dt><dt>4.12. <a href="ref_guide_dbsetup_retain.html#ref_guide_dbsetup_sql92_retain_runtime">
+ Specifying Connection Usage at Runtime
+ </a></dt><dt>4.13. <a href="ref_guide_dbsetup_stmtbatch.html#ref_guide_dbsetup_stmtbatch_exmple1">
+ Enable SQL statement batching
+ </a></dt><dt>4.14. <a href="ref_guide_dbsetup_stmtbatch.html#ref_guide_dbsetup_stmtbatch_exmple2">
+ Disable SQL statement batching
+ </a></dt><dt>4.15. <a href="ref_guide_dbsetup_stmtbatch.html#ref_guide_dbsetup_stmtbatch_exmple3">
+ Plug-in custom statement batching implementation
+ </a></dt><dt>4.16. <a href="ref_guide_dbsetup_lrs.html#ref_guide_dbsetup_lrs_def">
+ Specifying Result Set Defaults
+ </a></dt><dt>4.17. <a href="ref_guide_dbsetup_lrs.html#ref_guide_dbsetup_lrs_runtime">
+ Specifying Result Set Behavior at Runtime
+ </a></dt><dt>4.18. <a href="ref_guide_schema_schematool.html#ref_guide_schema_schematool_create">
+ Schema Creation
+ </a></dt><dt>4.19. <a href="ref_guide_schema_schematool.html#ref_guide_schema_schematool_script">
+ SQL Scripting
+ </a></dt><dt>4.20. <a href="ref_guide_schema_schematool.html#ref_guide_schema_schematool_table_cleanup">
+ Table Cleanup
+ </a></dt><dt>4.21. <a href="ref_guide_schema_schematool.html#ref_guide_schema_schematool_drop">
+ Schema Drop
+ </a></dt><dt>4.22. <a href="ref_guide_schema_schematool.html#ref_guide_schema_schematool_reflect">
+ Schema Reflection
+ </a></dt><dt>4.23. <a href="ref_guide_schema_xml.html#ref_guide_schema_xml_basic">
+ Basic Schema
+ </a></dt><dt>4.24. <a href="ref_guide_schema_xml.html#ref_guide_schema_xml_full">
+ Full Schema
+ </a></dt><dt>5.1. <a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_enhancer">
+ Using the OpenJPA Enhancer
+ </a></dt><dt>5.2. <a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_runtime_ex">
+ Using the OpenJPA Agent for Runtime Enhancement
+ </a></dt><dt>5.3. <a href="ref_guide_pc_enhance.html#ref_guide_pc_enhance_runtime_opt_ex">
+ Passing Options to the OpenJPA Agent
+ </a></dt><dt>5.4. <a href="ref_guide_pc_oid.html#ref_guide_pc_oid_datastoreentityex">
+ JPA Datastore Identity Metadata
+ </a></dt><dt>5.5. <a href="ref_guide_pc_oid.html#ref_guide_pc_oid_entitypk_simplefind">
+ Finding an Entity with an Entity Identity Field
+ </a></dt><dt>5.6. <a href="ref_guide_pc_oid.html#ref_guide_pc_oid_entitypk_idcls">
+ Id Class for Entity Identity Fields
+ </a></dt><dt>5.7. <a href="ref_guide_pc_oid.html#ref_guide_pc_oid_entitypk_embeded_id">
+ Embedded Id for Entity Identity Fields
+ </a></dt><dt>5.8. <a href="ref_guide_pc_oid.html#ref_guide_pc_appid_appidtool">
+ Using the Application Identity Tool
+ </a></dt><dt>5.9. <a href="ref_guide_inverses.html#ref_guide_inverses_logicalex">
+ Specifying Logical Inverses
+ </a></dt><dt>5.10. <a href="ref_guide_inverses.html#ref_guide_inversesex">
+ Enabling Managed Inverses
+ </a></dt><dt>5.11. <a href="ref_guide_inverses.html#ref_guide_inverses_logex">
+ Log Inconsistencies
+ </a></dt><dt>5.12. <a href="ref_guide_pc_scos.html#ref_guide_pc_scos_order_initialvals">
+ Using Initial Field Values
+ </a></dt><dt>5.13. <a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_lrs_itr">
+ Using a Large Result Set Iterator
+ </a></dt><dt>5.14. <a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_lrs_extension">
+ Marking a Large Result Set Field
+ </a></dt><dt>5.15. <a href="ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_custom_ex">
+ Configuring the Proxy Manager
+ </a></dt><dt>5.16. <a href="ref_guide_pc_scos.html#ref_guide_pc_externex">
+ Using Externalization
+ </a></dt><dt>5.17. <a href="ref_guide_pc_scos.html#ref_guide_pc_extern_queryex">
+ Querying Externalization Fields
+ </a></dt><dt>5.18. <a href="ref_guide_pc_scos.html#externvalues_ex">
+ Using External Values
+ </a></dt><dt>5.19. <a href="ref_guide_fetch.html#ref_guide_fetch_customgroups">
+ Custom Fetch Group Metadata
+ </a></dt><dt>5.20. <a href="ref_guide_fetch.html#ref_guide_fetch_loadgroup">
+ Load Fetch Group Metadata
+ </a></dt><dt>5.21. <a href="ref_guide_fetch.html#ref_guide_fetch_conf_query">
+ Using the FetchPlan
+ </a></dt><dt>5.22. <a href="ref_guide_fetch.html#ref_guide_fetch-conf_per_field">
+ Adding an Eager Field
+ </a></dt><dt>5.23. <a href="ref_guide_perfpack_eager.html#ref_guide_perfpack_eager_def">
+ Setting the Default Eager Fetch Mode
+ </a></dt><dt>5.24. <a href="ref_guide_perfpack_eager.html#ref_guide_perfpack_eager_runtime">
+ Setting the Eager Fetch Mode at Runtime
+ </a></dt><dt>6.1. <a href="ref_guide_meta.html#ref_guide_meta_stdfactoryex">
+ Setting a Standard Metadata Factory
+ </a></dt><dt>6.2. <a href="ref_guide_meta.html#ref_guide_meta_customfactoryex">
+ Setting a Custom Metadata Factory
+ </a></dt><dt>6.3. <a href="ref_guide_meta_repository.html#ref_guide_meta_repo">
+ Setting the Preload Property on Metadata Repository
+ </a></dt><dt>6.4. <a href="ref_guide_meta_ext.html#ref_guide_metaex">
+ OpenJPA Metadata Extensions
+ </a></dt><dt>6.5. <a href="ref_guide_meta_ext.html#ref_guide_schema_ex">
+ OpenJPA Schema Extensions
+ </a></dt><dt>7.1. <a href="ref_guide_mapping.html#ref_guide_mapping_mappingtool_typical">
+ Using the Mapping Tool
+ </a></dt><dt>7.2. <a href="ref_guide_mapping.html#ref_guide_mapping_mappingtool_buildschema">
+ Creating the Relational Schema from Mappings
+ </a></dt><dt>7.3. <a href="ref_guide_mapping.html#ref_guide_mapping_mappingtool_cleanup_tables">
+ Refreshing entire schema and cleaning out tables
+ </a></dt><dt>7.4. <a href="ref_guide_mapping.html#ref_guide_mapping_mappingtool_dropschema">
+ Dropping Mappings and Association Schema
+ </a></dt><dt>7.5. <a href="ref_guide_mapping.html#ref_guid_mapping_ddl_full_ddl">
+ Create DDL for Current Mappings
+ </a></dt><dt>7.6. <a href="ref_guide_mapping.html#ref_guid_mapping_ddl_part_ddl">
+ Create DDL to Update Database for Current Mappings
+ </a></dt><dt>7.7. <a href="ref_guide_mapping.html#ref_guide_mapping_synchex">
+ Configuring Runtime Forward Mapping
+ </a></dt><dt>7.8. <a href="ref_guide_pc_reverse.html#ref_guide_pc_reverse_schemagen">
+ Reflection with the Schema Tool
+ </a></dt><dt>7.9. <a href="ref_guide_pc_reverse.html#ref_guide_pc_reverse_reversemappingtool">
+ Using the Reverse Mapping Tool
+ </a></dt><dt>7.10. <a href="ref_guide_pc_reverse.html#ref_guide_pc_reverse_custom_ex">
+ Customizing Reverse Mapping with Properties
+ </a></dt><dt>7.11. <a href="ref_guide_mapping_middle.html#ref_guide_mapping_mappingtool_validate">
+ Validating Mappings
+ </a></dt><dt>7.12. <a href="ref_guide_mapping_defaults.html#ref_guide_mapping_defaults_conf">
+ Configuring Mapping Defaults
+ </a></dt><dt>7.13. <a href="ref_guide_mapping_factory.html#ref_guide_mapping_factory_jpa">
+ Standard JPA Configuration
+ </a></dt><dt>7.14. <a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_datastoreidex">
+ Datastore Identity Mapping
+ </a></dt><dt>7.15. <a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_embedex">
+ Overriding Complex Mappings
+ </a></dt><dt>7.16. <a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_onemanyex">
+ One-Sided One-Many Mapping
+ </a></dt><dt>7.17. <a href="ref_guide_mapping_jpa.html#ref_guide_mapping_jpa_map_stringrelmap">String Key, Entity Value Map Mapping</a></dt><dt>7.18. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_myaddress">
+ myaddress.xsd
+ </a></dt><dt>7.19. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_address">
+ Address.java
+ </a></dt><dt>7.20. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_usaaddress">
+ USAAddress.java
+ </a></dt><dt>7.21. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_canaddress">
+ CANAddress.java
+ </a></dt><dt>7.22. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_annorder">
+ Showing annotated Order entity with XML mapping strategy
+ </a></dt><dt>7.23. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_createorder">
+ Showing creation of Order entity having shipAddress mapped to XML column
+ </a></dt><dt>7.24. <a href="ref_guide_mapping_jpa.html#ref_guide_xmlmapping_jpqlquery">
+ Sample JPQL queries for XML column mapping
+ </a></dt><dt>7.25. <a href="ref_guide_mapping_jpa.html#ref_guide_streamsupport_example">
+ Annotated InputStream and Reader
+ </a></dt><dt>7.26. <a href="ref_guide_orphan.html#ref_guide_orphan_logex">
+ Custom Logging Orphaned Keys
+ </a></dt><dt>8.1. <a href="ref_guide_enterprise_trans.html#ref_guide_enterprise_transex">Configuring Transaction Manager Integration</a></dt><dt>9.1. <a href="ref_guide_runtime.html#ref_guide_runtime_pm_evictex">
+ Evict from Data Cache
+ </a></dt><dt>9.2. <a href="ref_guide_runtime_jpa.html#ref_guide_runtime_jpaextentex">
+ Using a JPA Extent
+ </a></dt><dt>9.3. <a href="ref_guide_locking.html#ref_guide_locking_default_conf">
+ Setting Default Lock Levels
+ </a></dt><dt>9.4. <a href="ref_guide_locking.html#ref_guide_locking_fetch">
+ Setting Runtime Lock Levels
+ </a></dt><dt>9.5. <a href="ref_guide_locking.html#ref_guide_locking_explicit">
+ Locking APIs
+ </a></dt><dt>9.6. <a href="ref_guide_locking.html#ref_guide_locking_disable">
+ Disabling Locking
+ </a></dt><dt>9.7. <a href="ref_guide_savepoints.html#ref_guide_savepoints_example">
+ Using Savepoints
+ </a></dt><dt>9.8. <a href="ref_guide_sequence.html#ref_guide_sequence_named">
+ Named Seq Sequence
+ </a></dt><dt>9.9. <a href="ref_guide_sequence.html#ref_guide_sequence_systemex">
+ System Sequence Configuration
+ </a></dt><dt>10.1. <a href="ref_guide_caching.html#ref_guide_cache_conf_sjvm">
+ Single-JVM Data Cache
+ </a></dt><dt>10.2. <a href="ref_guide_caching.html#ref_guide_cache_conf_lru">
+ Lru Cache
+ </a></dt><dt>10.3. <a href="ref_guide_caching.html#ref_guide_cache_conf_size">
+ Data Cache Size
+ </a></dt><dt>10.4. <a href="ref_guide_caching.html#ex_timeout_cache">
+ Data Cache Timeout
+ </a></dt><dt>10.5. <a href="ref_guide_caching.html#ex_exclude_types_from_cache">
+ Excluding entities
+ </a></dt><dt>10.6. <a href="ref_guide_caching.html#ex_include_types_in_cache">
+ Including entities
+ </a></dt><dt>10.7. <a href="ref_guide_caching.html#bulk_update_evict_cache">
+ Bulk updates and cache eviction
+ </a></dt><dt>10.8. <a href="ref_guide_caching.html#shared-cache-mode-none"></a></dt><dt>10.9. <a href="ref_guide_caching.html#shared-cache-mode-all"></a></dt><dt>10.10. <a href="ref_guide_caching.html#shared-cache-mode-enable-selective"></a></dt><dt>10.11. <a href="ref_guide_caching.html#ref_guide_cache_conf_partition">
+ Partitioned Data Cache
+ </a></dt><dt>10.12. <a href="ref_guide_caching.html#ref_guide_cache_access_jpa_standard">
+ Accessing the Cache
+ </a></dt><dt>10.13. <a href="ref_guide_caching.html#ref_guide_cache_use_jpa_standard">Using the jakarta.persistence.Cache interface</a></dt><dt>10.14. <a href="ref_guide_caching.html#ref_guide_cache_access_jpa">
+ Accessing the StoreCache
+ </a></dt><dt>10.15. <a href="ref_guide_caching.html#ref_guide_cache_use_jpa">
+ StoreCache Usage
+ </a></dt><dt>10.16. <a href="ref_guide_caching.html#ref_guide_cache_pmevict">
+ Automatic Data Cache Eviction
+ </a></dt><dt>10.17. <a href="ref_guide_caching.html#ref_guide_cache_enablestats">
+ Configuring CacheStatistics
+ </a></dt><dt>10.18. <a href="ref_guide_caching.html#ref_guide_cache_queryaccess">
+ Accessing the QueryResultCache
+ </a></dt><dt>10.19. <a href="ref_guide_caching.html#ref_guide_cache_cachesize">
+ Query Cache Size
+ </a></dt><dt>10.20. <a href="ref_guide_caching.html#ref_guide_cache_disablequery">
+ Disabling the Query Cache
+ </a></dt><dt>10.21. <a href="ref_guide_caching.html#ref_guide_cache_evictionPolicy">
+ Query Cache Eviction Policy
+ </a></dt><dt>10.22. <a href="ref_guide_caching.html#ref_guide_cache_query_classchange">
+ Evicting Queries
+ </a></dt><dt>10.23. <a href="ref_guide_caching.html#ref_guide_cache_query_pin">
+ Pinning, and Unpinning Query Results
+ </a></dt><dt>10.24. <a href="ref_guide_caching.html#ref_guide_cache_query_disable">
+ Disabling and Enabling Query Caching
+ </a></dt><dt>10.25. <a href="ref_guide_caching.html#ref_guide_cache_limits_extent">
+ Query Replaces Extent
+ </a></dt><dt>10.26. <a href="ref_guide_cache_querysql.html#jpa_caching_hardcode_jpql">Hardcoded Selection Value in JPQL Query</a></dt><dt>10.27. <a href="ref_guide_cache_querysql.html#jpa_caching_parametrize_jpql">Parameterized Selection Value in JPQL Query</a></dt><dt>12.1. <a href="ref_guide_remote.html#ref_guide_detach_graph_confex">
+ Configuring Detached State
+ </a></dt><dt>12.2. <a href="ref_guide_event.html#ref_guide_event_conf_jmsex">
+ JMS Remote Commit Provider Configuration
+ </a></dt><dt>12.3. <a href="ref_guide_event.html#ref_guide_event_conf_tcpex">
+ TCP Remote Commit Provider Configuration
+ </a></dt><dt>12.4. <a href="ref_guide_event.html#ref_guide_event_conf_jms2ex">
+ JMS Remote Commit Provider transmitting Persisted Object Ids
+ </a></dt><dt>14.1. <a href="ref_guide_integration.html#ref_guide_integration_conf_config">
+ Using the <config> Ant Tag
+ </a></dt><dt>14.2. <a href="ref_guide_integration.html#ref_guide_integration_props">
+ Using the Properties Attribute of the <config> Tag
+ </a></dt><dt>14.3. <a href="ref_guide_integration.html#ref_guide_integration_propsfile">
+ Using the PropertiesFile Attribute of the <config> Tag
+ </a></dt><dt>14.4. <a href="ref_guide_integration.html#ref_guide_integration_conf_classpath">
+ Using the <classpath> Ant Tag
+ </a></dt><dt>14.5. <a href="ref_guide_integration.html#ref_guide_integration_conf_codeformat">
+ Using the <codeformat> Ant Tag
+ </a></dt><dt>14.6. <a href="ref_guide_integration.html#ref_guide_integration_enhance_task">
+ Invoking the Enhancer from Ant
+ </a></dt><dt>14.7. <a href="ref_guide_integration.html#ref_guide_integration_appidtool_task">
+ Invoking the Application Identity Tool from Ant
+ </a></dt><dt>14.8. <a href="ref_guide_integration.html#ref_guide_integration_mappingtool_task">
+ Invoking the Mapping Tool from Ant
+ </a></dt><dt>14.9. <a href="ref_guide_integration.html#ref_guide_integration_revmappingtool_task">
+ Invoking the Reverse Mapping Tool from Ant
+ </a></dt><dt>14.10. <a href="ref_guide_integration.html#ref_guide_integration_schematool_task">
+ Invoking the Schema Tool from Ant
+ </a></dt><dt>14.11. <a href="ref_guide_integration_dbcp.html#ref_guide_integration_dbcp_derby">
+ Using Commons DBCP with Apache Derby
+ </a></dt><dt>2.1. <a href="dbsupport_derby.html#example_props_derby">
+ Example properties for Derby
+ </a></dt><dt>2.2. <a href="dbsupport_interbase.html#example_props_interbase">
+ Example properties for Interbase
+ </a></dt><dt>2.3. <a href="dbsupport_jdatastore.html#example_props_jdatastore">
+ Example properties for JDataStore
+ </a></dt><dt>2.4. <a href="dbsupport_db2.html#example_props_db2">
+ Example properties for IBM DB2
+ </a></dt><dt>2.5. <a href="dbsupport_empress.html#example_props_empress">
+ Example properties for Empress
+ </a></dt><dt>2.6. <a href="dbsupport_h2.html#example_props_h2">
+ Example properties for H2 Database Engine
+ </a></dt><dt>2.7. <a href="dbsupport_hypersonic.html#example_props_hypersonic">
+ Example properties for Hypersonic
+ </a></dt><dt>2.8. <a href="dbsupport_firebird.html#example_props_firebird">
+ Example properties for Firebird
+ </a></dt><dt>2.9. <a href="dbsupport_informix.html#example_props_informix">
+ Example properties for Informix Dynamic Server
+ </a></dt><dt>2.10. <a href="dbsupport_ingres.html#example_props_ingres">
+ Example properties for Ingres
+ </a></dt><dt>2.11. <a href="dbsupport_intersystems_cache.html#example_props_intersystems_cache">
+ Example properties for InterSystems Cache
+ </a></dt><dt>2.12. <a href="dbsupport_access.html#example_props_access">
+ Example properties for Microsoft Access
+ </a></dt><dt>2.13. <a href="dbsupport_sqlserver.html#example_props_sqlserver">
+ Example properties for Microsoft SQL Server
+ </a></dt><dt>2.14. <a href="dbsupport_foxpro.html#example_props_foxpro">
+ Example properties for Microsoft FoxPro
+ </a></dt><dt>2.15. <a href="dbsupport_mysql.html#example_props_mysql">
+ Example properties for MySQL
+ </a></dt><dt>2.16. <a href="dbsupport_mysql.html#dbsupport_mysql_query_hints_ex">
+ Using MySQL Hints
+ </a></dt><dt>2.17. <a href="dbsupport_mariadb.html#example_props_mariadb">
+ Example properties for MariaDB
+ </a></dt><dt>2.18. <a href="dbsupport_oracle.html#example_props_oracle">
+ Example properties for Oracle
+ </a></dt><dt>2.19. <a href="dbsupport_oracle.html#dbsupport_oracle_query_hints_ex">
+ Using Oracle Hints
+ </a></dt><dt>2.20. <a href="dbsupport_oracle.html#dbsupport_oracle_disable_batch_updates">
+ Property to disable statement batching for Oracle
+ </a></dt><dt>2.21. <a href="dbsupport_oracle.html#dbsupport_oracle_retain_connection">
+ Property to retain connection over the lifetime of the entity manager
+ </a></dt><dt>2.22. <a href="dbsupport_pointbase.html#example_props_pointbase">
+ Example properties for Pointbase
+ </a></dt><dt>2.23. <a href="dbsupport_postgresql.html#example_props_postgresql">
+ Example properties for PostgreSQL
+ </a></dt><dt>2.24. <a href="dbsupport_soliddb.html#example_props_soliddb">
+ Example properties for IBM solidDB
+ </a></dt><dt>2.25. <a href="dbsupport_sybase.html#example_props_sybase">
+ Example properties for Sybase
+ </a></dt></dl></div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="introduction.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Part 1. Introduction</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/introduction.html b/4.1.0/apache-openjpa/docs/introduction.html
new file mode 100644
index 000000000..1c01e5b91
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/introduction.html
@@ -0,0 +1,25 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Part 1. Introduction</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="prev" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="next" href="openjpa_intro.html" title="Chapter 1.  [...]
+ About
+ </a></span></dt><dt><span class="chapter"><a href="openjpa_legal.html">2.
+ Legal
+ </a></span></dt><dd><dl><dt><span class="section"><a href="openjpa_legal.html#openjpa_legal_license">1.
+ License
+ </a></span></dt><dt><span class="section"><a href="openjpa_legal_notice.html">2.
+ Notice
+ </a></span></dt><dt><span class="section"><a href="openjpa_legal_copyright.html">3.
+ Copyrights
+ </a></span></dt><dd><dl><dt><span class="section"><a href="openjpa_legal_copyright.html#openjpa_legal_copyright_apache">3.1. Apache</a></span></dt><dt><span class="section"><a href="openjpa_legal_copyright.html#openjpa_legal_copyright_sun">3.2. Sun</a></span></dt><dt><span class="section"><a href="openjpa_legal_copyright.html#openjpa_legal_copyright_other">3.3. Other</a></span></dt></dl></dd></dl></dd></dl></div>
+
+
+
+
+
+
+
+
+
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manual.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="openjpa_intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Apache OpenJPA 3.2 User's Guide </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="4 [...]
+ About
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/jpa_2.2.html b/4.1.0/apache-openjpa/docs/jpa_2.2.html
new file mode 100644
index 000000000..5227ff2ba
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/jpa_2.2.html
@@ -0,0 +1,207 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>2. OpenJPA 2.2.0</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="migration_considerations.html" title="Appendix 3. Migration Considerations"><link rel="prev" href="migration_considerations.html" title="Appendix 3. Migration Considerations"><link rel= [...]
+ OpenJPA 2.2.0
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="migration_considerations.html">Prev</a> </td><th width="60%" align="center">Appendix 3.
+ Migration Considerations
+ </th><td width="20%" align="right"> <a accesskey="n" href="jpa_2.3.html">Next</a></td></tr></table><hr></div><div class="section" id="jpa_2.2"><div class="titlepage"><div><div><h2 class="title" style="clear: both">2.
+ OpenJPA 2.2.0
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_incompatibilities">2.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_allocationSize">2.1.1.
+ allocationSize Property of Sequence Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_metamodelArrays">2.1.2.
+ MetaModel Attributes for Arrays
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_SupportsSetClob">2.1.3.
+ supportsSetClob Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_UseNativeSequenceCache">2.1.4.
+ useNativeSequenceCache Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_cascadePersist">2.1.5.
+ Cascade persist behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_LifecycleEventManager">2.1.6.
+ Life Cycle Event Manager Callback Behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_sharedCacheMode">2.1.7.
+ shared-cache-mode Property
+ </a></span></dt></dl></dd></dl></div>
+
+ <div class="section" id="jpa_2.2_incompatibilities"><div class="titlepage"><div><div><h3 class="title">2.1. Incompatibilities</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_allocationSize">2.1.1.
+ allocationSize Property of Sequence Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_metamodelArrays">2.1.2.
+ MetaModel Attributes for Arrays
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_SupportsSetClob">2.1.3.
+ supportsSetClob Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_UseNativeSequenceCache">2.1.4.
+ useNativeSequenceCache Property.
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_cascadePersist">2.1.5.
+ Cascade persist behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_LifecycleEventManager">2.1.6.
+ Life Cycle Event Manager Callback Behavior
+ </a></span></dt><dt><span class="section"><a href="jpa_2.2.html#jpa_2.2_sharedCacheMode">2.1.7.
+ shared-cache-mode Property
+ </a></span></dt></dl></div>
+
+ <p>
+ The following sections indicate changes that are incompatible
+ between OpenJPA 2.1.x releases and the 2.2.0 release.
+ </p>
+ <div class="section" id="jpa_2.2_allocationSize"><div class="titlepage"><div><div><h4 class="title">2.1.1.
+ allocationSize Property of Sequence Generator
+ </h4></div></div></div>
+
+
+ <p>
+ In previous releases, specifying the <code class="literal">allocationSize</code> property of
+ <a class="link" href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_seqgen" title="5.1. Sequence Generator">sequence generator</a>
+ affected only sequence definition in the database. During
+ schema creation, the <code class="literal">INCREMENT BY</code> clause of
+ <code class="literal">CREATE SEQUENCE</code> statement always
+ had a value of 1 and on DB2, Oracle and PostgreSQL databases a <code class="literal">CACHE</code> clause
+ was added with the value of <code class="literal">allocationSize</code> property. Such a statement caused
+ sequence values being cached in the database. Starting with OpenJPA 2.2.0,
+ sequence values are cached in the jvm memory and the <code class="literal">allocationSize</code>
+ property determines size of that cache. The <code class="literal">CACHE</code> clause is no longer used,
+ instead the <code class="literal">INCREMENT BY</code> clause gets its value equal to the
+ <code class="literal">allocationSize</code> property. Such a strategy reduces the number of database roundtrips
+ required for retrieving sequence values considerably.
+ </p>
+ <p>
+ In order for the existing applications to work with OpenJPA
+ 2.2.0, you have to manually recreate or redefine sequences, specifying
+ the correct <code class="literal">INCREMENT BY</code> value and, possibly, correct initial sequence value.
+ Note that the default value of the <code class="literal">allocationSize</code> property is 50 and that
+ value is used if the property is not specified.
+ </p>
+ <p>
+ The requirement for sequence modification applies to all databases that support sequences, regardless of
+ the <code class="literal">CACHE</code> clause being supported. The only exception is Firebird database -
+ since with this database the increment step is determined during sequence
+ value fetch, no migration activity is needed.
+ </p>
+ <p>
+ To maintain the old behavior of sequence generator in OpenJPA 2.2.0, you can:
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+ Set the <code class="literal">allocationSize</code> property value to 1.
+ </p>
+ </li><li class="listitem">
+ <p>
+ Additionally, if the <code class="literal">CACHE</code> clause has to be emitted in sequence definition,
+ this can be accomplished by overriding the
+ <a class="ulink" href="../../apidocs/org/apache/openjpa/jdbc/sql/DBDictionary.html#getCreateSequenceSQL(org.apache.openjpa.jdbc.schema.Sequence)" target="_top">
+ <code class="methodname">DBDictionary.getCreateSequenceSQL</code></a> method.
+ </p>
+ </li></ul></div><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_2.2_metamodelArrays"><div class="titlepage"><div><div><h4 class="title">2.1.2.
+ MetaModel Attributes for Arrays
+ </h4></div></div></div>
+
+
+ <p>
+ In previous releases OpenJPA's MetaModel implementation generated a ListAttribute for every array. This behavior is correct if the array
+ is annotated as a PersistentCollection, but not correct for un-annotated arrays (e.g. byte[], char[]). In OpenJPA 2.2.0 this behavior was corrected
+ so that arrays which are not stored as PersistentCollections will use a SingularAttribute instead of a ListAttribute.
+ </p>
+ <p>
+ If your application uses the MetaModel API and your entities contain arrays of any of the following types: byte[], Byte[], char[], Character[] and
+ do not use the @PersistentCollection annotation with those fields you will need to update your application to use OpenJPA 2.2.0.
+ </p>
+ <p> In order for the existing applications to work with OpenJPA you may:
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p> Regenerate the canonical metamodel classes</p>
+ </li><li class="listitem">
+ <p> Set the Compatibility property <code class="literal">UseListAttributeForArrays</code> to <code class="literal">true</code> in persistence.xml
+ </p><pre class="programlisting"> <property name="openjpa.Compatibility" value="UseListAttributeForArrays=true"/></pre><p>
+ </p>
+ </li></ul></div><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_2.2_SupportsSetClob"><div class="titlepage"><div><div><h4 class="title">2.1.3.
+ supportsSetClob Property.
+ </h4></div></div></div>
+
+
+ <p>
+ In OpenJPA 2.2.0, code was added to allow the setting of CLOB or XML data larger than 4000 bytes. This functionality
+ was eventually back ported to previous releases, and enabled by the <code class="literal">supportsSetClob</code> property on the OracleDictionary. Setting this property
+ has no effect in 2.2.0 and later releases and any occurrence of it should be removed.
+ </p>
+ </div>
+ <div class="section" id="jpa_2.2_UseNativeSequenceCache"><div class="titlepage"><div><div><h4 class="title">2.1.4.
+ useNativeSequenceCache Property.
+ </h4></div></div></div>
+
+
+ <p>
+ In OpenJPA 2.2.0, code was added which changed the way sequences were generated, please see
+ <a class="xref" href="jpa_2.2.html#jpa_2.2_allocationSize" title="2.1.1. allocationSize Property of Sequence Generator">Section 2.1.1, “
+ allocationSize Property of Sequence Generator
+ ”</a> for details. This functionality was eventually back ported
+ to previous releases, and enabled by the <code class="literal">useNativeSequenceCache</code> property on the DBDictionary. Setting this property
+ has no effect in 2.2.0 and later releases and any occurrence of it should be removed. If previous behavior is
+ desired (i.e. <code class="literal">useNativeSequenceCache=true</code>), please see the details described in section
+ <a class="xref" href="jpa_2.2.html#jpa_2.2_allocationSize" title="2.1.1. allocationSize Property of Sequence Generator">Section 2.1.1, “
+ allocationSize Property of Sequence Generator
+ ”</a>.
+ </p>
+ </div>
+ <div class="section" id="jpa_2.2_cascadePersist"><div class="titlepage"><div><div><h4 class="title">2.1.5.
+ Cascade persist behavior
+ </h4></div></div></div>
+
+
+ <p>
+ In previous releases, OpenJPA would check the database for the
+ existence of the related Entity before persisting the relationship to
+ that Entity. This resulted in an extra Select being sent to the
+ database. In 2.2.0, code was added so that when cascading a persist to
+ a related Entity without persistence state, the persist (insert) will
+ happen without first checking the database. This may result in an
+ EntityExistsException if the related Entity already exists in the
+ database. To revert this behavior to the previous release, set the
+ value of the <code class="literal">openjpa.Compatibility</code>
+ property <code class="literal">CheckDatabaseForCascadePersistToDetachedEntity</code>
+ to <code class="literal">true</code>.
+ </p>
+ </div>
+ <div class="section" id="jpa_2.2_LifecycleEventManager"><div class="titlepage"><div><div><h4 class="title">2.1.6.
+ Life Cycle Event Manager Callback Behavior
+ </h4></div></div></div>
+
+
+ <p>
+ Life cycle event manager is used to manage entity's life cycle event callback.
+ In previous releases, Life cycle event manager is scoped to EntityManagerFactory.
+ This means listeners registered to an individual EntityManager may get life cycle
+ event callbacks for entity that it does not manage.
+ </p>
+ <p>
+ From 2.2.1 release, the default callback behavior of the life cycle event manager
+ is changed to scope to each EntityManager.
+ To revert this behavior to the previous release, set the
+ value of the <code class="literal">openjpa.Compatibility</code>
+ property <code class="literal">SingletonLifecycleEventManager</code>
+ to <code class="literal">true</code>.
+ </p>
+ </div>
+ <div class="section" id="jpa_2.2_sharedCacheMode"><div class="titlepage"><div><div><h4 class="title">2.1.7.
+ shared-cache-mode Property
+ </h4></div></div></div>
+
+
+ <p>
+ In the previous release, when the shared-cache-mode is enabled and the DataCache property is not set
+ or set to false, there will be no data caching.
+ </p>
+ <p>
+ From 2.2.2 release, the caching will be turned on if the shared-cache-mode is enabled. Please see the
+ details described in section <a class="xref" href="ref_guide_caching.html#ref_guide_shared_cache_mode_integration" title="1.1.2. Integration with JPA standard shared cache mode">Section 1.1.2, “
+ Integration with JPA standard shared cache mode
+ ”</a>.
+ </p>
+ </div>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="migration_considerations.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="migration_considerations.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jpa_2.3.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix 3.
+ Migration Considerations
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 3.
+ OpenJPA 2.3.0
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/jpa_2.3.html b/4.1.0/apache-openjpa/docs/jpa_2.3.html
new file mode 100644
index 000000000..7fed74305
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/jpa_2.3.html
@@ -0,0 +1,85 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>3. OpenJPA 2.3.0</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="migration_considerations.html" title="Appendix 3. Migration Considerations"><link rel="prev" href="jpa_2.2.html" title="2. OpenJPA 2.2.0"><link rel="next" href="jpa_3.2.html" title="4. [...]
+ OpenJPA 2.3.0
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="jpa_2.2.html">Prev</a> </td><th width="60%" align="center">Appendix 3.
+ Migration Considerations
+ </th><td width="20%" align="right"> <a accesskey="n" href="jpa_3.2.html">Next</a></td></tr></table><hr></div><div class="section" id="jpa_2.3"><div class="titlepage"><div><div><h2 class="title" style="clear: both">3.
+ OpenJPA 2.3.0
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_incompatibilities">3.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_MappingTool">3.1.1.
+ MappingTool Behavior for DB2 and Derby
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_RequiresSearchStringEscapeForLike">3.1.2.
+ RequiresSearchStringEscapeForLike DBDictionary Property
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#ReturnNullOnEmptyAggregateResult">3.1.3.
+ Return value of aggregate functions in SELECT clause
+ </a></span></dt></dl></dd></dl></div>
+
+ <div class="section" id="jpa_2.3_incompatibilities"><div class="titlepage"><div><div><h3 class="title">3.1. Incompatibilities</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_MappingTool">3.1.1.
+ MappingTool Behavior for DB2 and Derby
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#jpa_2.3_RequiresSearchStringEscapeForLike">3.1.2.
+ RequiresSearchStringEscapeForLike DBDictionary Property
+ </a></span></dt><dt><span class="section"><a href="jpa_2.3.html#ReturnNullOnEmptyAggregateResult">3.1.3.
+ Return value of aggregate functions in SELECT clause
+ </a></span></dt></dl></div>
+
+ <p>
+ The following sections indicate changes that are incompatible
+ between OpenJPA 2.2.x releases and the 2.3.0 release.
+ </p>
+ <div class="section" id="jpa_2.3_MappingTool"><div class="titlepage"><div><div><h4 class="title">3.1.1.
+ MappingTool Behavior for DB2 and Derby
+ </h4></div></div></div>
+
+ <p>
+ In previous releases, the MappingTool mapped <code class="literal">java.math.BigDecimal</code> fields to the database type
+ DOUBLE, and as such, ignored <code class="literal">column</code> and <code class="literal">precision</code> values that might have been specified via the
+ <code class="literal">jakarta.persistence.Column</code> annotation.
+ </p>
+ <p>
+ From the 2.3.0 release, <code class="literal">java.math.BigDecimal</code> fields are now mapped to the database type DECIMAL
+ and it is very likely that you will need to specify <code class="literal">column</code> and <code class="literal">precision</code> via
+ the <code class="literal">jakarta.persistence.Column</code> annotation.
+ </p>
+ </div>
+ <div class="section" id="jpa_2.3_RequiresSearchStringEscapeForLike"><div class="titlepage"><div><div><h4 class="title">3.1.2.
+ RequiresSearchStringEscapeForLike DBDictionary Property
+ </h4></div></div></div>
+
+
+ <p>
+ In previous releases, the default value for the property RequiresSearchStringEscapeForLike is true and caused the
+ unexpected escape clause appended to the SQL statement.
+ For example, user created a named query like this:
+ </p><pre class="programlisting"> SELECT o.computerName FROM CompUser o WHERE o.name LIKE ?</pre><p>
+ At run time the following query is generated:
+ </p><pre class="programlisting"> SELECT t0.computerName FROM CompUser t0 WHERE (t0.name LIKE ? ESCAPE '\')</pre><p>
+ ESCAPE '\' shouldn't be appended to the query.
+ </p>
+ <p>
+ From the 2.3.0 release, RequiresSearchStringEscapeForLike property is set to false by default. You can configure
+ RequiresSearchStringEscapeForLike property to be true if the old behavior is desired.
+ </p>
+ </div>
+ <div class="section" id="ReturnNullOnEmptyAggregateResult"><div class="titlepage"><div><div><h4 class="title">3.1.3.
+ Return value of aggregate functions in SELECT clause
+ </h4></div></div></div>
+
+
+ <p>
+ The JPA specification states "If SUM, AVG, MAX, or MIN is used, and there are no values to which the aggregate function can be
+ applied, the result of the aggregate function is NULL." Prior to this update, OpenJPA incorrectly returned 0 for SUM, AVG, MIN,
+ and MAX when a state field being aggregated is numeric. This behavior affects both JPQL and Criteria queries. With this update,
+ OpenJPA will return a null result value for these aggregate functions when a query returns no result.
+ </p>
+ <p>
+ To re-enable the prior behavior, you need to set the following persistence property in your persistence.xml or when
+ creating an EntityManagerFactory.
+ </p><pre class="programlisting">
+ <property name="openjpa.Compatibility" value="ReturnNullOnAggregateResult=false"/>
+ </pre><p>
+ </p>
+ </div>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="jpa_2.2.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="migration_considerations.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jpa_3.2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.
+ OpenJPA 2.2.0
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 4. OpenJPA 3.2.0</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/jpa_3.2.html b/4.1.0/apache-openjpa/docs/jpa_3.2.html
new file mode 100644
index 000000000..a152aa0e6
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/jpa_3.2.html
@@ -0,0 +1,77 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>4. OpenJPA 3.2.0</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="migration_considerations.html" title="Appendix 3. Migration Considerations"><link rel="prev" href="jpa_2.3.html" title="3. OpenJPA 2.3.0"></head><body bgcolor="white" text="black" link="#0000 [...]
+ Migration Considerations
+ </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="section" id="jpa_3.2"><div class="titlepage"><div><div><h2 class="title" style="clear: both">4. OpenJPA 3.2.0</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_incompatibilities">4.1. Incompatibilities</a></span></dt><dd><dl><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_SumDouble">4.1.1. SUM now always returns Double</a></span></ [...]
+
+ <div class="section" id="jpa_3.2_incompatibilities"><div class="titlepage"><div><div><h3 class="title">4.1. Incompatibilities</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_SumDouble">4.1.1. SUM now always returns Double</a></span></dt><dt><span class="section"><a href="jpa_3.2.html#jpa_3.2_InvalidColumnNames">4.1.2. Invalid Column Name Changes</a></span></dt><dt><span class="section"><a href="jpa_3.2.html#jpa_3 [...]
+
+ <p>
+ The following sections indicate changes that are incompatible
+ between OpenJPA 3.1.x releases and the 3.2.0 release.
+ </p>
+ <div class="section" id="jpa_3.2_SumDouble"><div class="titlepage"><div><div><h4 class="title">4.1.1. SUM now always returns Double</h4></div></div></div>
+
+ <p>
+ We did fix the SUM operation to always return <code class="classname">Double</code> as requested by the spec.
+ Previously we did return whatever Numeric the JDBC driver did serve, resulting in non portable code.
+ </p>
+ </div>
+ <div class="section" id="jpa_3.2_InvalidColumnNames"><div class="titlepage"><div><div><h4 class="title">4.1.2. Invalid Column Name Changes</h4></div></div></div>
+
+ <p>
+ We did review and update the list of invalid column names for most <code class="classname">DBDicationary</code>.
+ The list of tested reserved words got enriched with previously forbidden column names to avoid backward
+ incompatibility issues.
+ The list can ge retrieved and configured via
+ <a class="ulink" href="../../apidocs/org/apache/openjpa/jdbc/sql/DBDictionary.html#getInvalidColumnWordSet()" target="_top">
+ <code class="methodname">DBDictionary.getInvalidColumnWordSet</code></a>
+ </p>
+ </div>
+ <div class="section" id="jpa_3.2_HsqlMappingTool"><div class="titlepage"><div><div><h4 class="title">4.1.3. MappingTool Behavior for HSQLDB</h4></div></div></div>
+
+ <p>
+ There have been 2 changes for Hypersonic (HSQLDB).
+ We fixed a bug which did cause <code class="classname">long</code> fields getting mapped to <code class="literal">INTEGER</code>
+ instead of <code class="literal">BIGINT</code>.
+ </p>
+ <p>
+ Java <code class="classname">double</code> fields previously got mapped to <code class="literal">NUMERIC</code> which
+ does lack fraction digits. Thus the value <code class="literal">7.3425343</code> got truncated to <code class="literal">7</code>.
+ We now map <code class="classname">double</code> fields in Entities to <code class="literal">DOUBLE</code> SQL column types.
+ </p>
+ </div>
+ <div class="section" id="jpa_3.2_OracleTimestampPrecision"><div class="titlepage"><div><div><h4 class="title">4.1.4. Respect TIMESTAMP precision in Oracle</h4></div></div></div>
+
+ <p>
+ Due to a bug we did hardcoded round at 3 digits precision.
+ So we essentially only allowed millis, even on a TIMESTAMP(6) field.
+ The new code does respect the second fractions and now defaults to 6.
+ It should be compatible but it might behave very subtle different.
+ </p>
+ </div>
+ <div class="section" id="jpa_3.2_UnaryOps"><div class="titlepage"><div><div><h4 class="title">4.1.5. Unary Operations return types</h4></div></div></div>
+
+ <p>
+ Before OpenJPA-3.2.0 Unary Operations like <code class="literal">MIN</code>, <code class="literal">MAX</code>, <code class="literal">SUM</code>, etc
+ did return whatever type got returned by the JDBC driver. For certain column types this could also have been internal
+ classes of that very JDBC driver. E.g. a <code class="literal">SELECT MAX(a.someLocalDateField) ..</code> might have returned
+ an instance of types <code class="classname">com.oracle.jdbc....</code> or <code class="literal">com.microsoft.sqlserver...</code>, etc.
+ We now use the respective <a class="ulink" href="../../apidocs/org/apache/openjpa/jdbc/sql/DBDictionary.html" target="_top">
+ <code class="methodname">DBDictionary</code></a> to request the correct type from the <code class="classname">ResultSet</code>.
+ </p>
+ </div>
+ <div class="section" id="jpa_3.2_PostgreSqlQueryTimeout"><div class="titlepage"><div><div><h4 class="title">4.1.6. PostgreSQL now supports setQueryTimeOut</h4></div></div></div>
+
+ <p>
+ PostgreSQL does now support client side setQueryTimeout.
+ User might see this come alive and now return different when the situation occurs.
+ This flag is automatically enabled if running against PostgreSQL 10 or later.
+ It can also be configured manually via
+ <code class="literal">DBDictionary.supportsQueryTimeout</code>
+ </p>
+ </div>
+ </div>
+ </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="jpa_2.3.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="migration_considerations.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">3.
+ OpenJPA 2.3.0
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/jpa_langref.html b/4.1.0/apache-openjpa/docs/jpa_langref.html
new file mode 100644
index 000000000..a29285cd0
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/jpa_langref.html
@@ -0,0 +1,4101 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>2. JPQL Language Reference</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="jpa_overview_query.html" title="Chapter 10. JPA Query"><link rel="prev" href="jpa_overview_query.html" title="Chapter 10. JPA Query"><link rel="next" href="jpa_overview_criter [...]
+ JPQL Language Reference
+ </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="jpa_overview_query.html">Prev</a> </td><th width="60%" align="center">Chapter 10.
+ JPA Query
+ </th><td width="20%" align="right"> <a accesskey="n" href="jpa_overview_criteria.html">Next</a></td></tr></table><hr></div><div class="section" id="jpa_langref"><div class="titlepage"><div><div><h2 class="title" style="clear: both">2.
+ JPQL Language Reference
+ </h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_stmnttypes">2.1.
+ JPQL Statement Types
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select">2.1.1.
+ JPQL Select Statement
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk">2.1.2.
+ JPQL Update and Delete Statements
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schematypes">2.2.
+ JPQL Abstract Schema Types and Query Domains
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemanaming">2.2.1.
+ JPQL Entity Naming
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemaexample">2.2.2.
+ JPQL Schema Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fromclause">2.3.
+ JPQL FROM Clause and Navigational Declarations
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_identifiers">2.3.1.
+ JPQL FROM Identifiers
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_vars">2.3.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_range">2.3.3.
+ JPQL Range Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path">2.3.4.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_Joins">2.3.5.
+ JPQL Joins
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_inner_joins">2.3.5.1.
+ JPQL Inner Joins (Relationship Joins)
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_outer_joins">2.3.5.2.
+ JPQL Outer Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fetch_joins">2.3.5.3.
+ JPQL Fetch Joins
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_dec">2.3.6.
+ JPQL Collection Member Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_clause_and_sql">2.3.7.
+ JPQL FROM Clause and SQL
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_polymorph">2.3.8.
+ JPQL Polymorphism
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_where">2.4.
+ JPQL WHERE Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond">2.5.
+ JPQL Conditional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_lit">2.5.1.
+ JPQL Literals
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_idvar">2.5.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path_exp">2.5.3.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_input_params">2.5.4.
+ JPQL Input Parameters
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_pos_params">2.5.4.1.
+ JPQL Positional Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_named_params">2.5.4.2.
+ JPQL Named Parameters
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond_comp">2.5.5.
+ JPQL Conditional Expression Composition
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_operators">2.5.6.
+ JPQL Operators and Operator Precedence
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_comparison_expressions">2.5.7.
+ JPQL Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_between">2.5.8.
+ JPQL Between Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_in_expressions">2.5.9.
+ JPQL In Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_like">2.5.10.
+ JPQL Like Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null">2.5.11.
+ JPQL Null Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_empty_comp">2.5.12.
+ JPQL Empty Collection Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_member">2.5.13.
+ JPQL Collection Member Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_exists">2.5.14.
+ JPQL Exists Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_all_any">2.5.15.
+ JPQL All or Any Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_subqueries">2.5.16.
+ JPQL Subqueries
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_scalar_expressions">2.6.
+ JPQL Scalar Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_math_expressions">2.6.1.
+ Arithmetic Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_functional_expressions">2.6.2.
+ String, Arithmetic, and Datetime Functional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_string_fun">2.6.2.1.
+ JPQL String Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_arithmetic">2.6.2.2.
+ JPQL Arithmetic Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_datetime">2.6.2.3.
+ JPQL Datetime Functions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_case_expressions">2.6.3.
+ Case Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_entity_type_expressions">2.6.4.
+ Entity Type Expressions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_group">2.7.
+ JPQL GROUP BY, HAVING
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select_clause">2.8.
+ JPQL SELECT Clause
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_resulttype">2.8.1.
+ JPQL Result Type of the SELECT Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_constructor">2.8.2.
+ JPQL Constructor Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_select">2.8.3.
+ JPQL Null Values in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_embeddables">2.8.4.
+ JPQL Embeddables in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_aggregates">2.8.5.
+ JPQL Aggregate Functions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_agg_examples">2.8.5.1.
+ JPQL Aggregate Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_numeric_expressions_in_select">2.8.5.2.
+ JPQL Numeric Expressions in the SELECT Clause
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_orderby">2.9.
+ JPQL ORDER BY Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk_ops">2.10.
+ JPQL Bulk Update and Delete
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_values">2.11.
+ JPQL Null Values
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_equality">2.12.
+ JPQL Equality and Comparison Semantics
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bnf">2.13.
+ JPQL BNF
+ </a></span></dt></dl></div>
+
+ <p>
+The Java Persistence Query Language (JPQL) is used to define searches against
+persistent entities independent of the mechanism used to store those entities.
+As such, JPQL is "portable", and not constrained to any particular data store.
+The Java Persistence query language is an extension of the Enterprise JavaBeans
+query language, <code class="literal">EJB QL</code>, adding operations such as bulk
+deletes and updates, join operations, aggregates, projections, and subqueries.
+Furthermore, JPQL queries can be declared statically in metadata, or can be
+dynamically built in code. This chapter provides the full definition of the
+language.
+ </p>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+Much of this section is paraphrased or taken directly from Chapter 4 of the
+JSR 317 Java Persistence API Specification.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_stmnttypes"><div class="titlepage"><div><div><h3 class="title">2.1.
+ JPQL Statement Types
+ </h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select">2.1.1.
+ JPQL Select Statement
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk">2.1.2.
+ JPQL Update and Delete Statements
+ </a></span></dt></dl></div>
+
+ <p>
+A JPQL statement may be either a <code class="literal">SELECT</code> statement, an
+<code class="literal">UPDATE</code> statement, or a <code class="literal">DELETE</code> statement.
+This chapter refers to all such statements as "queries". Where it is important
+to distinguish among statement types, the specific statement type is referenced.
+In BNF syntax, a query language statement is defined as:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+QL_statement ::= select_statement | update_statement | delete_statement
+ </p>
+ </li></ul></div>
+ <p>
+The complete BNF for JPQL is defined in <a class="xref" href="jpa_langref.html#jpa_langref_bnf" title="2.13. JPQL BNF">Section 2.13, “
+ JPQL BNF
+ ”</a>.
+Any JPQL statement may be constructed dynamically or may be statically defined
+in a metadata annotation or XML descriptor element. All statement types may
+have parameters, as discussed in <a class="xref" href="jpa_langref.html#jpa_langref_input_params" title="2.5.4. JPQL Input Parameters">Section 2.5.4, “
+ JPQL Input Parameters
+ ”</a>.
+ </p>
+ <div class="section" id="jpa_langref_select"><div class="titlepage"><div><div><h4 class="title">2.1.1.
+ JPQL Select Statement
+ </h4></div></div></div>
+
+ <p>
+A select statement is a string which consists of the following clauses:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+a <code class="literal">SELECT</code> clause, which determines the type of the objects
+or values to be selected.
+ </p>
+ </li><li class="listitem">
+ <p>
+a <code class="literal">FROM</code> clause, which provides declarations that designate the
+domain to which the expressions specified in the other clauses of the query
+apply.
+ </p>
+ </li><li class="listitem">
+ <p>
+an optional <code class="literal">WHERE</code> clause, which may be used to restrict the
+results that are returned by the query.
+ </p>
+ </li><li class="listitem">
+ <p>
+an optional <code class="literal">GROUP BY</code> clause, which allows query results to be
+aggregated in terms of groups.
+ </p>
+ </li><li class="listitem">
+ <p>
+an optional <code class="literal">HAVING</code> clause, which allows filtering over
+aggregated groups.
+ </p>
+ </li><li class="listitem">
+ <p>
+an optional <code class="literal">ORDER BY</code> clause, which may be used to order the
+results that are returned by the query.
+ </p>
+ </li></ul></div>
+ <p>
+In BNF syntax, a select statement is defined as:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+select_statement ::= select_clause from_clause [where_clause] [groupby_clause]
+[having_clause] [orderby_clause]
+ </p>
+ </li></ul></div>
+ <p>
+A select statement must always have a <code class="literal">SELECT</code> and a
+<code class="literal">FROM</code> clause. The square brackets [] indicate that the other
+clauses are optional.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_bulk"><div class="titlepage"><div><div><h4 class="title">2.1.2.
+ JPQL Update and Delete Statements
+ </h4></div></div></div>
+
+ <p>
+Update and delete statements provide bulk operations over sets of entities. In
+BNF syntax, these operations are defined as:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+update_statement ::= update_clause [where_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+delete_statement ::= delete_clause [where_clause]
+ </p>
+ </li></ul></div>
+ <p>
+The update and delete clauses determine the type of the entities to be updated
+or deleted. The <code class="literal">WHERE</code> clause may be used to restrict the
+scope of the update or delete operation. Update and delete statements are
+described further in <a class="xref" href="jpa_langref.html#jpa_langref_bulk_ops" title="2.10. JPQL Bulk Update and Delete">Section 2.10, “
+ JPQL Bulk Update and Delete
+ ”</a>.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_schematypes"><div class="titlepage"><div><div><h3 class="title">2.2.
+ JPQL Abstract Schema Types and Query Domains
+ </h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemanaming">2.2.1.
+ JPQL Entity Naming
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemaexample">2.2.2.
+ JPQL Schema Example
+ </a></span></dt></dl></div>
+
+ <p>
+The Java Persistence query language is a typed language, and every expression
+has a type. The type of an expression is derived from the structure of the
+expression, the abstract schema types of the identification variable
+declarations, the types to which the persistent fields and relationships
+evaluate, and the types of literals.
+ </p>
+ <p>
+The abstract schema type of an entity or embeddable is
+derived from the entity class and the metadata information provided by Java
+language annotations or in the XML descriptor.
+ </p>
+ <p>
+Informally, the abstract schema type of an entity or embeddable can be characterized as
+follows:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+For every persistent field or get
+accessor method (for a persistent property) of the entity class, there is a
+field ("state-field") whose abstract schema type corresponds to that of the
+field or the result type of the accessor method.
+ </p>
+ </li><li class="listitem">
+ <p>
+For every persistent relationship field or get accessor method (for a persistent
+relationship property) of the entity class, there is a field
+("association-field") whose type is the abstract schema type of the related
+entity (or, if the relationship is a one-to-many or many-to-many, a collection
+of such).
+ </p>
+ </li></ul></div>
+ <p>
+Abstract schema types are specific to the query language data model.
+The persistence provider is not required to implement or otherwise materialize
+an abstract schema type.
+ </p>
+ <p>
+The domain of a query consists of the abstract schema
+types of all entities and embeddables that are defined in the same persistence unit.
+ </p>
+ <p>
+The domain
+of a query may be restricted by the <code class="literal">navigability</code> of the relationships of the
+entity and associated embeddable classes on which it is based. The association-fields of an entity's
+or embeddable's abstract
+schema type determine navigability. Using the association fields and their
+values, a query can select related entities and use their abstract schema types
+in the query.
+ </p>
+ <div class="section" id="jpa_langref_schemanaming"><div class="titlepage"><div><div><h4 class="title">2.2.1.
+ JPQL Entity Naming
+ </h4></div></div></div>
+
+ <p>
+Entities are designated in query strings by their entity names. The entity name
+is defined by the name element of the Entity annotation (or the entity-name XML
+descriptor element), and defaults to the unqualified name of the entity class.
+Entity names are scoped within the persistence unit and must be unique within
+the persistence unit.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_schemaexample"><div class="titlepage"><div><div><h4 class="title">2.2.2.
+ JPQL Schema Example
+ </h4></div></div></div>
+
+ <p>
+This example assumes that the application developer provides several entity
+classes, representing magazines, publishers, authors, and articles. The abstract
+schema types for these entities are <code class="literal">Magazine</code>, <code class="literal">
+Publisher</code>, <code class="literal">Author</code>, and <code class="literal">Article</code>.
+ </p>
+ <p>
+Several Entities with Abstract Persistence Schemas Defined in the Same
+Persistence Unit. The entity <code class="literal">Publisher</code> has a one-to-many
+relationships with <code class="literal">Magazine</code>. There is also a one-to-many
+relationship between <code class="literal">Magazine</code> and <code class="literal">Article</code>
+. The entity <code class="literal">Article</code> is related to <code class="literal">Author</code>
+in a one-to-one relationship.
+ </p>
+ <p>
+Queries to select magazines can be defined by navigating over the
+association-fields and state-fields defined by <code class="literal">Magazine</code> and
+<code class="literal">Author</code>. A query to
+find all magazines that have unpublished articles is as follows:
+ </p>
+<pre class="programlisting">
+SELECT DISTINCT mag FROM Magazine AS mag JOIN mag.articles AS art WHERE art.published = FALSE
+</pre>
+ <p>
+This query navigates over the association-field <code class="literal">authors</code> of the
+abstract schema type <code class="literal">Magazine</code> to find articles, and uses the
+state-field <code class="literal">published</code> of <code class="literal">Article</code> to select
+those magazines that have at least one article that is not published. Although
+predefined reserved identifiers, such as <code class="literal">DISTINCT</code>, <code class="literal">
+FROM</code>, <code class="literal">AS</code>, <code class="literal">JOIN</code>, <code class="literal">
+WHERE</code>, and <code class="literal">FALSE</code> appear in upper case in this
+example, predefined reserved identifiers are case insensitive.
+ </p>
+ <p>
+ The <code class="literal">
+SELECT</code> clause of this example designates the return type of this
+query to be of type <code class="literal">Magazine</code>.
+ </p>
+ <p>
+Because the same persistence unit defines the
+abstract persistence schemas of the related entities, the developer can also
+specify a query over articles that utilizes the abstract
+schema type for products, and hence the state-fields and association-fields of
+both the abstract schema types <code class="literal">Magazine</code> and <code class="literal">Author</code>.
+For example, if the
+abstract schema type <code class="literal">Author</code> has a state-field named <code class="literal">firstName</code>,
+ a query over
+articles can be specified using this state-field. Such a query might be to
+find all magazines that have articles authored by someone with the first name
+"John".
+ </p>
+<pre class="programlisting">
+SELECT DISTINCT mag FROM Magazine mag JOIN mag.articles art JOIN art.author auth WHERE auth.firstName = 'John'
+</pre>
+ <p>
+Because <code class="literal">Magazine</code> is related to <code class="literal">Author</code> by means of the
+relationships between <code class="literal">Magazine</code> and <code class="literal">Article</code>
+and between <code class="literal">Article</code> and <code class="literal">Author</code>,
+navigation using the association-fields <code class="literal">authors</code> and
+<code class="literal">product</code> is used to express
+the query. This query is specified by using the abstract schema name <code class="literal">Magazine</code>,
+which designates the abstract schema type over which the query ranges. The basis
+for the navigation is provided by the association-fields <code class="literal">authors</code>
+and <code class="literal">product</code> of
+the abstract schema types <code class="literal">Magazine</code> and <code class="literal">Article</code> respectively.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_fromclause"><div class="titlepage"><div><div><h3 class="title">2.3.
+ JPQL FROM Clause and Navigational Declarations
+ </h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_identifiers">2.3.1.
+ JPQL FROM Identifiers
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_vars">2.3.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_range">2.3.3.
+ JPQL Range Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path">2.3.4.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_Joins">2.3.5.
+ JPQL Joins
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_inner_joins">2.3.5.1.
+ JPQL Inner Joins (Relationship Joins)
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_outer_joins">2.3.5.2.
+ JPQL Outer Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fetch_joins">2.3.5.3.
+ JPQL Fetch Joins
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_dec">2.3.6.
+ JPQL Collection Member Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_clause_and_sql">2.3.7.
+ JPQL FROM Clause and SQL
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_polymorph">2.3.8.
+ JPQL Polymorphism
+ </a></span></dt></dl></div>
+
+ <p>
+The <code class="literal">FROM</code> clause of a query defines the domain of the query by
+declaring identification variables. An identification variable is an identifier
+declared in the <code class="literal">FROM</code> clause of a query. The domain of the
+query may be constrained by path expressions (See section <a class="xref" href="jpa_langref.html#jpa_langref_path" title="2.3.4. JPQL Path Expressions">Section 2.3.4, “
+ JPQL Path Expressions
+ ”</a>.
+ </p>
+ <p>
+Identification variables designate
+instances of a particular entity abstract schema type. The <code class="literal">FROM
+</code> clause can contain multiple identification variable declarations
+separated by a comma (,).
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+from_clause ::= FROM identification_variable_declaration {,
+{identification_variable_declaration | collection_member_declaration}}*
+ </p>
+ </li><li class="listitem">
+ <p>
+identification_variable_declaration ::= range_variable_declaration { join |
+fetch_join }*
+ </p>
+ </li><li class="listitem">
+ <p>
+range_variable_declaration ::= abstract_schema_name [AS] identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+join ::= join_spec join_association_path_expression [AS] identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+fetch_join ::= join_spec FETCH join_association_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+join_association_path_expression ::= join_collection_valued_path_expression |
+join_single_valued_association_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+join_collection_valued_path_expression::=
+identification_variable.{single_valued_embeddable_object_field.}*collection_valued_field
+ </p>
+ </li><li class="listitem">
+ <p>
+join_single_valued_path_expression::=
+identification_variable.{single_valued_embeddable_object_field.}*single_valued_object_field </p>
+ </li><li class="listitem">
+ <p>
+join_spec ::= [ LEFT [OUTER] | INNER ] JOIN
+ </p>
+ </li><li class="listitem">
+ <p>
+collection_member_declaration ::= IN (collection_valued_path_expression) [AS]
+identification_variable
+ </p>
+ </li></ul></div>
+ <p>
+The following subsections discuss the constructs used in the <code class="literal">FROM</code> clause.
+ </p>
+ <div class="section" id="jpa_langref_from_identifiers"><div class="titlepage"><div><div><h4 class="title">2.3.1.
+ JPQL FROM Identifiers
+ </h4></div></div></div>
+
+ <p>
+An identifier is a character sequence of unlimited length. The character
+sequence must begin with a Java identifier start character, and all other
+characters must be Java identifier part characters. An identifier start
+character is any character for which the method <code class="methodname">
+Character.isJavaIdentifierStart</code> returns <code class="literal">true</code>.
+This includes the underscore (_) character and the dollar sign ($) character. An
+identifier part character is any character for which the method <code class="methodname">
+Character.isJavaIdentifierPart</code> returns <code class="literal">true</code>.
+The question mark (?) character is reserved for use by the Java Persistence
+query language. The following are reserved identifiers:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+<code class="literal">ABS</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ALL</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">AND</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ANY</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">AS</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ASC</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">AVG</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">BETWEEN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">BIT_LENGTH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">BOTH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">BY</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CASE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CEILING</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CHAR_LENGTH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CHARACTER_LENGTH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CLASS</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">COALESCE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CONCAT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">COUNT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CURRENT_DATE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CURRENT_TIME</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">CURRENT_TIMESTAMP</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">DELETE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">DESC</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">DISTINCT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ELSE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">EMPTY</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">END</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ENTRY</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ESCAPE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">EXISTS</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">EXP</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">EXTRACT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">FALSE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">FETCH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">FLOOR</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">FROM</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">GROUP</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">HAVING</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">IN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">INDEX</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">INNER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">IS</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">JOIN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">KEY</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LEADING</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LEFT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LENGTH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LIKE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LOCAL</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LOCATE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">LOWER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MAX</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MEMBER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MIN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MOD</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">NEW</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">NOT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">NULL</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">NULLIF</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">OBJECT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">OF</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ON</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">OR</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ORDER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">OUTER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">POSITION</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">POWER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">ROUND</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SELECT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SET</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SIGN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SIZE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SOME</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SQRT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SIBSTRING</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SUM</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">THEN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TRAILING</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TREAT</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TRIM</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TRUE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TYPE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">UNKNOWN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">UPDATE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">UPPER</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">VALUE</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">WHEN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">WHERE</code>
+ </p>
+ </li></ul></div>
+ <p>
+Reserved identifiers are case insensitive. Reserved identifiers must not be
+used as identification variables or result variables.
+ </p>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+It is recommended that other SQL reserved
+words also not be used as identification variables in queries because they may be
+used as reserved identifiers in future releases of the specification.
+ </p>
+ </div>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, POSITION, and UNKNOWN are not currently used: they are
+reserved for future use.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_from_vars"><div class="titlepage"><div><div><h4 class="title">2.3.2.
+ JPQL Identification Variables
+ </h4></div></div></div>
+
+ <p>
+An identification variable is a valid identifier declared in the <code class="literal">FROM
+</code> clause of a query.
+ </p>
+ <p>
+All identification variables must be declared in
+the <code class="literal">FROM</code> clause. Identification variables cannot be declared
+in other clauses.
+ </p>
+ <p>
+An identification variable must not be a reserved identifier
+or have the same name as any entity in the same persistence unit.
+ </p>
+ <p>
+Identification variables are case insensitive.
+ </p>
+ <p>
+An identification variable evaluates to a value
+of the type of the expression used in declaring the variable. For example,
+consider the previous query: </p><pre class="programlisting">SELECT DISTINCT mag FROM Magazine mag JOIN mag.articles art JOIN art.author auth WHERE auth.firstName = 'John'
+</pre><p>
+In the <code class="literal">FROM</code> clause declaration <code class="literal">
+mag.articles</code> <code class="literal">art</code>, the identification variable
+<code class="literal">art</code> evaluates to any <code class="literal">Article</code> value
+directly reachable from <code class="literal">Magazine</code>. The association-field
+<code class="literal">articles</code> is a collection of instances of the abstract schema
+type <code class="literal">Article</code> and the identification variable <code class="literal">art
+</code> refers to an element of this collection. The type of <code class="literal">auth
+</code> is the abstract schema type of <code class="literal">Author</code>.
+ </p>
+ <p>
+An identification variable can range over an entity,
+embeddable, or basic abstract schema type. An
+identification variable designates an instance of an entity abstract schema type
+or an element of a collection of entity abstract schema type instances.
+ </p>
+ <p>
+Note that for identification variables referring to an instance of an association or collection represented
+as a <code class="literal">java.util.Map</code>, the identification variable is of the abstract schema type of the map
+<code class="literal">value</code>.
+ </p>
+ <p>
+An
+identification variable always designates a reference to a single value. It is
+declared in one of three ways: in a range variable declaration, in a join
+clause, or in a collection member declaration. The identification variable
+declarations are evaluated from left to right in the <code class="literal">FROM</code>
+clause, and an identification variable declaration can use the result of a
+preceding identification variable declaration of the query string.
+ </p>
+ <p>
+All identification variables used in the <code class="literal">SELECT</code>,
+<code class="literal">WHERE</code>,
+<code class="literal">ORDER BY</code>,
+<code class="literal">GROUP BY</code>, or
+<code class="literal">HAVING</code>
+clause of a <code class="literal">SELECT</code> or
+<code class="literal">DELETE</code> statement must be declared in the <code class="literal">FROM</code> clause.
+The identification
+variables used in the <code class="literal">WHERE</code> clause of
+an <code class="literal">UPDATE</code> statement must be declared in the <code class="literal">UPDATE</code> clause.
+ </p>
+ <p>
+Identification variables are existentially quantified in these clauses. This means that an identification
+variable represents a member of a collection or an instance of an entity’s abstract schema type. An identification
+variable never designates a collection in its entirety.
+ </p>
+ <p>
+An identification variable is scoped to the query (or subquery) in which it is defined and is also visible
+to any subqueries within that query scope that do not define an identification variable of the same name.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_range"><div class="titlepage"><div><div><h4 class="title">2.3.3.
+ JPQL Range Declarations
+ </h4></div></div></div>
+
+ <p>
+The syntax for declaring an identification variable as a range variable is
+similar to that of SQL; optionally, it uses the AS keyword. A range variable designates an
+entity abstract schema type.
+ </p>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+A range variable must not designate an embeddable class abstract schema type.
+ </p>
+ </div>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+range_variable_declaration ::= entity_name [AS]
+identification_variable
+ </p>
+ </li></ul></div>
+ <p>
+Range variable declarations allow the developer to designate a "root" for
+objects which may not be reachable by navigation.
+ </p>
+ <p>
+In order to select values by
+comparing more than one instance of an entity abstract schema type, more than
+one identification variable ranging over the abstract schema type is needed in
+the <code class="literal">FROM</code> clause.
+ </p>
+ <p>
+The following query returns magazines whose price is greater than the price of
+magazines published by "Adventure" publishers. This example illustrates the use
+of two different identification variables in the <code class="literal">FROM</code> clause,
+both of the abstract schema type Magazine. The <code class="literal">SELECT</code> clause
+of this query determines that it is the magazines with prices greater than those
+of "Adventure" publisher's that are returned.
+ </p>
+<pre class="programlisting">
+SELECT DISTINCT mag1 FROM Magazine mag1, Magazine mag2
+WHERE mag1.price > mag2.price AND mag2.publisher.name = 'Adventure'
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_path"><div class="titlepage"><div><div><h4 class="title">2.3.4.
+ JPQL Path Expressions
+ </h4></div></div></div>
+
+ <p>
+An identification variable followed by the navigation operator (.) and a
+state-field or association-field is a path expression. The type of the path
+expression is the type computed as the result of navigation; that is, the type
+of the state-field or association-field to which the expression navigates.
+ </p>
+ <p>
+An identification variable qualified by the <code class="literal">KEY</code>,
+<code class="literal">VALUE</code>, or <code class="literal">ENTRY</code>
+operator is a path expression. The
+<code class="literal">KEY</code>, <code class="literal">VALUE</code>,
+and <code class="literal">ENTRY</code> operators may only be applied to identification variables that correspond to
+map-valued associations or map-valued element collections. The type of the path expression is the type
+computed as the result of the operation; that is, the abstract schema type of the field that is the value of
+the <code class="literal">KEY</code>,
+<code class="literal">VALUE</code>, or <code class="literal">ENTRY</code>
+operator (the map key, map value, or map entry respectively).
+ </p>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+Note that use of <code class="literal">VALUE</code> is optional,
+as an identification variable referring to an association of type
+<code class="literal">java.util.Map</code> is of the
+abstract schema type of the map value.
+ </p>
+ </div>
+ <p>
+The syntax for qualified identification variables is as follows.
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+qualified_identification_variable :: =
+KEY(identification_variable) |
+VALUE(identification_variable) |
+ENTRY(identification_variable)
+ </p>
+ </li></ul></div>
+ <p>
+A path expression using the <code class="literal">KEY</code> or <code class="literal">VALUE</code>
+operator may be further composed. A path expression
+using the <code class="literal">ENTRY</code> operator is terminal.
+It cannot be further composed and can only appear in the
+<code class="literal">SELECT</code> list of a query.
+ </p>
+ <p>
+In the following query, <code class="literal">photos</code> is a map from photo label to filename.
+ </p>
+<pre class="programlisting">
+SELECT i.name, VALUE(p)
+FROM Item i JOIN i.photos p
+WHERE KEY(p) LIKE ‘egret’
+</pre>
+ <p>
+In the above query the identification variable <code class="literal">p</code> designates
+an abstract schema type corresponding to the
+map value. The results of <code class="literal">VALUE(p)</code> and <code class="literal">KEY(p)</code>
+are the map value and the map key associated with
+p, respectively. The following query is equivalent:
+ </p>
+<pre class="programlisting">
+SELECT i.name, p
+FROM Item i JOIN i.photos p
+WHERE KEY(p) LIKE ‘egret’
+</pre>
+ <p>
+Depending on navigability, a path expression that leads to a association-field
+or to a field whose type is an embeddable class
+may be further composed. Path expressions can be composed from other path
+expressions if the original path expression evaluates to a single-valued type
+(not a collection) corresponding to a association-field.
+ </p>
+ <p>
+In the following example, <code class="literal">contactInfo</code> denotes an embeddable
+class consisting of an address and
+set of phones. <code class="literal">Phone</code> is an entity.
+ </p>
+<pre class="programlisting">
+SELECT p.vendor
+FROM Employee e JOIN e.contactInfo.phones p
+WHERE e.contactInfo.address.zipcode = '95054'
+</pre>
+ <p>
+Path expression
+navigability is composed using "inner join" semantics. That is, if the value of
+a non-terminal association-field in the path expression is null, the path is
+considered to have no value, and does not participate in the determination of
+the result.
+ </p>
+ <p>
+The following query is equivalent to the query above:
+ </p>
+<pre class="programlisting">
+SELECT p.vendor
+FROM Employee e JOIN e.contactInfo c JOIN c.phones p
+WHERE e.contactInfo.address.zipcode = '95054'
+</pre>
+ <p>
+The syntax for single-valued path expressions and collection valued
+path expressions is as follows:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+single_valued_path_expression ::=
+qualified_identification_variable |
+state_field_path_expression |
+single_valued_object_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+state_field_path_expression ::=
+general_identification_variable.{single_valued_object_field.}*state_field
+ </p>
+ </li><li class="listitem">
+ <p>
+single_valued_object_path_expression ::=
+general_identification_variable.{single_valued_object_field.}*single_valued_object_field
+ </p>
+ </li><li class="listitem">
+ <p>
+collection_valued_path_expression ::=
+general_identification_variable.{single_valued_object_field.}*collection_valued_field
+ </p>
+ </li></ul></div>
+ <p>
+A <code class="literal">single_valued_object_field</code> is designated by the name of an
+association-field in a one-to-one or many-to-one relationship
+or a field of embeddable class type. The type of a
+<code class="literal">single_valued_object_field</code> is the abstract schema type of the
+related entity or embeddable class.
+ </p>
+ <p>
+A <code class="literal">state_field</code> is designated by the name of an entity or
+embeddable class state field that corresponds to
+a basic type.
+ </p>
+ <p>
+A collection_valued_field is designated by the name
+of an association-field in a one-to-many or a many-to-many relationship
+or by the name of an element collection field. The
+type of a <code class="literal">collection_valued_field</code> is
+a collection of values of the
+abstract schema type of the related entity
+or element type.
+ </p>
+ <p>
+An identification variable used in a
+<code class="literal">single_valued_object_path_expression</code> or in a
+<code class="literal">collection_valued_path_expression</code>
+may be an unqualified identification variable or an identification
+variable to which the KEY or VALUE function has been applied.
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+general_identification_variable ::=
+identification_variable |
+KEY(identification_variable) |
+VALUE(identification_variable)
+ </p>
+ </li></ul></div>
+ <p>
+It is syntactically illegal to compose a path expression from a
+path expression that evaluates to a collection. For example, if <code class="literal">mag
+</code> designates <code class="literal">Magazine</code>, the path expression <code class="literal">
+mag.articles.author</code> is illegal since navigation to authors results in
+a collection. This case should produce an error when the query string is
+verified. To handle such a navigation, an identification variable must be
+declared in the <code class="literal">FROM</code> clause to range over the elements of the
+<code class="literal">articles</code> collection. Another path expression must be used to
+navigate over each such element in the <code class="literal">WHERE</code> clause of the
+query, as in the following query which returns all authors that have any
+articles in any magazines:
+ </p>
+<pre class="programlisting">
+SELECT DISTINCT art.author FROM Magazine AS mag, IN(mag.articles) art
+</pre>
+ <p>
+It is illegal to use a <code class="literal">collection_valued_path_expression</code> other than
+in the <code class="literal">FROM</code> clause of a query
+except in an <code class="literal">empty_collection_comparison_expression</code>,
+in a <code class="literal">collection_member_expression</code>, or
+as an argument to the <code class="literal">SIZE</code> operator.
+See <a class="xref" href="jpa_langref.html#jpa_langref_empty_comp" title="2.5.12. JPQL Empty Collection Comparison Expressions">Section 2.5.12, “
+ JPQL Empty Collection Comparison Expressions
+ ”</a>, <a class="xref" href="jpa_langref.html#jpa_langref_collection_member" title="2.5.13. JPQL Collection Member Expressions">Section 2.5.13, “
+ JPQL Collection Member Expressions
+ ”</a>,
+and <a class="xref" href="jpa_langref.html#jpa_langref_arithmetic" title="2.6.2.2. JPQL Arithmetic Functions">Section 2.6.2.2, “
+ JPQL Arithmetic Functions
+ ”</a>.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_Joins"><div class="titlepage"><div><div><h4 class="title">2.3.5.
+ JPQL Joins
+ </h4></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_inner_joins">2.3.5.1.
+ JPQL Inner Joins (Relationship Joins)
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_outer_joins">2.3.5.2.
+ JPQL Outer Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fetch_joins">2.3.5.3.
+ JPQL Fetch Joins
+ </a></span></dt></dl></div>
+
+ <p>
+An inner join may be implicitly specified by the use of a cartesian product in
+the <code class="literal">FROM</code> clause and a join condition in the <code class="literal">WHERE
+</code> clause. In the absence of a join condition, this reduces to the cartesian product.
+ </p>
+ <p>
+The main use case for this generalized style of join is when a join condition does not involve
+a foreign key relationship that is mapped to an entity relationship, for example:
+ </p>
+<pre class="programlisting">SELECT c FROM Customer c, Employee e WHERE c.hatsize = e.shoesize</pre>
+ <p>
+In general, use of this style of inner join (also referred to as theta-join) is less typical than explicitly
+defined joins over relationships.
+ </p>
+ <p>
+The syntax for explicit join operations is as follows:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+join ::= join_spec join_association_path_expression [AS] identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+fetch_join ::= join_spec FETCH join_association_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+join_association_path_expression ::= join_collection_valued_path_expression |
+join_single_valued_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+join_collection_valued_path_expression::=
+identification_variable.{single_valued_embeddable_object_field.}*collection_valued_field
+ </p>
+ </li><li class="listitem">
+ <p>
+join_single_valued_path_expression::=
+identification_variable.{single_valued_embeddable_object_field.}*single_valued_object_field
+ </p>
+ </li><li class="listitem">
+ <p>
+join_spec ::= [ LEFT [OUTER] | INNER ] JOIN
+ </p>
+ </li></ul></div>
+ <p>
+The inner and outer join operation types described in
+<a class="xref" href="jpa_langref.html#jpa_langref_inner_joins" title="2.3.5.1. JPQL Inner Joins (Relationship Joins)">Section 2.3.5.1, “
+ JPQL Inner Joins (Relationship Joins)
+ ”</a> and <a class="xref" href="jpa_langref.html#jpa_langref_outer_joins" title="2.3.5.2. JPQL Outer Joins">Section 2.3.5.2, “
+ JPQL Outer Joins
+ ”</a> are supported.
+ </p>
+ <div class="section" id="jpa_langref_inner_joins"><div class="titlepage"><div><div><h5 class="title">2.3.5.1.
+ JPQL Inner Joins (Relationship Joins)
+ </h5></div></div></div>
+
+ <p>
+The syntax for the inner join operation is </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+[ INNER ] JOIN join_association_path_expression [AS] identification_variable
+</li></ul></div><p> For example, the query below joins over the relationship
+between publishers and magazines. This type of join typically equates to a join
+over a foreign key relationship in the database.
+ </p>
+<pre class="programlisting">
+SELECT pub FROM Publisher pub JOIN pub.magazines mag WHERE pub.revenue > 1000000
+</pre>
+ <p>
+The keyword <code class="literal">INNER</code> may optionally be used:
+ </p>
+<pre class="programlisting">
+SELECT pub FROM Publisher pub INNER JOIN pub.magazines mag WHERE pub.revenue > 1000000
+</pre>
+ <p>
+This is equivalent to the following query using the earlier
+<code class="literal">IN</code> construct. It selects those publishers with revenue of
+over 1 million for which at least one magazine exists:
+ </p>
+<pre class="programlisting">
+SELECT OBJECT(pub) FROM Publisher pub, IN(pub.magazines) mag WHERE pub.revenue > 1000000
+</pre>
+ <p>
+The query below joins over Employee, ContactInfo and Phone. ContactInfo is an
+embeddable class that consists of an address and set of phones. Phone is an entity.
+ </p>
+<pre class="programlisting">
+SELECT p.vendor
+FROM Employee e JOIN e.contactInfo c JOIN c.phones p
+WHERE c.address.zipcode = '95054'
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_outer_joins"><div class="titlepage"><div><div><h5 class="title">2.3.5.2.
+ JPQL Outer Joins
+ </h5></div></div></div>
+
+ <p>
+<code class="literal">LEFT JOIN</code> and <code class="literal">LEFT OUTER JOIN</code> are
+synonymous. They enable the retrieval of a set of entities where matching values
+in the join condition may be absent. The syntax for a left outer join is:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">LEFT [OUTER] JOIN join_association_path_expression [AS] identification_variable
+</li></ul></div><p>
+ </p>
+ <p>
+For example: </p><pre class="programlisting">SELECT pub FROM Publisher pub LEFT JOIN pub.magazines mag WHERE pub.revenue > 1000000
+</pre><p> The keyword <code class="literal">OUTER</code> may optionally be used:
+</p><pre class="programlisting">SELECT pub FROM Publisher pub LEFT OUTER JOIN pub.magazines mags WHERE pub.revenue > 1000000
+</pre><p> An important use case for <code class="literal">LEFT JOIN</code> is in
+enabling the prefetching of related data items as a side effect of a query. This
+is accomplished by specifying the <code class="literal">LEFT JOIN</code> as a <code class="literal">
+FETCH JOIN</code>.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_fetch_joins"><div class="titlepage"><div><div><h5 class="title">2.3.5.3.
+ JPQL Fetch Joins
+ </h5></div></div></div>
+
+ <p>
+A <code class="literal">FETCH JOIN</code> enables the fetching of an association as a side
+effect of the execution of a query. A <code class="literal">FETCH JOIN</code> is specified
+over an entity and its related entities. The syntax for a fetch join is
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>fetch_join ::= [ LEFT [OUTER] | INNER ] JOIN
+FETCH join_association_path_expression
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The association referenced by the right side of the <code class="literal">FETCH JOIN
+</code> clause must be an association that belongs to an entity that is
+returned as a result of the query. It is not permitted to specify an
+identification variable for the entities referenced by the right side of the
+<code class="literal">FETCH JOIN</code> clause, and hence references to the implicitly
+fetched entities cannot appear elsewhere in the query.
+ </p>
+ <p>
+The following query
+returns a set of magazines. As a side effect, the associated articles for those
+magazines are also retrieved, even though they are not part of the explicit
+query result. The persistent fields or properties of the articles that are
+eagerly fetched are fully initialized. The initialization of the relationship
+properties of the <code class="literal">articles</code> that are retrieved is determined
+by the metadata for the <code class="literal">Article</code> entity class.
+</p><pre class="programlisting">SELECT mag FROM Magazine mag LEFT JOIN FETCH mag.articles WHERE mag.id = 1
+</pre><p>
+ </p>
+ <p>
+A fetch join has the same join semantics as the corresponding inner or outer
+join, except that the related objects specified on the right-hand side of the
+join operation are not returned in the query result or otherwise referenced in
+the query. Hence, for example, if magazine id 1 has five articles, the above
+query returns five references to the magazine 1 entity.
+ </p>
+ <p>
+The <code class="literal">FETCH JOIN</code> construct must not be used in the FROM clause of a subquery.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_collection_dec"><div class="titlepage"><div><div><h4 class="title">2.3.6.
+ JPQL Collection Member Declarations
+ </h4></div></div></div>
+
+ <p>
+An identification variable declared by a <code class="literal">collection_member_declaration</code> ranges
+over values of a collection obtained by navigation using a path expression. Such
+a path expression represents a navigation involving the association-fields of an
+entity abstract schema type. Because a path expression can be based on another
+path expression, the navigation can use the association-fields of related
+entities.
+ </p>
+ <p>
+An identification variable of a collection member declaration is
+declared using a special operator, the reserved identifier <code class="literal">IN</code>
+. The argument to the <code class="literal">IN</code> operator is a collection-valued path
+expression. The path expression evaluates to a collection type specified as a
+result of navigation to a collection-valued association-field of an entity
+or embeddable class
+abstract schema type.
+ </p>
+ <p>
+The syntax for declaring a collection member
+identification variable is as follows:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>collection_member_declaration ::= IN
+(collection_valued_path_expression) [AS] identification_variable
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+For example, the query </p><pre class="programlisting">SELECT DISTINCT mag FROM Magazine mag
+ JOIN mag.articles art
+ JOIN art.author auth
+ WHERE auth.lastName = 'Grisham'</pre><p> can equivalently be
+expressed as follows, using the <code class="literal">IN</code> operator: </p><pre class="programlisting">SELECT DISTINCT mag FROM Magazine mag,
+ IN(mag.articles) art
+ WHERE art.author.lastName = 'Grisham'</pre><p> In this example,
+<code class="literal">articles</code> is the name of an association-field whose value is a
+collection of instances of the abstract schema type <code class="literal">Article</code>.
+The identification variable <code class="literal">art</code> designates a member of this
+collection, a single <code class="literal">Article</code> abstract schema type instance.
+In this example, <code class="literal">mag</code> is an identification variable of the
+abstract schema type <code class="literal">Magazine</code>.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_from_clause_and_sql"><div class="titlepage"><div><div><h4 class="title">2.3.7.
+ JPQL FROM Clause and SQL
+ </h4></div></div></div>
+
+ <p>
+The Java Persistence query language treats the FROM clause similarly to SQL in that the declared identification
+variables affect the results of the query even if they are not used in the WHERE clause. Application
+developers should use caution in defining identification variables because the domain of the
+query can depend on whether there are any values of the declared type.
+ </p>
+ <p>
+For example, the <code class="literal">FROM</code> clause below defines a query over
+all orders that have line items and existing
+products. If there are no <code class="literal">Product</code> instances in the database,
+the domain of the query is empty and no
+order is selected.
+ </p>
+<pre class="programlisting">
+SELECT o
+FROM Order AS o JOIN o.lineItems l JOIN l.product p
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_polymorph"><div class="titlepage"><div><div><h4 class="title">2.3.8.
+ JPQL Polymorphism
+ </h4></div></div></div>
+
+ <p>
+Java Persistence queries are automatically polymorphic. The <code class="literal">FROM
+</code> clause of a query designates not only instances of the specific
+entity classes to which explicitly refers but of subclasses as well. The
+instances returned by a query include instances of the subclasses that satisfy
+the query criteria.
+ </p>
+ <p>
+Non-polymorphic queries or queries whose polymorphism is restricted can be specified using entity
+type expressions in the <code class="literal">WHERE</code> clause to restrict the domain of the query.
+See <a class="xref" href="jpa_langref.html#jpa_langref_entity_type_expressions" title="2.6.4. Entity Type Expressions">Section 2.6.4, “
+ Entity Type Expressions
+ ”</a>.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_where"><div class="titlepage"><div><div><h3 class="title">2.4.
+ JPQL WHERE Clause
+ </h3></div></div></div>
+
+ <p>
+The <code class="literal">WHERE</code> clause of a query consists of a conditional
+expression used to select objects or values that satisfy the expression. The
+<code class="literal">WHERE</code> clause restricts the result of a select statement or
+the scope of an update or delete operation.
+ </p>
+ <p>
+A <code class="literal">WHERE</code> clause is
+defined as follows: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>where_clause ::= WHERE
+conditional_expression
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The <code class="literal">GROUP BY</code> construct enables the aggregation of values
+according to the properties of an entity class. The <code class="literal">HAVING</code>
+construct enables conditions to be specified that further restrict the query
+result as restrictions upon the groups.
+ </p>
+ <p>
+The syntax of the <code class="literal">HAVING
+</code> clause is as follows: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>having_clause
+::= HAVING conditional_expression
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The <code class="literal">GROUP BY</code> and <code class="literal">HAVING</code> constructs are
+further discussed in <a class="xref" href="jpa_langref.html#jpa_langref_group" title="2.7. JPQL GROUP BY, HAVING">Section 2.7, “
+ JPQL GROUP BY, HAVING
+ ”</a>.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_cond"><div class="titlepage"><div><div><h3 class="title">2.5.
+ JPQL Conditional Expressions
+ </h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_lit">2.5.1.
+ JPQL Literals
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_idvar">2.5.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path_exp">2.5.3.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_input_params">2.5.4.
+ JPQL Input Parameters
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_pos_params">2.5.4.1.
+ JPQL Positional Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_named_params">2.5.4.2.
+ JPQL Named Parameters
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond_comp">2.5.5.
+ JPQL Conditional Expression Composition
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_operators">2.5.6.
+ JPQL Operators and Operator Precedence
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_comparison_expressions">2.5.7.
+ JPQL Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_between">2.5.8.
+ JPQL Between Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_in_expressions">2.5.9.
+ JPQL In Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_like">2.5.10.
+ JPQL Like Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null">2.5.11.
+ JPQL Null Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_empty_comp">2.5.12.
+ JPQL Empty Collection Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_member">2.5.13.
+ JPQL Collection Member Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_exists">2.5.14.
+ JPQL Exists Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_all_any">2.5.15.
+ JPQL All or Any Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_subqueries">2.5.16.
+ JPQL Subqueries
+ </a></span></dt></dl></div>
+
+ <p>
+The following sections describe the language constructs that can be used in a
+conditional expression of the <code class="literal">WHERE</code> clause or <code class="literal">
+HAVING</code> clause.
+ </p>
+ <p>
+State-fields that are mapped in serialized form or as
+LOBs may not be portably used in conditional expressions. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> The
+implementation is not expected to perform such query operations involving such
+fields in memory rather than in the database.
+ </p>
+ </div><p>
+ </p>
+ <div class="section" id="jpa_langref_lit"><div class="titlepage"><div><div><h4 class="title">2.5.1.
+ JPQL Literals
+ </h4></div></div></div>
+
+ <p>
+A string literal is enclosed in single quotes--for example: 'literal'. A string
+literal that includes a single quote is represented by two single quotes--for
+example: 'literal''s'. String literals in queries, like Java String literals,
+use unicode character encoding. The use of Java escape notation is not supported
+in query string literals.
+ </p>
+ <p>
+Exact numeric literals support the use of Java integer
+literal syntax as well as SQL exact numeric literal syntax.
+ </p>
+ <p>
+Approximate literals
+support the use of Java floating point literal syntax as well as SQL approximate
+numeric literal syntax.
+ </p>
+ <p>
+Enum literals support the use of Java enum literal
+syntax. The enum class name must be specified.
+ </p>
+ <p>
+Appropriate suffixes can be used
+to indicate the specific type of a numeric literal in accordance with the Java
+Language Specification. The boolean literals are <code class="literal">TRUE</code> and
+<code class="literal">FALSE</code>. Although predefined reserved literals appear in upper
+case, they are case insensitive.
+ </p>
+ <p>
+The JDBC escape syntax may be used for the specification of date, time, and timestamp literals. For
+example:
+ </p>
+ <pre class="programlisting">
+SELECT o
+FROM Customer c JOIN c.orders o
+WHERE c.name = 'Smith'
+AND o.submissionDate < {d '2008-12-31'}
+ </pre>
+ <p>
+Date, time, and timestamp literals are passed as is to the JDBC driver
+in use.
+ </p>
+ <p>
+Entity type literals are specified by entity names—for example: <code class="literal">Customer</code>.
+ </p>
+ <p>
+Although reserved literals appear in upper case, they are case insensitive.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_idvar"><div class="titlepage"><div><div><h4 class="title">2.5.2.
+ JPQL Identification Variables
+ </h4></div></div></div>
+
+ <p>
+All identification variables used in the <code class="literal">WHERE</code> or <code class="literal">
+HAVING</code> clause of a <code class="literal">SELECT</code> or <code class="literal">DELETE
+</code> statement must be declared in the <code class="literal">FROM</code> clause, as
+described in <a class="xref" href="jpa_langref.html#jpa_langref_from_vars" title="2.3.2. JPQL Identification Variables">Section 2.3.2, “
+ JPQL Identification Variables
+ ”</a>. The identification
+variables used in the <code class="literal">WHERE</code> clause of an <code class="literal">UPDATE
+</code> statement must be declared in the <code class="literal">UPDATE</code> clause.
+ </p>
+ <p>
+Identification variables are existentially quantified in the <code class="literal">WHERE
+</code> and <code class="literal">HAVING</code> clause. This means that an
+identification variable represents a member of a collection or an instance of an
+entity's abstract schema type. An identification variable never designates a
+collection in its entirety.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_path_exp"><div class="titlepage"><div><div><h4 class="title">2.5.3.
+ JPQL Path Expressions
+ </h4></div></div></div>
+
+ <p>
+It is illegal to use a <code class="literal">collection_valued_path_expression</code> within a <code class="literal">
+WHERE</code> or <code class="literal">HAVING</code> clause as part of a conditional
+expression except in an <code class="literal">empty_collection_comparison_expression</code>, in a
+<code class="literal">collection_member_expression</code>, or as an argument to the <code class="literal">SIZE</code>
+operator.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_input_params"><div class="titlepage"><div><div><h4 class="title">2.5.4.
+ JPQL Input Parameters
+ </h4></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_pos_params">2.5.4.1.
+ JPQL Positional Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_named_params">2.5.4.2.
+ JPQL Named Parameters
+ </a></span></dt></dl></div>
+
+ <p>
+Either positional or named parameters may be used. Positional and named
+parameters may not be mixed in a single query.
+ </p>
+ <p>
+Input parameters can only be used
+in the <code class="literal">WHERE</code> clause or <code class="literal">HAVING</code> clause of a
+query.
+ </p>
+ <p>
+Note that if an input parameter value is null, comparison operations or
+arithmetic operations involving the input parameter will return an unknown
+value. See <a class="xref" href="jpa_langref.html#jpa_langref_null_values" title="2.11. JPQL Null Values">Section 2.11, “
+ JPQL Null Values
+ ”</a>.
+ </p>
+ <p>
+All input parameters must be single-valued, except in IN expressions (see
+<a class="xref" href="jpa_langref.html#jpa_langref_in_expressions" title="2.5.9. JPQL In Expressions">Section 2.5.9, “
+ JPQL In Expressions
+ ”</a> ), which support the use of collection-valued
+input parameters.
+ </p>
+ <div class="section" id="jpa_langref_pos_params"><div class="titlepage"><div><div><h5 class="title">2.5.4.1.
+ JPQL Positional Parameters
+ </h5></div></div></div>
+
+ <p>
+The following rules apply to positional parameters. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p> Input parameters are designated by the question mark (?) prefix followed
+by an integer. For example: ?1.
+ </p>
+ </li><li class="listitem">
+ <p>
+Input parameters are numbered starting from 1.
+ </p>
+ </li><li class="listitem">
+ <p>
+The same parameter can
+be used more than once in the query string.
+ </p>
+ </li><li class="listitem">
+ <p>
+The ordering of the use of
+parameters within the query string need not conform to the order of the
+positional parameters.
+ </p>
+ </li></ul></div><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_named_params"><div class="titlepage"><div><div><h5 class="title">2.5.4.2.
+ JPQL Named Parameters
+ </h5></div></div></div>
+
+ <p>
+A named parameter is an identifier that is prefixed by the ":" symbol. It
+follows the rules for identifiers defined in
+<a class="xref" href="jpa_langref.html#jpa_langref_from_identifiers" title="2.3.1. JPQL FROM Identifiers">Section 2.3.1, “
+ JPQL FROM Identifiers
+ ”</a>. Named parameters are case
+sensitive.
+ </p>
+ <p>
+Example: </p><pre class="programlisting">SELECT pub FROM Publisher pub WHERE pub.revenue > :rev
+</pre><p>
+ </p>
+ <p>
+The same named parameter can be used more than once in the query string.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_cond_comp"><div class="titlepage"><div><div><h4 class="title">2.5.5.
+ JPQL Conditional Expression Composition
+ </h4></div></div></div>
+
+ <p>
+Conditional expressions are composed of other conditional expressions,
+comparison operations, logical operations, path expressions that evaluate to
+boolean values, boolean literals, and boolean input parameters.
+ </p>
+ <p>
+The scalar expressions described in <a class="xref" href="jpa_langref.html#jpa_langref_scalar_expressions" title="2.6. JPQL Scalar Expressions">Section 2.6, “
+ JPQL Scalar Expressions
+ ”</a>
+ can be used in conditional expressions.
+ </p>
+ <p>
+Standard bracketing ()
+for ordering expression evaluation is supported.
+ </p>
+ <p>
+Aggregate functions can only be used in conditional expressions in a <code class="literal">
+HAVING</code> clause. See <a class="xref" href="jpa_langref.html#jpa_langref_group" title="2.7. JPQL GROUP BY, HAVING">Section 2.7, “
+ JPQL GROUP BY, HAVING
+ ”</a>.
+ </p>
+ <p>
+Conditional expressions are
+defined as follows:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>conditional_expression ::= conditional_term |
+conditional_expression OR conditional_term
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_term ::= conditional_factor | conditional_term AND
+conditional_factor
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_factor ::= [ NOT ] conditional_primary
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_primary ::= simple_cond_expression | (conditional_expression)
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_cond_expression ::= comparison_expression | between_expression |
+like_expression | in_expression | null_comparison_expression |
+empty_collection_comparison_expression | collection_member_expression |
+exists_expression
+ </p>
+ </li></ul></div><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_operators"><div class="titlepage"><div><div><h4 class="title">2.5.6.
+ JPQL Operators and Operator Precedence
+ </h4></div></div></div>
+
+ <p>
+The operators are listed below in order of decreasing precedence. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Navigation operator (.)
+ </p>
+ </li><li class="listitem">
+ <p>
+Arithmetic operators: +, - unary *, / multiplication and division +, - addition
+and subtraction
+ </p>
+ </li><li class="listitem">
+ <p>
+Comparison operators: =, >, >=, <, <=, <> (not equal), [
+<code class="literal">NOT</code> ] <code class="literal">BETWEEN</code>, [ <code class="literal">NOT</code> ]
+<code class="literal">LIKE</code>, [ <code class="literal">NOT</code> ] <code class="literal">IN</code>,
+<code class="literal">IS</code> [ <code class="literal">NOT</code> ] <code class="literal">NULL</code>,
+<code class="literal">IS</code> [ <code class="literal">NOT</code> ] <code class="literal">EMPTY</code>, [
+<code class="literal">NOT</code> ] <code class="literal">MEMBER</code> [ <code class="literal">OF</code> ]
+ </p>
+ </li><li class="listitem">
+ <p>
+Logical operators: <code class="literal">NOT</code>, <code class="literal">AND</code>,
+<code class="literal">OR</code>
+ </p>
+ </li></ul></div><p>
+
+
+ The following sections describe other operators used in specific expressions.
+
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_comparison_expressions"><div class="titlepage"><div><div><h4 class="title">2.5.7.
+ JPQL Comparison Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of comparison expressions in a conditional expression is as follows:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+comparison_expression ::=
+string_expression comparison_operator {string_expression | all_or_any_expression} |
+boolean_expression { =|<> } {boolean_expression | all_or_any_expression} |
+enum_expression { =|<> } {enum_expression | all_or_any_expression} |
+datetime_expression comparison_operator
+{datetime_expression | all_or_any_expression} |
+entity_expression { = | <> } {entity_expression | all_or_any_expression} |
+arithmetic_expression comparison_operator
+{arithmetic_expression | all_or_any_expression} |
+entity_type_expression { = | <> } entity_type_expression}
+ </p>
+ </li><li class="listitem">
+ <p>
+comparison_operator ::= = | > | >= | < | <= | <>
+ </p>
+ </li></ul></div>
+ <p>
+Examples:
+ </p>
+<pre class="programlisting">
+item.cost * 1.08 <= 100.00
+</pre>
+<pre class="programlisting">
+CONCAT(person.lastName, ‘, ’, person.firstName)) = ‘Jones, Sam’
+</pre>
+<pre class="programlisting">
+TYPE(e) = ExemptEmployee
+</pre>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+Comparisons over instances of embeddable class types are not supported.
+</div>
+ </div>
+ <div class="section" id="jpa_langref_between"><div class="titlepage"><div><div><h4 class="title">2.5.8.
+ JPQL Between Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of the comparison operator [ <code class="literal">NOT</code> ]
+<code class="literal">BETWEEN</code> in a conditional expression is as follows:
+ </p>
+ <p>
+arithmetic_expression [NOT] BETWEEN arithmetic_expression AND
+arithmetic_expression | string_expression [NOT] BETWEEN string_expression AND
+string_expression | datetime_expression [NOT] BETWEEN datetime_expression AND
+datetime_expression
+ </p>
+ <p>
+The BETWEEN expression </p><pre class="programlisting">x BETWEEN y AND z</pre><p> is
+semantically equivalent to: </p><pre class="programlisting">y <= x AND x <= z
+</pre><p> The rules for unknown and <code class="literal">NULL</code> values in
+comparison operations apply. See <a class="xref" href="jpa_langref.html#jpa_langref_null_values" title="2.11. JPQL Null Values">Section 2.11, “
+ JPQL Null Values
+ ”</a>
+.
+ </p>
+ <p>
+Examples are: </p><pre class="programlisting">p.age BETWEEN 15 and 19</pre><p> is
+equivalent to: </p><pre class="programlisting">p.age >= 15 AND p.age <= 19</pre><p>
+ </p>
+ <p>
+The following expression:
+</p><pre class="programlisting">p.age NOT BETWEEN 15 and 19</pre><p> excludes the range, and is equivalent to:
+</p><pre class="programlisting">p.age < 15 OR p.age > 19</pre><p>
+ </p>
+ <p>
+In the following example, <code class="literal">transactionHistory</code> is a list of credit card
+transactions defined using an order column.
+ </p>
+<pre class="programlisting">
+SELECT t
+FROM CreditCard c JOIN c.transactionHistory t
+WHERE c.holder.name = ‘John Doe’ AND INDEX(t) BETWEEN 0 AND 9
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_in_expressions"><div class="titlepage"><div><div><h4 class="title">2.5.9.
+ JPQL In Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of the comparison operator [ <code class="literal">NOT</code> ]
+<code class="literal">IN</code> in a conditional expression is as follows:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>in_expression ::= state_field_path_expression
+[NOT] IN {( in_item {, in_item}* ) | (subquery) | collection_valued_input_parameter }
+ </p>
+ </li><li class="listitem">
+ <p>
+in_item ::= literal | single_valued_input_parameter
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The <code class="literal">state_field_path_expression</code> must have a string, numeric,
+date, time, timestamp, or enum value.
+ </p>
+ <p>
+ The literal and/or input_parameter values must be <code class="literal">like</code>
+ the same abstract schema type
+of the <code class="literal">state_field_path_expression</code> in type. (See
+<a class="xref" href="jpa_langref.html#jpa_langref_equality" title="2.12. JPQL Equality and Comparison Semantics">Section 2.12, “
+ JPQL Equality and Comparison Semantics
+ ”</a> ).
+ </p>
+ <p>
+The results of the subquery must be <code class="literal">like</code> the same abstract schema type of the
+<code class="literal">state_field_path_expression</code> in type. Subqueries are discussed in
+<a class="xref" href="jpa_langref.html#jpa_langref_subqueries" title="2.5.16. JPQL Subqueries">Section 2.5.16, “
+ JPQL Subqueries
+ ”</a>.
+ </p>
+ <p>
+Examples:
+ </p>
+<pre class="programlisting">o.country IN ('UK', 'US', 'France')
+</pre> is true for UK and false for Peru, and is equivalent to the
+expression: <pre class="programlisting">(o.country = 'UK') OR (o.country = 'US') OR (o.country = ' France')
+</pre> In the following expression: <pre class="programlisting">o.country NOT IN ('UK', 'US', 'France')
+</pre> is false for UK and true for Peru, and is equivalent to the
+expression: <pre class="programlisting">NOT ((o.country = 'UK') OR (o.country = 'US') OR (o.country = 'France'))
+</pre>
+ <p>
+There must be at least one element in the comma separated list
+that defines the set of values for the <code class="literal">IN</code> expression.
+ </p>
+ <p>
+If the
+value of a <code class="literal">state_field_path_expression</code> or <code class="literal">in_item</code>
+ in an <code class="literal">IN</code> or <code class="literal">
+NOT IN</code> expression is <code class="literal">NULL</code> or unknown, the value of
+the expression is unknown.
+ </p>
+ <p>
+Note that use of a collection-valued input parameter will mean that a static query cannot
+be precompiled.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_like"><div class="titlepage"><div><div><h4 class="title">2.5.10.
+ JPQL Like Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of the comparison operator [ <code class="literal">NOT</code> ]
+<code class="literal">LIKE</code> in a conditional expression is as follows:
+ </p>
+ <p>
+like_expression ::=
+string_expression [NOT] LIKE <code class="literal">pattern_value</code> [ESCAPE <code class="literal">escape_character</code>]
+ </p>
+ <p>
+The <code class="literal">string_expression</code> must have a string value.
+The <code class="literal">pattern_value</code> is a string
+literal or a string-valued input parameter in which an underscore (_) stands for
+any single character, a percent (%) character stands for any sequence of
+characters (including the empty sequence), and all other characters stand for
+themselves. The optional escape_character is a single-character string literal
+or a character-valued input parameter (i.e., char or Character) and is used to
+escape the special meaning of the underscore and percent characters in
+pattern_value. </p>
+ <p>
+Examples:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><pre class="programlisting">address.phone LIKE '12%3'
+</pre><p> is true for '123' '12993' and false for '1234'
+ </p>
+ </li><li class="listitem">
+ <p>
+</p><pre class="programlisting">asentence.word LIKE 'l_se'</pre><p> is true for 'lose'
+and false for 'loose'
+ </p>
+ </li><li class="listitem">
+ <p>
+</p><pre class="programlisting">aword.underscored LIKE '\_%' ESCAPE '\'</pre><p> is true
+for '_foo' and false for 'bar'
+ </p>
+ </li><li class="listitem">
+ <p>
+</p><pre class="programlisting">address.phone NOT LIKE '12%3'</pre><p> is false for
+'123' and '12993' and true for '1234'.
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+If the value of the <code class="literal">string_expression</code> or
+<code class="literal">pattern_value</code> is <code class="literal">NULL</code> or unknown, the value of the <code class="literal">
+LIKE</code> expression is unknown. If the <code class="literal">escape_character</code> is specified and
+is <code class="literal">NULL</code>, the value of the <code class="literal">LIKE</code> expression
+is unknown.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_null"><div class="titlepage"><div><div><h4 class="title">2.5.11.
+ JPQL Null Comparison Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of the comparison operator <code class="literal">IS NULL</code> in
+a conditional expression is as follows:
+ </p>
+ <p>
+null_comparison_expression ::= {single_valued_path_expression | input_parameter } IS [NOT] NULL
+ </p>
+ <p>
+A null comparison expression tests whether or not the single-valued path
+expression or input parameter is a <code class="literal">NULL</code> value.
+ </p>
+ <p>
+Null comparisons over instances of embeddable class types are not supported.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_empty_comp"><div class="titlepage"><div><div><h4 class="title">2.5.12.
+ JPQL Empty Collection Comparison Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of the comparison operator <code class="literal">IS EMPTY</code> in
+an <code class="literal">empty_collection_comparison_expression</code> is as follows:
+ </p>
+ <p>
+empty_collection_comparison_expression ::=
+ collection_valued_path_expression IS [NOT] EMPTY
+ </p>
+ <p>
+This expression tests whether or not the collection designated by the
+collection-valued path expression is empty (i.e. has no elements).
+ </p>
+ <p>
+For example, the following query will return all magazines that don't have any
+articles at all: </p><pre class="programlisting">SELECT mag FROM Magazine mag WHERE mag.articles IS EMPTY
+</pre><p>
+ </p>
+ <p>
+If the value of the collection-valued path expression in an
+empty collection comparison expression is unknown, the value of the empty
+comparison expression is unknown.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_collection_member"><div class="titlepage"><div><div><h4 class="title">2.5.13.
+ JPQL Collection Member Expressions
+ </h4></div></div></div>
+
+ <p>
+The syntax for the use of the comparison operator <code class="literal">MEMBER OF</code>
+in an <code class="literal">collection_member_expression</code> is as follows:
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+collection_member_expression ::= entity_or_value_expression [NOT] MEMBER [OF]
+collection_valued_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+entity_or_value_expression ::= single_valued_object_path_expression |
+state_field_path_expression |
+simple_entity_or_value_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_entity_or_value_expression ::=
+ identification_variable |
+ input_parameter |
+ literal
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+This expression tests whether the designated value is a member of the collection
+specified by the collection-valued path expression.
+ </p>
+ <p>
+ </p>
+Expressions that evaluate to embeddable types are not supported in collection member expressions.
+ <p>
+If the collection valued
+path expression designates an empty collection, the value of the <code class="literal">
+MEMBER OF</code> expression is <code class="literal">FALSE</code> and the value of the
+<code class="literal">NOT MEMBER OF</code> expression is <code class="literal">TRUE</code>.
+Otherwise, if the value of the <code class="literal">collection_valued_path_expression</code> or
+<code class="literal">entity_or_value_expression</code> in the collection member
+expression is <code class="literal">NULL</code> or unknown, the value of the collection
+member expression is unknown.
+ </p>
+ <p>
+The use of the reserved word OF is optional in this expression.
+ </p>
+ <p>
+Example:
+ </p>
+ <pre class="programlisting">
+SELECT p
+FROM Person p
+WHERE 'Joe' MEMBER OF p.nicknames
+ </pre>
+ </div>
+ <div class="section" id="jpa_langref_exists"><div class="titlepage"><div><div><h4 class="title">2.5.14.
+ JPQL Exists Expressions
+ </h4></div></div></div>
+
+ <p>
+An <code class="literal">EXISTS</code> expression is a predicate that is true only if the
+result of the subquery consists of one or more values and that is false
+otherwise. The syntax of an exists expression is </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+exists_expression ::= [NOT] EXISTS (subquery)
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+Example: </p><pre class="programlisting">SELECT DISTINCT auth FROM Author auth
+ WHERE EXISTS
+ (SELECT spouseAuthor FROM Author spouseAuthor WHERE spouseAuthor = auth.spouse)
+</pre><p> The result of this query consists of all authors whose spouse
+is also an author.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_all_any"><div class="titlepage"><div><div><h4 class="title">2.5.15.
+ JPQL All or Any Expressions
+ </h4></div></div></div>
+
+ <p>
+An <code class="literal">ALL</code> conditional expression is a predicate
+over a subquery that is true if the comparison operation is
+true for all values in the result of the subquery or the result of the subquery is empty.
+An <code class="literal">ALL</code> conditional
+expression is false if the result of the comparison is false for at least one
+value of the result of the subquery,
+and is unknown if neither true nor false.
+ </p>
+ <p>
+An <code class="literal">ANY</code>
+conditional expression is a predicate over a subquery that is true if the comparison operation
+is true for some value in the result of the subquery. An <code class="literal">ANY</code>
+conditional expression is false if the result of the subquery is empty or if the
+comparison operation is false for every value in the result of the subquery, and
+is unknown if neither true nor false. The keyword <code class="literal">SOME</code> is
+synonymous with <code class="literal">ANY</code>.
+ </p>
+ <p>
+The comparison operators used with
+<code class="literal">ALL</code> or <code class="literal">ANY</code> conditional expressions are =,
+<, <=, >, >=, <>. The result of the subquery must be like that
+of the other argument to the comparison operator in type. See
+<a class="xref" href="jpa_langref.html#jpa_langref_equality" title="2.12. JPQL Equality and Comparison Semantics">Section 2.12, “
+ JPQL Equality and Comparison Semantics
+ ”</a>. The syntax of an <code class="literal">ALL
+</code> or <code class="literal">ANY</code> expression is specified as follows:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>all_or_any_expression ::= { ALL | ANY | SOME}
+(subquery)
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The following example select the authors who make the highest salary for their
+magazine: </p><pre class="programlisting">SELECT auth FROM Author auth
+ WHERE auth.salary >= ALL(SELECT a.salary FROM Author a WHERE a.magazine = auth.magazine)
+</pre><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_subqueries"><div class="titlepage"><div><div><h4 class="title">2.5.16.
+ JPQL Subqueries
+ </h4></div></div></div>
+
+ <p>
+Subqueries may be used in the <code class="literal">WHERE</code> or <code class="literal">HAVING
+</code> clause. The syntax for subqueries is as follows:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+subquery ::= simple_select_clause subquery_from_clause
+[where_clause] [groupby_clause] [having_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_select_clause ::= SELECT [DISTINCT]
+simple_select_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+subquery_from_clause ::= FROM subselect_identification_variable_declaration {,
+subselect_identification_variable_declaration |
+collection_member_declaration }*
+ </p>
+ </li><li class="listitem">
+ <p>
+subselect_identification_variable_declaration ::=
+identification_variable_declaration | derived_path_expression [AS]
+identification_variable {join}* | derived_collection_member_declaration
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_select_expression ::= single_valued_path_expression |
+scalar_expression |
+aggregate_expression | identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+derived_path_expression ::=
+superquery_identification_variable.{single_valued_object_field.}*collection_valued_field |
+superquery_identification_variable.{single_valued_object_field.}*single_valued_object_field
+ </p>
+ </li><li class="listitem">
+ <p>
+derived_collection_member_declaration ::=
+IN superquery_identification_variable.{single_valued_object_field.}*collection_valued_field
+ </p>
+ </li></ul></div>
+ <p>
+Subqueries are restricted to the <code class="literal">WHERE</code> and <code class="literal">HAVING
+</code> clauses in this release. Support for subqueries in the <code class="literal">FROM
+</code> clause will be considered in a later release of the specification.
+ </p>
+ <p>
+Examples: </p><pre class="programlisting">SELECT DISTINCT auth FROM Author auth
+ WHERE EXISTS (SELECT spouseAuth FROM Author spouseAuth WHERE spouseAuth = auth.spouse)
+</pre><pre class="programlisting">SELECT mag FROM Magazine mag
+ WHERE (SELECT COUNT(art) FROM mag.articles art) > 10</pre><p>
+Note that some contexts in which a subquery can be used require that the
+subquery be a scalar subquery (i.e., produce a single result). This is
+illustrated in the following example involving a numeric comparison operation.
+</p><pre class="programlisting">SELECT goodPublisher FROM Publisher goodPublisher
+ WHERE goodPublisher.revenue < (SELECT AVG(p.revenue) FROM Publisher p)
+</pre><p>
+</p><pre class="programlisting">
+SELECT goodCustomer
+FROM Customer goodCustomer
+WHERE goodCustomer.balanceOwed < (
+SELECT AVG(c.balanceOwed)/2.0 FROM Customer c)
+</pre><p>
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_scalar_expressions"><div class="titlepage"><div><div><h3 class="title">2.6.
+ JPQL Scalar Expressions
+ </h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_math_expressions">2.6.1.
+ Arithmetic Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_functional_expressions">2.6.2.
+ String, Arithmetic, and Datetime Functional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_string_fun">2.6.2.1.
+ JPQL String Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_arithmetic">2.6.2.2.
+ JPQL Arithmetic Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_datetime">2.6.2.3.
+ JPQL Datetime Functions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_case_expressions">2.6.3.
+ Case Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_entity_type_expressions">2.6.4.
+ Entity Type Expressions
+ </a></span></dt></dl></div>
+
+ <p>
+Numeric, string, datetime, case, and entity type expressions result in scalar values.
+ </p>
+ <p>
+Scalar expressions may be used in the <code class="literal">SELECT</code> clause of a query as well as in the
+ <code class="literal">WHERE</code> and <code class="literal">HAVING</code> clauses.
+ </p>
+ <p>
+scalar_expression::=
+arithmetic_expression |
+string_primary |
+enum_primary |
+datetime_primary |
+boolean_primary |
+case_expression |
+entity_type_expression
+ </p>
+ <div class="section" id="jpa_langref_math_expressions"><div class="titlepage"><div><div><h4 class="title">2.6.1.
+ Arithmetic Expressions
+ </h4></div></div></div>
+
+ <p>
+The arithmetic operators are:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">+, - unary</li><li class="listitem">*, / multiplication and division</li><li class="listitem">+, - addition and subtraction</li></ul></div><p>
+ </p><p>
+Arithmetic operations use numeric promotion.
+ </p><p>
+ </p><p>
+Arithmetic functions are described in <a class="xref" href="jpa_langref.html#jpa_langref_arithmetic" title="2.6.2.2. JPQL Arithmetic Functions">Section 2.6.2.2, “
+ JPQL Arithmetic Functions
+ ”</a>.
+ </p><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_functional_expressions"><div class="titlepage"><div><div><h4 class="title">2.6.2.
+ String, Arithmetic, and Datetime Functional Expressions
+ </h4></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_string_fun">2.6.2.1.
+ JPQL String Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_arithmetic">2.6.2.2.
+ JPQL Arithmetic Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_datetime">2.6.2.3.
+ JPQL Datetime Functions
+ </a></span></dt></dl></div>
+
+ <p>
+JPQL includes the built-in functions described in subsections
+<a class="xref" href="jpa_langref.html#jpa_langref_string_fun" title="2.6.2.1. JPQL String Functions">Section 2.6.2.1, “
+ JPQL String Functions
+ ”</a>,
+<a class="xref" href="jpa_langref.html#jpa_langref_arithmetic" title="2.6.2.2. JPQL Arithmetic Functions">Section 2.6.2.2, “
+ JPQL Arithmetic Functions
+ ”</a>,
+<a class="xref" href="jpa_langref.html#jpa_langref_datetime" title="2.6.2.3. JPQL Datetime Functions">Section 2.6.2.3, “
+ JPQL Datetime Functions
+ ”</a>,
+which may be used in the <code class="literal">SELECT</code>,
+<code class="literal">WHERE</code>
+or <code class="literal">HAVING</code> clause of a query.
+ </p><p>
+ </p><p>
+If the
+value of any argument to a functional expression is null or unknown, the value
+of the functional expression is unknown.
+ </p>
+ <div class="section" id="jpa_langref_string_fun"><div class="titlepage"><div><div><h5 class="title">2.6.2.1.
+ JPQL String Functions
+ </h5></div></div></div>
+
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>functions_returning_strings ::=
+CONCAT(string_primary, string_primary) | SUBSTRING(string_primary,
+simple_arithmetic_expression[, simple_arithmetic_expression]) |
+TRIM([[trim_specification] [trim_character] FROM] string_primary) |
+LOWER(string_primary) | UPPER(string_primary)
+ </p>
+ </li><li class="listitem">
+ <p>
+trim_specification ::= LEADING | TRAILING | BOTH
+ </p>
+ </li><li class="listitem">
+ <p>
+functions_returning_numerics ::= LENGTH(string_primary) |
+LOCATE(string_primary, string_primary[, simple_arithmetic_expression])
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The <code class="literal">CONCAT</code> function returns a string that is a concatenation
+of its arguments.
+ </p>
+ <p>
+ The second and third arguments of the <code class="literal">SUBSTRING
+</code> function denote the starting position and length of the substring to
+be returned. These arguments are integers.
+The third argument is optional. If it is not specified,
+the substring from the start position to the end of the string is returned.
+ The first position of a string is
+denoted by 1. The <code class="literal">SUBSTRING</code> function returns a string.
+ </p>
+ <p>
+The
+<code class="literal">TRIM</code> function trims the specified character from a string. If
+the character to be trimmed is not specified, it is assumed to be space (or
+blank). The optional trim_character is a single-character string literal or a
+character-valued input parameter (i.e., char or Character). If a trim
+specification is not provided, <code class="literal">BOTH</code> is assumed. The <code class="literal">
+TRIM</code> function returns the trimmed string.
+ </p>
+ <p>
+ The <code class="literal">LOWER</code>
+and <code class="literal">UPPER</code> functions convert a string to lower and upper case,
+respectively. They return a string.
+ </p>
+ <p>
+The <code class="literal">LOCATE</code> function
+returns the position of a given string within a string, starting the search at a
+specified position. It returns the first position at which the string was found
+as an integer. The first argument is the string to be located; the second
+argument is the string to be searched; the optional third argument is an integer
+that represents the string position at which the search is started (by default,
+the beginning of the string to be searched). The first position in a string is
+denoted by 1. If the string is not found, 0 is returned.
+ </p>
+ <p>
+Note that not all databases support the use of a trim character other than the
+space character; use of this argument may result in queries that are not
+portable. Note that not all databases support the use of the third argument to
+<code class="literal">LOCATE</code>; use of this argument may result in queries that are
+not portable.
+ </p>
+ <p>
+The <code class="literal">LENGTH
+</code> function returns the length of the string in characters as an
+integer.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_arithmetic"><div class="titlepage"><div><div><h5 class="title">2.6.2.2.
+ JPQL Arithmetic Functions
+ </h5></div></div></div>
+
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>functions_returning_numerics ::=
+ABS(simple_arithmetic_expression) |
+CEILING(arithmetic_expression) |
+EXP(arithmetic_expression) |
+FLOOR(arithmetic_expression) |
+LN(arithmetic_expression) |
+POWER(arithmetic_expression, arithmetic_expression) |
+ROUND(arithmetic_expression, arithmetic_expression) |
+SIGN(arithmetic_expression) |
+SQRT(simple_arithmetic_expression) |
+MOD(simple_arithmetic_expression, simple_arithmetic_expression) |
+SIZE(collection_valued_path_expression) |
+INDEX(identification_variable) |
+extract_datetime_field
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The <code class="literal">ABS</code>, <code class="literal">CEILING</code> and <code class="literal">FLOOR</code> functions
+accept a numeric argument and return a number (integer, float, or double) of the same type as
+the argument.
+ </p>
+ <p>
+The <code class="literal">SIGN</code> function accepts a numeric argument and
+returns an integer.
+ </p>
+ <p>
+The <code class="literal">SQRT</code>, <code class="literal">EXP</code> and <code class="literal">LN</code> functions accept
+a numeric argument and return a double.
+ </p>
+ <p>
+The <code class="literal">MOD</code> function takes two integer arguments and returns an integer.
+ </p>
+ <p>
+The <code class="literal">ROUND</code> function accepts a numeric argument and an integer argument and
+returns a number of the same type as the first argument.
+ </p>
+ <p>
+The <code class="literal">POWER</code> function accepts two numeric arguments and returns a double.
+ </p>
+ <p>
+Numeric arguments to these functions may correspond to the numeric Java object types as well
+as the primitive numeric types.
+ </p>
+ <p>
+The <code class="literal">SIZE</code> function returns an integer value, the
+number of elements of the collection. If the collection is empty, the <code class="literal">
+SIZE</code> function evaluates to zero. Numeric arguments to these functions
+may correspond to the numeric Java object types as well as the primitive numeric
+types.
+ </p>
+ <p>
+The INDEX function returns an integer value corresponding to the position of its argument in an
+ordered list. The INDEX function can only be applied to identification variables denoting types for
+which an order column has been specified.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_datetime"><div class="titlepage"><div><div><h5 class="title">2.6.2.3.
+ JPQL Datetime Functions
+ </h5></div></div></div>
+
+ <p>
+functions_returning_datetime:= CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | LOCAL DATE
+| LOCAL TIME | LOCAL DATETIME | extract_datetime_part
+ </p>
+ <p>
+The functions LOCAL DATE, LOCAL TIME, and LOCAL DATETIME return the value of the current date, time,
+or timestamp on the database server, respectively. Their types are java.time.LocalDate,
+java.time.LocalTime, and java.time.LocalDateTime respectively.
+ </p>
+ <p>
+The functions CURRENT_DATE, CURRENT_TIME, and CURRENT_TIMESTAMP return the value of the current date,
+time, or timestamp on the database server, respectively. Their types are java.sql.Date, java.sql.Time,
+and java.sql.Timestamp respectively.
+ </p>
+ <p>
+The EXTRACT function takes a datetime argument and one of the following field type identifiers: YEAR,
+QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, DATE, TIME.
+ </p>
+ <p>
+EXTRACT returns the value of the corresponding field or part of the datetime.
+ </p>
+ <p>
+For the following field type identifiers, EXTRACT returns an integer value:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+<code class="literal">YEAR</code> means the calendar year.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">QUARTER</code> means the calendar quarter, numbered from 1 to 4.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MONTH</code> means the calendar month of the year, numbered from 1.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">WEEK</code> means the ISO-8601 week number.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">DAY</code> means the calendar day of the month, numbered from 1.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">HOUR</code> means the hour of the day in 24-hour time, numbered from 0 to 23.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MINUTE</code> means the minute of the hour, numbered from 0 to 59.
+ </p>
+ </li></ul></div>
+ <p>
+For the SECOND field type identifier, EXTRACT returns a floating point value:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+<code class="literal">SECOND</code> means the second of the minute, numbered from 0 to 59, including a
+ fractional part representing fractions of a second.
+ </p>
+ </li></ul></div>
+ <p>
+It is illegal to pass a datetime argument which does not have the given field type to EXTRACT.
+ </p>
+ <p>
+For the following field type identifiers, EXTRACT returns a part of the datetime value:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+<code class="literal">DATE</code> means the date part of a datetime.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">TIME</code> means the time part of a datetime.
+ </p>
+ </li></ul></div>
+ <p>
+It is illegal to pass a datetime argument which does not have the given part to EXTRACT.
+ </p>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_case_expressions"><div class="titlepage"><div><div><h4 class="title">2.6.3.
+ Case Expressions
+ </h4></div></div></div>
+
+ <p>
+The following forms of case expressions are supported: general case expressions, simple case expressions,
+coalesce expressions, and nullif expressions.
+</p><div class="itemizedlist"><code class="literal">CASE</code><code class="literal">ELSE</code><code class="literal">END</code><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+case_expression::=
+general_case_expression |
+simple_case_expression |
+coalesce_expression |
+nullif_expression
+</li><li class="listitem">
+general_case_expression::=
+<code class="literal">CASE</code> when_clause {when_clause}* <code class="literal">ELSE</code> scalar_expression <code class="literal">END</code>
+</li><li class="listitem">
+when_clause::= <code class="literal">WHEN</code> conditional_expression <code class="literal">THEN</code> scalar_expression
+</li><li class="listitem">
+case_operand::= state_field_path_expression | type_discriminator
+</li><li class="listitem">
+simple_when_clause::= <code class="literal">WHEN</code> scalar_expression <code class="literal">THEN</code> scalar_expression
+</li><li class="listitem">
+coalesce_expression::= <code class="literal">COALESCE</code>(scalar_expression {, scalar_expression}+)
+</li><li class="listitem">
+nullif_expression::= <code class="literal">NULLIF</code>(scalar_expression, scalar_expression)
+</li></ul></div><p>
+ </p>
+ <p>
+Examples:
+ </p>
+<pre class="programlisting">
+UPDATE Employee e
+SET e.salary =
+ CASE WHEN e.rating = 1 THEN e.salary * 1.1
+ WHEN e.rating = 2 THEN e.salary * 1.05
+ ELSE e.salary * 1.01
+ END
+</pre>
+<pre class="programlisting">
+UPDATE Employee e
+SET e.salary =
+ CASE e.rating WHEN 1 THEN e.salary * 1.1
+ WHEN 2 THEN e.salary * 1.05
+ ELSE e.salary * 1.01
+ END
+</pre>
+<pre class="programlisting">
+SELECT e.name,
+ CASE TYPE(e) WHEN Exempt THEN 'Exempt'
+ WHEN Contractor THEN 'Contractor'
+ WHEN Intern THEN 'Intern'
+ ELSE 'NonExempt'
+ END
+FROM Employee e
+WHERE e.dept.name = 'Engineering'
+</pre>
+<pre class="programlisting">
+SELECT e.name,
+ f.name,
+ CONCAT(CASE WHEN f.annualMiles > 50000 THEN 'Platinum '
+ WHEN f.annualMiles > 25000 THEN 'Gold '
+ ELSE ''
+ END,
+ 'Frequent Flyer')
+FROM Employee e JOIN e.frequentFlierPlan f
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_entity_type_expressions"><div class="titlepage"><div><div><h4 class="title">2.6.4.
+ Entity Type Expressions
+ </h4></div></div></div>
+
+ <p>
+An entity type expression can be used to restrict query polymorphism.
+The <code class="literal">TYPE</code> operator returns the
+exact type of the argument.
+ </p>
+ <p>
+The syntax of an entity type expression is as follows:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+entity_type_expression ::=
+type_discriminator |
+entity_type_literal |
+input_parameter
+</li><li class="listitem">
+type_discriminator ::=
+TYPE(identification_variable |
+single_valued_object_path_expression |
+input_parameter )
+</li></ul></div>
+ <p>
+An <code class="literal">entity_type_literal</code> is designated by the entity name.
+ </p>
+ <p>
+The Java class of the entity is used as an input parameter to specify the entity type.
+ </p>
+ <p>
+Examples:
+ </p>
+<pre class="programlisting">
+SELECT e
+FROM Employee e
+WHERE TYPE(e) IN (Exempt, Contractor)
+</pre>
+<pre class="programlisting">
+SELECT e
+FROM Employee e
+WHERE TYPE(e) IN (:empType1, :empType2)
+</pre>
+<pre class="programlisting">
+SELECT e
+FROM Employee e
+WHERE TYPE(e) IN :empTypes
+</pre>
+<pre class="programlisting">
+SELECT TYPE(e)
+FROM Employee e
+WHERE TYPE(e) <> Exempt
+</pre>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_group"><div class="titlepage"><div><div><h3 class="title">2.7.
+ JPQL GROUP BY, HAVING
+ </h3></div></div></div>
+
+ <p>
+The <code class="literal">GROUP BY</code> construct enables the aggregation of values
+according to a set of properties. The <code class="literal">HAVING</code> construct
+enables conditions to be specified that further restrict the query result. Such
+conditions are restrictions upon the groups.
+ </p>
+ <p>
+The syntax of the <code class="literal">GROUP
+BY</code> and <code class="literal">HAVING</code> clauses is as follows:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>groupby_clause ::= GROUP BY groupby_item {,
+groupby_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+groupby_item ::= single_valued_path_expression | identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+having_clause ::= HAVING conditional_expression
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+If a query contains both a <code class="literal">WHERE</code> clause and a <code class="literal">GROUP
+BY</code> clause, the effect is that of first applying the where clause, and
+then forming the groups and filtering them according to the <code class="literal">HAVING
+</code> clause. The <code class="literal">HAVING</code> clause causes those groups to
+be retained that satisfy the condition of the <code class="literal">HAVING</code> clause.
+ </p>
+ <p>
+The requirements for the <code class="literal">SELECT</code> clause when <code class="literal">GROUP
+BY</code> is used follow those of SQL: namely, any item that appears in the
+<code class="literal">SELECT</code> clause (other than as an argument to an aggregate
+function) must also appear in the <code class="literal">GROUP BY</code> clause. In forming
+the groups, null values are treated as the same for grouping purposes.
+ </p>
+ <p>
+Grouping
+by an entity is permitted. In this case, the entity must contain no serialized
+state fields or LOB-valued state fields that are eagerly fetched.
+ </p>
+ <p>
+Grouping by embeddables is not supported.
+ </p>
+ <p>
+The <code class="literal">HAVING</code> clause
+must specify search conditions over the grouping items or aggregate functions
+that apply to grouping items.
+ </p>
+ <p>
+If there is no <code class="literal">GROUP BY</code> clause and the <code class="literal">HAVING
+</code> clause is used, the result is treated as a single group, and the
+select list can only consist of aggregate functions.
+The use of <code class="literal">HAVING</code> in the absence of
+<code class="literal">GROUP BY</code> is not required to be supported by a JPA implementation.
+Portable applications should not rely on <code class="literal">HAVING</code> without the use of
+<code class="literal">GROUP BY</code>.
+ </p>
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+ <p>
+OpenJPA supports the use of <code class="literal">HAVING</code> in the absence of
+<code class="literal">GROUP BY</code> if the underlying database supports it.
+ </p>
+ </div>
+ <p>
+Examples:
+ </p>
+ <pre class="programlisting">
+SELECT c.status, AVG(c.filledOrderCount), COUNT(c)
+FROM Customer c
+GROUP BY c.status
+HAVING c.status IN (1, 2)
+</pre>
+<pre class="programlisting">
+SELECT c.country, COUNT(c)
+FROM Customer c
+GROUP BY c.country
+HAVING COUNT(c) > 30
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_select_clause"><div class="titlepage"><div><div><h3 class="title">2.8.
+ JPQL SELECT Clause
+ </h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_resulttype">2.8.1.
+ JPQL Result Type of the SELECT Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_constructor">2.8.2.
+ JPQL Constructor Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_select">2.8.3.
+ JPQL Null Values in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_embeddables">2.8.4.
+ JPQL Embeddables in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_aggregates">2.8.5.
+ JPQL Aggregate Functions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_agg_examples">2.8.5.1.
+ JPQL Aggregate Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_numeric_expressions_in_select">2.8.5.2.
+ JPQL Numeric Expressions in the SELECT Clause
+ </a></span></dt></dl></dd></dl></div>
+
+ <p>
+The <code class="literal">SELECT</code> clause denotes the query result. More than one
+value may be returned from the <code class="literal">SELECT</code> clause of a query.
+ </p>
+ <p>
+The <code class="literal">SELECT</code> clause can contain one or more of the following
+elements: a single range variable or identification variable that ranges over an
+entity abstract schema type, a single-valued path expression,
+a scalar expression,
+an aggregate expression, a constructor expression.
+ </p>
+ <p>
+The <code class="literal">SELECT</code>
+clause has the following syntax:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>select_clause ::= SELECT [DISTINCT]
+select_item {, select_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+select_item ::= select_expression [ [AS] result_variable]
+ </p>
+ </li><li class="listitem">
+ <p>
+select_expression ::= single_valued_path_expression |
+scalar_expression |
+aggregate_expression |
+identification_variable | OBJECT(identification_variable) |
+constructor_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+constructor_expression ::= NEW constructor_name ( constructor_item {,
+constructor_item}*)
+ </p>
+ </li><li class="listitem">
+ <p>
+constructor_item ::= single_valued_path_expression |
+scalar_expression |
+aggregate_expression |
+identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+aggregate_expression ::= { AVG | MAX | MIN | SUM } ([DISTINCT]
+state_field_path_expression) | COUNT ([DISTINCT] identification_variable |
+state_field_path_expression | single_valued_object_path_expression)
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+For example: </p><pre class="programlisting">SELECT pub.id, pub.revenue
+ FROM Publisher pub JOIN pub.magazines mag WHERE mag.price > 5.00
+</pre><p>
+ </p>
+ <p>
+In the following example, videoInventory is a Map from the entity Movie to the number of copies
+in stock:
+ </p>
+<pre class="programlisting">
+SELECT v.location.street, KEY(i).title, VALUE(i)
+FROM VideoStore v JOIN v.videoInventory i
+WHERE v.location.zipcode = '94301' AND VALUE(i) > 0
+</pre>
+ <p>
+Note that the <code class="literal">SELECT</code> clause must be specified to return only
+single-valued expressions. The query below is therefore not valid:
+</p><pre class="programlisting">SELECT mag.authors FROM Magazine AS mag</pre><p>
+ </p>
+ <p>
+The <code class="literal">DISTINCT</code> keyword is used to specify that duplicate values
+must be eliminated from the query result.
+ </p>
+ <p>
+If <code class="literal">DISTINCT</code> is not
+specified, duplicate values are not eliminated.
+ </p>
+ <p>
+The result of DISTINCT over embeddable objects or map entry results is undefined.
+ </p>
+ <p>
+Standalone identification
+variables in the <code class="literal">SELECT</code> clause may optionally be qualified by
+the <code class="literal">OBJECT</code> operator. The <code class="literal">SELECT</code> clause
+must not use the OBJECT operator to qualify path expressions.
+ </p>
+ <p>
+A <code class="literal">result_variable</code> may be used to name a <code class="literal">select_item</code> in the query result.
+ For example,
+</p><pre class="programlisting">
+SELECT c, COUNT(l) AS itemCount
+FROM Customer c JOIN c.Orders o JOIN o.lineItems l
+WHERE c.address.state = ‘CA’
+ORDER BY itemCount
+ </pre><p>
+ </p>
+ <div class="section" id="jpa_langref_resulttype"><div class="titlepage"><div><div><h4 class="title">2.8.1.
+ JPQL Result Type of the SELECT Clause
+ </h4></div></div></div>
+
+ <p>
+The type of the query result specified by the <code class="literal">SELECT</code> clause
+of a query is an entity abstract schema type, a state-field type,
+the result of of a scalar expression, the result of
+an aggregate function, the result of a construction operation, or some sequence
+of these.
+ </p>
+ <p>
+The result type of the <code class="literal">SELECT</code> clause is defined by
+the result types of the select_expressions contained in it. When multiple
+select expressions are used in the <code class="literal">SELECT</code> clause, the result
+of the query is of type Object[], and the elements in this result correspond in
+order to the order of their specification in the <code class="literal">SELECT</code>
+clause and in type to the result types of each of the select expressions.
+ </p>
+ <p>
+The type of the result of a <code class="literal">select_expression</code> is as follows:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+The result type of an <code class="literal">identification_variable</code>
+is the type of the entity object or embeddable
+object to which the identification variable corresponds. The type of an
+<code class="literal">identification_variable</code>
+that refers to an entity abstract schema type is the type of the entity to which that identification
+variable corresponds or a subtype as determined by the object/relational mapping.
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of a <code class="literal">single_valued_path_expression</code> that is a
+<code class="literal">state_field_path_expression</code>
+results in an object of the same type as the
+corresponding state field of the entity or embeddable class.
+If the state field of the entity is a
+primitive type, the result type is the corresponding object type.
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of a <code class="literal">single_valued_path_expression</code> that is a
+<code class="literal">single_valued_object_path_expression</code>
+is the type of the entity object or embeddable
+object to which the path expression corresponds.
+A <code class="literal">single_valued_object_path_expression</code>
+that results in an entity object will result in an entity of the type of
+the relationship field or the
+subtype of the relationship field of the entity object as determined by
+the object/relational mapping.
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of a
+<code class="literal">single_valued_path_expression</code>
+that is an identification_variable to
+which the <code class="literal">KEY</code> or <code class="literal">VALUE</code> function
+has been applied is determined by the type of the map key
+or value respectively, as defined by the above rules
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of a
+<code class="literal">single_valued_path_expression</code> that is an
+<code class="literal">identification_variable</code> to
+which the <code class="literal">ENTRY</code> function has been applied is
+<code class="literal">java.util.Map.Entry</code>, where the key
+and value types of the map entry are determined by the above rules as applied to the map key
+and map value respectively.
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of a
+<code class="literal">scalar_expression</code> is the type of the scalar value to which the expression
+evaluates. The result type of a numeric <code class="literal">scalar_expression</code> is defined in
+<a class="xref" href="jpa_langref.html#jpa_langref_scalar_expressions" title="2.6. JPQL Scalar Expressions">Section 2.6, “
+ JPQL Scalar Expressions
+ ”</a>
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of an
+<code class="literal">entity_type_expression</code> scalar expression is the Java class to which the
+resulting abstract schema type corresponds.
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of aggregate_expression is defined in
+<a class="xref" href="jpa_langref.html#jpa_langref_aggregates" title="2.8.5. JPQL Aggregate Functions">Section 2.8.5, “
+ JPQL Aggregate Functions
+ ”</a>.
+ </p>
+ </li><li class="listitem">
+ <p>
+The result type of a
+<code class="literal">constructor_expression</code> is the type of the class for which
+the constructor is defined. The types of the arguments to the constructor are
+defined by the above rules.
+ </p>
+ </li></ul></div><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_constructor"><div class="titlepage"><div><div><h4 class="title">2.8.2.
+ JPQL Constructor Expressions
+ </h4></div></div></div>
+
+ <p>
+A constructor may be used in the
+<code class="literal">SELECT</code> list to return one or more Java instances. The
+specified class is not required to be an entity or to be mapped to the database.
+The constructor name must be fully qualified.
+ </p>
+ <p>
+If an entity class name is specified in the <code class="literal">SELECT NEW</code>
+clause, the resulting entity instances are in the new state.
+ </p>
+ <p>
+If a <code class="literal">single_valued_path_expression</code> or
+<code class="literal">identification_variable</code> that is an argument to the constructor
+references an entity, the resulting entity instance referenced by that
+<code class="literal">single_valued_path_expression</code> or
+<code class="literal">identification_variable</code>
+will be in the managed state.
+ </p>
+ <p>
+If <code class="literal">PublisherInfo</code> is an entity class, the following 2 queries return
+ instances of <code class="literal">PublisherInfo</code> that will be in the new state.
+In the second example, <code class="literal">mag</code> is an <code class="literal">identification_variable</code>
+passed as an argument to the constructor <code class="literal">PublisherInfo(Magazine mag)</code>;
+the entity instances of <code class="literal">Magazine</code> created during query evaluation
+will be in the managed state.
+Example:
+ </p>
+<pre class="programlisting">SELECT NEW com.company.PublisherInfo(pub.id, pub.revenue, mag.price)
+ FROM Publisher pub JOIN pub.magazines mag WHERE mag.price > 5.00
+</pre>
+<pre class="programlisting">SELECT NEW com.company.PublisherInfo(mag)
+ FROM Publisher pub JOIN pub.magazines mag WHERE mag.price > 5.00
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_null_select"><div class="titlepage"><div><div><h4 class="title">2.8.3.
+ JPQL Null Values in the Query Result
+ </h4></div></div></div>
+
+ <p>
+If the result of a query corresponds to a association-field or state-field whose
+value is null, that null value is returned in the result of the query method.
+The <code class="literal">IS NOT NULL</code> construct can be used to eliminate such null
+values from the result set of the query.
+ </p>
+ <p>
+Note, however, that state-field types
+defined in terms of Java numeric primitive types cannot produce <code class="literal">NULL
+</code> values in the query result. A query that returns such a state-field
+type as a result type must not return a null value.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_embeddables"><div class="titlepage"><div><div><h4 class="title">2.8.4.
+ JPQL Embeddables in the Query Result
+ </h4></div></div></div>
+
+ <p>
+If the result of a query corresponds to an identification variable or state field whose value is an
+embeddable, the embeddable instance returned by the query will not be in the managed state (i.e., it will
+not be part of the state of any managed entity).
+ </p>
+ <p>
+In the following example, the <code class="literal">Address</code> instances returned by the query will reference Phone
+instances. While the <code class="literal">Phone</code> instances will be managed,
+the <code class="literal">Address</code>> instances referenced by the
+<code class="literal">addr</code> result variable will not be.
+Modifications to these embeddable instances are not allowed.
+ </p>
+<pre class="programlisting">
+@Entity
+public class Employee {
+ @Id int id;
+ Address address;
+ ...
+}
+
+@Embeddable
+public class Address {
+ String street;
+ ...
+ @OneToOne Phone phone; // fetch=EAGER
+}
+
+@Entity
+public class Phone {
+ @Id int id;
+ ...
+ @OneToOne(mappedBy="address.phone") Employee emp; // fetch=EAGER
+}
+
+SELECT e.address AS addr
+FROM Employee e
+</pre>
+ </div>
+ <div class="section" id="jpa_langref_aggregates"><div class="titlepage"><div><div><h4 class="title">2.8.5.
+ JPQL Aggregate Functions
+ </h4></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="jpa_langref.html#jpa_langref_agg_examples">2.8.5.1.
+ JPQL Aggregate Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_numeric_expressions_in_select">2.8.5.2.
+ JPQL Numeric Expressions in the SELECT Clause
+ </a></span></dt></dl></div>
+
+ <p>
+The result of a query may be the result
+of an aggregate function applied to a path expression.
+ </p>
+ <p>
+The following aggregate
+functions can be used in the <code class="literal">SELECT</code> clause of a query:
+<code class="literal">AVG</code>, <code class="literal">COUNT</code>, <code class="literal">MAX</code>,
+<code class="literal">MIN</code>, <code class="literal">SUM</code>.
+ </p>
+ <p>
+For all aggregate functions
+except <code class="literal">COUNT</code>, the path expression that is the argument to
+the aggregate function must terminate in a state-field. The path expression
+argument to <code class="literal">COUNT</code> may terminate in either a state-field or a
+association-field, or the argument to <code class="literal">COUNT</code> may be an
+identification variable.
+ </p>
+ <p>
+Arguments to the functions <code class="literal">SUM</code> and
+<code class="literal">AVG</code> must be numeric. Arguments to the functions <code class="literal">MAX
+</code> and <code class="literal">MIN</code> must correspond to orderable state-field
+types (i.e., numeric types, string types, character types, or date types).
+ </p>
+ <p>
+The Java type that is contained in the result of a query using an aggregate function
+is as follows: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">COUNT</code> returns
+Long.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">MAX</code>, <code class="literal">MIN</code> return the type of the
+state-field to which they are applied.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">AVG</code> returns Double.
+ </p>
+ </li><li class="listitem">
+ <p>
+<code class="literal">SUM</code> returns Long when applied to state-fields of integral
+types (other than BigInteger); Double when applied to state-fields of floating
+point types; BigInteger when applied to state-fields of type BigInteger; and
+BigDecimal when applied to state-fields of type BigDecimal.
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+If <code class="literal">SUM
+</code>, <code class="literal">AVG</code>, <code class="literal">MAX</code>, or <code class="literal">MIN
+</code> is used, and there are no values to which the aggregate function can
+be applied, the result of the aggregate function is <code class="literal">NULL</code>.
+ </p>
+ <p>
+If <code class="literal">COUNT</code> is used, and there are no values to which <code class="literal">
+COUNT</code> can be applied, the result of the aggregate function is 0.
+ </p>
+ <p>
+The argument to an aggregate function may be preceded by the keyword <code class="literal">
+DISTINCT</code> to specify that duplicate values are to be eliminated before
+the aggregate function is applied.
+It is legal to specify <code class="literal">DISTINCT</code> with <code class="literal">MAX</code>
+or <code class="literal">MIN</code>, but it does not affect the result.
+ </p>
+ <p>
+Null values are eliminated before the
+aggregate function is applied, regardless of whether the keyword <code class="literal">
+DISTINCT</code> is specified.
+ </p>
+ <p>
+The use of <code class="literal">DISTINCT</code> with <code class="literal">COUNT</code> is not supported for arguments of
+embeddable types or map entry types.
+ </p>
+ <div class="section" id="jpa_langref_agg_examples"><div class="titlepage"><div><div><h5 class="title">2.8.5.1.
+ JPQL Aggregate Examples
+ </h5></div></div></div>
+
+ <p>
+The following query returns the average price of all magazines:
+</p><pre class="programlisting">SELECT AVG(mag.price) FROM Magazine mag</pre><p> The
+following query returns the sum of all the prices from all the
+magazines published by 'Larry': </p><pre class="programlisting">SELECT SUM(mag.price) FROM Publisher pub JOIN pub.magazines mag WHERE pub.firstName = 'Larry'
+</pre><p> The following query returns the total number of magazines:
+</p><pre class="programlisting">SELECT COUNT(mag) FROM Magazine mag</pre><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_numeric_expressions_in_select"><div class="titlepage"><div><div><h5 class="title">2.8.5.2.
+ JPQL Numeric Expressions in the SELECT Clause
+ </h5></div></div></div>
+
+ <p>
+The type of a numeric expression in the query result is determined as follows:
+ </p>
+ <p>
+An operand that corresponds to a persistent state-field is of the same type as that persistent state-field.
+ </p>
+ <p>
+An operand that corresponds to one of arithmetic functions described in
+<a class="xref" href="jpa_langref.html#jpa_langref_arithmetic" title="2.6.2.2. JPQL Arithmetic Functions">Section 2.6.2.2, “
+ JPQL Arithmetic Functions
+ ”</a> is of the type defined by
+<a class="xref" href="jpa_langref.html#jpa_langref_arithmetic" title="2.6.2.2. JPQL Arithmetic Functions">Section 2.6.2.2, “
+ JPQL Arithmetic Functions
+ ”</a>.
+ </p>
+ <p>
+An operand that corresponds to one of an aggregate functions described in
+<a class="xref" href="jpa_langref.html#jpa_langref_aggregates" title="2.8.5. JPQL Aggregate Functions">Section 2.8.5, “
+ JPQL Aggregate Functions
+ ”</a> is of the type defined by
+<a class="xref" href="jpa_langref.html#jpa_langref_aggregates" title="2.8.5. JPQL Aggregate Functions">Section 2.8.5, “
+ JPQL Aggregate Functions
+ ”</a>.
+ </p>
+ <p>
+The result of a case expression, coalesce expression, nullif expression, or arithmetic expression (+, -, *,
+/) is determined by applying the following rule to its operands.
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+If there is an operand of type Double or double, the result of the operation is of type Double;
+ </p>
+ </li><li class="listitem">
+ <p>
+otherwise, if there is an operand of type Float or float, the result of the operation is of type
+Float;
+ </p>
+ </li><li class="listitem">
+ <p>
+otherwise, if there is an operand of type BigDecimal, the result of the operation is of type Big-
+Decimal;
+ </p>
+ </li><li class="listitem">
+ <p>
+otherwise, if there is an operand of type BigInteger, the result of the operation is of type BigInteger;
+ </p>
+ </li><li class="listitem">
+ <p>
+otherwise, if there is an operand of type Long or long, the result of the operation is of type
+Long;
+ </p>
+ </li><li class="listitem">
+ <p>
+otherwise, if there is an operand of integral type, the result of the operation is of type Integer.
+ </p>
+ </li></ul></div>
+ </div>
+ </div>
+ </div>
+ <div class="section" id="jpa_langref_orderby"><div class="titlepage"><div><div><h3 class="title">2.9.
+ JPQL ORDER BY Clause
+ </h3></div></div></div>
+
+ <p>
+The <code class="literal">ORDER BY</code> clause allows the objects or values that are
+returned by the query to be ordered. The syntax of the <code class="literal">ORDER BY
+</code> clause is
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>orderby_clause ::= ORDER BY orderby_item {,
+orderby_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+orderby_item ::= { state_field_path_expression | result_variable } [ASC | DESC]
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+An orderby_item must be one of the following:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+ A <code class="literal">state_field_path_expression</code> that evaluates to an orderable state field of an entity or
+embeddable class abstract schema type designated in the SELECT clause by one of the following:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+ <p>a <code class="literal">general_identification_variable</code></p>
+ </li><li class="listitem">
+ <p>a <code class="literal">single_valued_object_path_expression</code></p>
+ </li></ul></div>
+ </li><li class="listitem">
+ <p>
+A <code class="literal">state_field_path_expression</code> that evaluates to the same state field of the same entity or
+embeddable abstract schema type as a <code class="literal">state_field_path_expression</code>
+in the <code class="literal">SELECT</code> clause.
+ </p>
+ </li><li class="listitem">
+ <p>
+A <code class="literal">result_variable</code> that refers to an orderable item in the
+<code class="literal">SELECT</code> clause for which the same
+<code class="literal">result_variable</code> has been specified.
+This may be the result of an <code class="literal">aggregate_expression</code>, a
+<code class="literal">scalar_expression</code>,
+or a <code class="literal">state_field_path_expression</code> in the <code class="literal">SELECT</code> clause.
+ </p>
+ </li></ul></div>
+ <p>
+For example, the five queries below are legal.
+ </p>
+<pre class="programlisting">
+SELECT pub FROM Publisher pub ORDER BY pub.revenue, pub.name
+</pre>
+<pre class="programlisting">
+SELECT o
+FROM Customer c JOIN c.orders o JOIN c.address a
+WHERE a.state = ‘CA’
+ORDER BY o.quantity DESC, o.totalcost
+</pre>
+<pre class="programlisting">
+SELECT o.quantity, a.zipcode
+FROM Customer c JOIN c.orders o JOIN c.address a
+WHERE a.state = ‘CA’
+ORDER BY o.quantity, a.zipcode
+</pre>
+<pre class="programlisting">
+SELECT o.quantity, o.cost*1.08 AS taxedCost, a.zipcode
+FROM Customer c JOIN c.orders o JOIN c.address a
+WHERE a.state = ‘CA’ AND a.county = ‘Santa Clara’
+ORDER BY o.quantity, taxedCost, a.zipcode
+</pre>
+<pre class="programlisting">
+SELECT AVG(o.quantity) as q, a.zipcode
+FROM Customer c JOIN c.orders o JOIN c.address a
+WHERE a.state = ‘CA’
+GROUP BY a.zipcode
+ORDER BY q DESC
+</pre>
+<p>
+The following two queries are not legal because the <code class="literal">orderby_item</code>
+is not reflected in the <code class="literal">SELECT</code>
+clause of the query.
+</p>
+<pre class="programlisting">
+SELECT p.product_name
+FROM Order o JOIN o.lineItems l JOIN l.product p JOIN o.customer c
+WHERE c.lastname = ‘Smith’ AND c.firstname = ‘John’
+ORDER BY p.price
+</pre>
+<pre class="programlisting">
+SELECT p.product_name
+FROM Order o, IN(o.lineItems) l JOIN o.customer c
+WHERE c.lastname = ‘Smith’ AND c.firstname = ‘John’
+ORDER BY o.quantity
+</pre>
+ <p>
+If more than one <code class="literal">orderby_item</code> is specified, the left-to-right
+sequence of the <code class="literal">orderby_item</code> elements determines the precedence, whereby the
+leftmost <code class="literal">orderby_item</code> has highest precedence.
+ </p>
+ <p>
+The keyword <code class="literal">ASC</code>
+specifies that ascending ordering be used; the keyword <code class="literal">DESC</code>
+specifies that descending ordering be used. Ascending ordering is the default.
+ </p>
+ <p>
+SQL rules for the ordering of null values apply: that is, all null values must
+appear before all non-null values in the ordering or all null values must appear
+after all non-null values in the ordering, but it is not specified which.
+ </p>
+ <p>
+The
+ordering of the query result is preserved in the result of the query method if
+the <code class="literal">ORDER BY</code> clause is used.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_bulk_ops"><div class="titlepage"><div><div><h3 class="title">2.10.
+ JPQL Bulk Update and Delete
+ </h3></div></div></div>
+
+ <p>
+Bulk update and delete operations apply to entities of a single
+entity class (together with its subclasses, if any). Only one entity abstract
+schema type may be specified in the <code class="literal">FROM</code> or <code class="literal">UPDATE
+</code> clause. The syntax of these operations is as follows:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>update_statement ::= update_clause [where_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+update_clause ::= UPDATE entity_name [[AS] identification_variable] SET
+update_item {, update_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+update_item ::= [identification_variable.]{state_field |
+single_valued_object_field} = new_value
+ </p>
+ </li><li class="listitem">
+ <p>
+new_value ::= scalar_expression |
+simple_entity_expression | NULL
+ </p>
+ </li><li class="listitem">
+ <p>
+delete_statement ::= delete_clause [where_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+delete_clause ::= DELETE FROM entity_name [[AS]
+identification_variable]
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+The syntax of the <code class="literal">WHERE</code> clause is described in
+<a class="xref" href="jpa_langref.html#jpa_langref_where" title="2.4. JPQL WHERE Clause">Section 2.4, “
+ JPQL WHERE Clause
+ ”</a>.
+ </p>
+ <p>
+A delete operation only applies to
+entities of the specified class and its subclasses. It does not cascade to
+related entities.
+ </p>
+ <p>
+The <code class="literal">new_value</code> specified for an update operation must be
+compatible in type with the state-field to which it is assigned.
+ </p>
+ <p>
+Bulk update
+maps directly to a database update operation, bypassing optimistic locking
+checks. Portable applications must manually update the value of the version
+column, if desired, and/or manually validate the value of the version column.
+ </p>
+ <p>
+The persistence context is not synchronized with the result of the bulk update
+or delete.
+ </p>
+ <p>
+Caution should be used when executing bulk update or delete
+operations because they may result in inconsistencies between the database and
+the entities in the active persistence context. In general, bulk update and
+delete operations should only be performed within a transaction in a new persistence context or at
+the beginning of a transaction (before entities have been accessed whose state
+might be affected by such operations).
+ </p>
+ <p>
+Examples: </p><pre class="programlisting">DELETE FROM Publisher pub WHERE pub.revenue > 1000000.0
+</pre><pre class="programlisting">DELETE FROM Publisher pub WHERE pub.revenue = 0 AND pub.magazines IS EMPTY
+</pre><pre class="programlisting">UPDATE Publisher pub SET pub.status = 'outstanding'
+ WHERE pub.revenue < 1000000 AND 20 > (SELECT COUNT(mag) FROM pub.magazines mag)
+</pre><p>
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_null_values"><div class="titlepage"><div><div><h3 class="title">2.11.
+ JPQL Null Values
+ </h3></div></div></div>
+
+ <p>
+When the target of a reference does not exist in the database, its value is
+regarded as <code class="literal">NULL</code>. SQL 92 <code class="literal">NULL</code> semantics
+defines the evaluation of conditional expressions containing <code class="literal">NULL
+</code> values. The following is a brief description of these semantics:
+ </p>
+ <p>
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Comparison or arithmetic operations with a
+<code class="literal">NULL</code> value always yield an unknown value.
+ </p>
+ </li><li class="listitem">
+ <p>
+Two <code class="literal">NULL</code> values are not considered to be equal, the
+comparison yields an unknown value.
+ </p>
+ </li><li class="listitem">
+ <p>
+Comparison or arithmetic operations with an unknown value always yield an
+unknown value.
+ </p>
+ </li><li class="listitem">
+ <p>
+The <code class="literal">IS NULL</code> and <code class="literal">IS NOT NULL</code> operators
+convert a <code class="literal">NULL</code> state-field or single-valued association-field
+value into the respective <code class="literal">TRUE</code> or <code class="literal">FALSE</code>
+value.
+ </p>
+ </li></ul></div><p>
+ </p>
+ <p>
+Note: The JPQL defines the empty string, "", as a string with 0 length, which is
+not equal to a <code class="literal">NULL</code> value. However, <code class="literal">NULL</code>
+values and empty strings may not always be distinguished when queries are mapped
+to some databases. Application developers should therefore not rely on the
+semantics of query comparisons involving the empty string and <code class="literal">NULL
+</code> value.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_equality"><div class="titlepage"><div><div><h3 class="title">2.12.
+ JPQL Equality and Comparison Semantics
+ </h3></div></div></div>
+
+ <p>
+Only the values of <code class="literal">like</code> types are permitted to be compared. A type is <code class="literal">like</code>
+another type if they correspond to the same Java language type, or if one is a
+primitive Java language type and the other is the wrappered Java class type
+equivalent (e.g., <code class="literal">int</code> and <code class="literal">Integer</code> are like types in this sense). There is one
+exception to this rule: it is valid to compare numeric values for which the
+rules of numeric promotion apply. Conditional expressions attempting to compare
+non-like type values are disallowed except for this numeric case.
+ </p>
+ <p>
+Note that the
+arithmetic operators and comparison operators are permitted to be applied to
+state-fields and input parameters of the wrappered Java class equivalents to the
+primitive numeric Java types.
+ </p>
+ <p>
+Two entities of the same abstract schema type are
+equal if and only if they have the same primary key value.
+ </p>
+ <p>
+Equality/inequality comparisons over enums are supported.
+ </p>
+ <p>
+Comparisons over instances of embeddable class or map entry types are not supported.
+ </p>
+ </div>
+ <div class="section" id="jpa_langref_bnf"><div class="titlepage"><div><div><h3 class="title">2.13.
+ JPQL BNF
+ </h3></div></div></div>
+
+ <p>
+BNF notation summary:
+ </p>
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+{ ... } grouping
+ </li><li class="listitem">
+[ ... ] optional constructs
+ </li><li class="listitem">
+* zero or more
+ </li><li class="listitem">
++ one or more
+ </li><li class="listitem">
+| alternates
+ </li></ul></div>
+ <p>
+The following is the BNF for the Jakarta Persistence query language, from section
+4.14 of the Jarkata Persistence 3.1 specification.
+ </p>
+ <div class="itemizedlist"><p>
+select_item ::= select_expression [[AS] result_variable]
+ </p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ <p>
+QL_statement ::= select_statement | update_statement | delete_statement
+ </p>
+ </li><li class="listitem">
+ <p>
+select_statement ::= select_clause from_clause [where_clause] [groupby_clause]
+[having_clause] [orderby_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+update_statement ::= update_clause [where_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+delete_statement ::= delete_clause [where_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+from_clause ::= <code class="literal">FROM</code> identification_variable_declaration {,
+{identification_variable_declaration | collection_member_declaration}}*
+ </p>
+ </li><li class="listitem">
+ <p>
+identification_variable_declaration ::= range_variable_declaration { join |
+fetch_join }*
+ </p>
+ </li><li class="listitem">
+ <p>
+range_variable_declaration ::= entity_name [ <code class="literal">AS</code> ]
+identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+join ::= join_spec join_association_path_expression [ <code class="literal">AS</code> ]
+identification_variable [join_conition]
+ </p>
+ </li><li class="listitem">
+ <p>
+fetch_join ::= join_spec <code class="literal">FETCH</code>
+join_association_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+join_spec ::= [ <code class="literal">LEFT</code> [ <code class="literal">OUTER</code> ]| <code class="literal">
+INNER</code> ] <code class="literal">JOIN</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+join_condition ::= ON conditional_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+join_association_path_expression ::= join_collection_valued_path_expression |
+join_single_valued_path_expression | <code class="literal">TREAT</code>(join_collection_valued_path_expression AS subtype) | <code class="literal">TREAT</code>(join_single_valued_path_expression AS subtype)
+ </p>
+ </li><li class="listitem">
+ <p>
+join_collection_valued_path_expression ::=
+identification_variable.{single_valued_embeddable_object_field.}* collection_valued_field
+ </p>
+ </li><li class="listitem">
+ <p>
+join_single_valued_path_expression ::=
+identification_variable.{single_valued_embeddable_object_field.}* single_valued_object_field
+ </p>
+ </li><li class="listitem">
+ <p>
+collection_member_declaration ::= <code class="literal">IN</code>
+(join_collection_valued_path_expression) [ <code class="literal">AS</code> ]
+identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+qualified_identification_variable ::=
+map_field_identification_variable | <code class="literal">ENTRY</code>(identification_variable)
+ </p>
+ </li><li class="listitem">
+ <p>
+map_field_identification_variable ::=
+<code class="literal">KEY</code>(identification_variable) |
+<code class="literal">VALUE</code>(identification_variable)
+ </p>
+ </li><li class="listitem">
+ <p>
+single_valued_path_expression ::=
+qualified_identification_variable |
+<code class="literal">TREAT</code>(qualified_identification_variable <code class="literal">AS</code> subtype) |
+state_field_path_expression |
+single_valued_object_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+general_identification_variable ::=
+identification_variable |
+map_field_identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+general_subpath ::= simple_subpath | treated_subpath{.single_valued_object_field}*
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_subpath ::=
+ general_identification_variable |
+ general_identification_variable{.single_valued_object_field}*
+ </p>
+ </li><li class="listitem">
+ <p>
+treated_subpath ::= <code class="literal">TREAT</code>(general_subpath AS subtype)
+ </p>
+ </li><li class="listitem">
+ <p>
+state_field_path_expression ::= general_subpath.state_field
+ </p>
+ </li><li class="listitem">
+ <p>
+state_valued_path_expression ::=
+ state_field_path_expression | general_identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+single_valued_object_path_expression ::=
+ general_subpath.single_valued_object_field
+ </p>
+ </li><li class="listitem">
+ <p>
+collection_valued_path_expression ::= general_subpath.{collection_valued_field}
+ </p>
+ </li><li class="listitem">
+ <p>
+update_clause ::= <code class="literal">UPDATE</code> entity_name [[ <code class="literal">AS
+</code> ] identification_variable] <code class="literal">SET</code> update_item {,
+update_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+update_item ::= [identification_variable.]{single_valued_embeddable_object_field.}*
+ {state_field | single_valued_object_field} = new_value
+ </p>
+ </li><li class="listitem">
+ <p>
+new_value ::= scalar_expression |
+simple_entity_expression | <code class="literal">NULL</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+delete_clause ::= <code class="literal">DELETE</code><code class="literal">FROM</code>
+entity_name [[ <code class="literal">AS</code> ] identification_variable]
+ </p>
+ </li><li class="listitem">
+ <p>
+select_clause ::= <code class="literal">SELECT</code> [ <code class="literal">DISTINCT</code> ]
+select_item {, select_item}*
+ </p>
+ </li><li class="listitem">
+ </li><li class="listitem">
+ <p>
+select_expression ::=
+ single_valued_path_expression |
+ scalar_expression |
+ aggregate_expression |
+ identification_variable |
+ <code class="literal">OBJECT</code> (identification_variable) |
+ constructor_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+constructor_expression ::= <code class="literal">NEW</code> constructor_name(
+constructor_item {, constructor_item}*)
+ </p>
+ </li><li class="listitem">
+ <p>
+constructor_item ::= single_valued_path_expression |
+scalar_expression |
+aggregate_expression |
+identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+aggregate_expression ::= { <code class="literal">AVG</code> | <code class="literal">MAX</code> |
+<code class="literal">MIN</code> | <code class="literal">SUM</code> }([ <code class="literal">DISTINCT</code>
+] state_field_path_expression) | <code class="literal">COUNT</code> ([ <code class="literal">DISTINCT
+</code> ] identification_variable | state_field_path_expression |
+single_valued_object_path_expression) | function_invocation
+ </p>
+ </li><li class="listitem">
+ <p>
+where_clause ::= <code class="literal">WHERE</code> conditional_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+groupby_clause ::= <code class="literal">GROUP</code><code class="literal">BY</code> groupby_item {,
+groupby_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+groupby_item ::= single_valued_path_expression | identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+having_clause ::= <code class="literal">HAVING</code> conditional_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+orderby_clause ::= <code class="literal">ORDER</code><code class="literal">BY</code> orderby_item {,
+orderby_item}*
+ </p>
+ </li><li class="listitem">
+ <p>
+orderby_item ::= state_field_path_expression |
+ general_identification_variable |
+ result_variable [ <code class="literal">ASC</code> |
+<code class="literal">DESC</code> ]
+ </p>
+ </li><li class="listitem">
+ <p>
+subquery ::= simple_select_clause subquery_from_clause [where_clause]
+[groupby_clause] [having_clause]
+ </p>
+ </li><li class="listitem">
+ <p>
+subquery_from_clause ::= <code class="literal">FROM</code>
+subselect_identification_variable_declaration {,
+subselect_identification_variable_declaration |
+collection_member_declaration}*
+ </p>
+ </li><li class="listitem">
+ <p>
+subselect_identification_variable_declaration ::=
+identification_variable_declaration | derived_path_expression [ <code class="literal">AS
+</code> ] identification_variable | derived_collection_member_declaration
+ </p>
+ </li><li class="listitem">
+ <p>
+derived_path_expression ::=
+ general_derived_path.single_valued_object_field |
+ general_derived_path.collection_valued_field
+ </p>
+ </li><li class="listitem">
+ <p>
+general_derived_path ::=
+ simple_derived_path |
+ treated_derived_path{.single_valued_object_field}*
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_derived_path ::= superquery_identification_variable{.single_valued_object_field}*
+ </p>
+ </li><li class="listitem">
+ <p>
+treated_derived_path ::= <code class="literal">TREAT</code>(general_derived_path AS subtype)
+ </p>
+ </li><li class="listitem">
+ <p>
+derived_collection_member_declaration ::=
+<code class="literal">IN</code> superquery_identification_variable.{single_valued_object_field.}*collection_valued_field
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_select_clause ::= <code class="literal">SELECT</code> [ <code class="literal">DISTINCT</code>
+] simple_select_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_select_expression ::= single_valued_path_expression |
+scalar_expression | aggregate_expression | identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+scalar_expression ::=
+arithmetic_expression |
+string_expression |
+enum_expression |
+datetime_expression |
+boolean_expression |
+case_expression |
+entity_type_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_expression ::= conditional_term | conditional_expression <code class="literal">
+OR</code> conditional_term
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_term ::= conditional_factor | conditional_term <code class="literal">AND
+</code> conditional_factor
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_factor ::= [ <code class="literal">NOT</code> ] conditional_primary
+ </p>
+ </li><li class="listitem">
+ <p>
+conditional_primary ::= simple_cond_expression | (conditional_expression)
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_cond_expression ::= comparison_expression | between_expression |
+in_expression | like_expression | null_comparison_expression |
+empty_collection_comparison_expression | collection_member_expression |
+exists_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+between_expression ::= arithmetic_expression [ <code class="literal">NOT</code> ]
+<code class="literal">BETWEEN</code> arithmetic_expression <code class="literal">AND</code>
+arithmetic_expression | string_expression [ <code class="literal">NOT</code> ] <code class="literal">
+BETWEEN</code> string_expression <code class="literal">AND</code> string_expression |
+datetime_expression [ <code class="literal">NOT</code> ] <code class="literal">BETWEEN</code>
+datetime_expression <code class="literal">AND</code> datetime_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+in_expression ::= {state_field_path_expression | type_discriminator} [ <code class="literal">NOT</code> ]
+<code class="literal">IN</code> {( in_item {, in_item}*) | (subquery) | collection_valued_input_parameter }
+ </p>
+ </li><li class="listitem">
+ <p>
+in_item ::= literal | single_valued_input_parameter
+ </p>
+ </li><li class="listitem">
+ <p>
+like_expression ::= string_expression [ <code class="literal">NOT</code> ] <code class="literal">LIKE
+</code> pattern_value [ <code class="literal">ESCAPE</code> escape_character]
+ </p>
+ </li><li class="listitem">
+ <p>
+null_comparison_expression ::= {single_valued_path_expression | input_parameter}
+<code class="literal">IS</code> [ <code class="literal">NOT</code> ] <code class="literal">NULL</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+empty_collection_comparison_expression ::= collection_valued_path_expression
+<code class="literal">IS</code> [ <code class="literal">NOT</code> ] <code class="literal">EMPTY</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+collection_member_expression ::= entity_expression [ <code class="literal">NOT</code> ]
+<code class="literal">MEMBER</code> [ <code class="literal">OF</code> ]
+collection_valued_path_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+entity_or_value_expression ::=
+single_valued_object_path_expression |
+state_field_path_expression |
+simple_entity_or_value_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_entity_or_value_expression ::=
+identification_variable |
+input_parameter |
+literal
+ </p>
+ </li><li class="listitem">
+ <p>
+exists_expression ::= [ <code class="literal">NOT</code> ] <code class="literal">EXISTS</code>
+(subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+all_or_any_expression ::= { <code class="literal">ALL</code> | <code class="literal">ANY</code> |
+<code class="literal">SOME</code> }(subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+comparison_expression ::=
+string_expression comparison_operator {string_expression | all_or_any_expression} |
+boolean_expression {= | <>} {boolean_expression | all_or_any_expression} |
+enum_expression {= |<>} {enum_expression | all_or_any_expression} |
+datetime_expression comparison_operator {datetime_expression |
+all_or_any_expression} | entity_expression {= | <>} {entity_expression |
+all_or_any_expression} | arithmetic_expression comparison_operator
+{arithmetic_expression | all_or_any_expression} |
+entity_type_expression {= |<>} entity_type_expression}
+ </p>
+ </li><li class="listitem">
+ <p>
+comparison_operator ::= = | > | >= | < | <= | <>
+ </p>
+ </li><li class="listitem">
+ <p>
+arithmetic_expression ::= arithmetic_term | arithmetic_expression {+ | -} arithmetic_term
+ </p>
+ </li><li class="listitem">
+ <p>
+arithmetic_term ::= arithmetic_factor | arithmetic_term {* | /} arithmetic_factor
+ </p>
+ </li><li class="listitem">
+ <p>
+arithmetic_factor ::= [{+ | -}] arithmetic_primary
+ </p>
+ </li><li class="listitem">
+ <p>
+arithmetic_primary ::=
+ state_valued_path_expression | numeric_literal |
+ (arithmetic_expression) |
+ input_parameter |
+ functions_returning_numerics |
+ aggregate_expression |
+ case_expression |
+ function_invocation |
+ (subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+string_expression ::=
+ state_valued_path_expression |
+ string_literal |
+ input_parameter |
+ functions_returning_strings |
+ aggregate_expression |
+ case_expression |
+ function_invocation |
+ (subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+datetime_expression ::=
+ state_valued_path_expression |
+ input_parameter |
+ functions_returning_datetime |
+ aggregate_expression |
+ case_expression |
+ function_invocation |
+ date_time_timestamp_literal |
+ (subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+boolean_expression ::=
+ state_valued_path_expression |
+ boolean_literal |
+ input_parameter |
+ case_expression |
+ function_invocation |
+ (subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+enum_expression ::=
+ state_valued_path_expression |
+ enum_literal |
+ input_parameter |
+ case_expression |
+ (subquery)
+ </p>
+ </li><li class="listitem">
+ <p>
+entity_expression ::= single_valued_object_path_expression |
+simple_entity_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_entity_expression ::= identification_variable | input_parameter
+ </p>
+ </li><li class="listitem">
+ <p>
+entity_type_expression ::=
+type_discriminator |
+entity_type_literal |
+input_parameter
+ </p>
+ </li><li class="listitem">
+ <p>
+type_discriminator ::=
+<code class="literal">TYPE</code>(identification_variable |
+single_valued_object_path_expression |
+input_parameter)
+ </p>
+ </li><li class="listitem">
+ <p>
+functions_returning_numerics ::= <code class="literal">LENGTH</code> (string_primary)|
+<code class="literal">LOCATE</code> (string_primary,string_primary [,
+arithmetic_expression]) | <code class="literal">ABS</code>
+(arithmetic_expression) | <code class="literal">CEILING</code>
+(arithmetic_expression) | <code class="literal">EXP</code>
+(arithmetic_expression) | <code class="literal">FLOOR</code>
+(arithmetic_expression) | <code class="literal">LN</code>
+(arithmetic_expression) | <code class="literal">SIGN</code>
+(arithmetic_expression) | <code class="literal">SQRT</code>
+(arithmetic_expression) | <code class="literal">MOD</code>
+(arithmetic_expression, arithmetic_expression) | <code class="literal">POWER</code>
+(arithmetic_expression) | <code class="literal">ROUND</code>
+(arithmetic_expression, arithmetic_expression) | <code class="literal">SIZE
+</code> (collection_valued_path_expression) |
+<code class="literal">INDEX</code>(identification_variable) |
+extract_datetime_field
+ </p>
+ </li><li class="listitem">
+ <p>
+functions_returning_datetime ::= <code class="literal">CURRENT_DATE</code> | <code class="literal">
+CURRENT_TIME</code> | <code class="literal">CURRENT_TIMESTAMP</code> |
+<code class="literal">LOCAL DATE</code> |
+<code class="literal">LOCAL TIME</code> |
+<code class="literal">LOCAL DATETIME</code> |
+extract_datetime_part
+ </p>
+ </li><li class="listitem">
+ <p>
+functions_returning_strings ::= <code class="literal">CONCAT</code> (string_expression,
+string_expression) | <code class="literal">SUBSTRING</code> (string_expression,
+arithmetic_expression[,arithmetic_expression])| <code class="literal">TRIM
+</code> ([[trim_specification] [trim_character] <code class="literal">FROM</code> ]
+string_expression) | <code class="literal">LOWER</code> (string_expression) | <code class="literal">UPPER
+</code> (string_expression)
+ </p>
+ </li><li class="listitem">
+ <p>
+trim_specification ::= <code class="literal">LEADING</code> | <code class="literal">TRAILING</code>
+| <code class="literal">BOTH</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+function_invocation ::= <code class="literal">FUNCTION</code>(function_name{, function_arg}*)
+ </p>
+ </li><li class="listitem">
+ <p>
+extract_datetime_field :=
+ <code class="literal">EXTRACT</code>(datetime_field FROM datetime_expression)
+ </p>
+ </li><li class="listitem">
+ <p>
+datetime_field := identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+extract_datetime_part :=
+ <code class="literal">EXTRACT</code>(datetime_part FROM datetime_expression)
+ </p>
+ </li><li class="listitem">
+ <p>
+datetime_part := identification_variable
+ </p>
+ </li><li class="listitem">
+ <p>
+function_arg ::=
+ literal |
+ state_valued_path_expression |
+ input_parameter |
+ scalar_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+case_expression ::=
+general_case_expression |
+simple_case_expression |
+coalesce_expression |
+nullif_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+general_case_expression::=
+<code class="literal">CASE</code> when_clause {when_clause}* <code class="literal">ELSE</code> scalar_expression <code class="literal">END</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+when_clause::= <code class="literal">WHEN</code> conditional_expression <code class="literal">THEN</code> scalar_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_case_expression::=
+<code class="literal">CASE</code> case_operand simple_when_clause {simple_when_clause}*
+<code class="literal">ELSE</code> scalar_expression
+<code class="literal">END</code>
+ </p>
+ </li><li class="listitem">
+ <p>
+case_operand::= state_field_path_expression | type_discriminator
+ </p>
+ </li><li class="listitem">
+ <p>
+simple_when_clause::= <code class="literal">WHEN</code> scalar_expression <code class="literal">THEN</code> scalar_expression
+ </p>
+ </li><li class="listitem">
+ <p>
+coalesce_expression::= <code class="literal">COALESCE</code>(scalar_expression {, scalar_expression}+)
+ </p>
+ </li><li class="listitem">
+ <p>
+nullif_expression::= <code class="literal">NULLIF</code>(scalar_expression, scalar_expression)
+ </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="jpa_overview_query.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="jpa_overview_query.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jpa_overview_criteria.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10.
+ JPA Query
+ </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 11.
+ JPA Criteria
+ </td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/4.1.0/apache-openjpa/docs/jpa_overview.html b/4.1.0/apache-openjpa/docs/jpa_overview.html
new file mode 100644
index 000000000..feb157055
--- /dev/null
+++ b/4.1.0/apache-openjpa/docs/jpa_overview.html
@@ -0,0 +1,469 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Part 2. Java Persistence API</title><base href="display"><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="up" href="manual.html" title="Apache OpenJPA 3.2 User's Guide"><link rel="prev" href="openjpa_legal_copyright.html" title="3. Copyrights"><link rel="next" href="jpa_overview_intro.html" title="Ch [...]
+ Introduction
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_intro.html#jpa_overview_intro_audience">1.
+ Intended Audience
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_intro_transpers.html">2.
+ Lightweight Persistence
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_why.html">2.
+ Why JPA?
+ </a></span></dt><dt><span class="chapter"><a href="jpa_overview_arch.html">3.
+ Java Persistence API Architecture
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_arch.html#jpa_overview_arch_exceptions">1.
+ JPA Exceptions
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_pc.html">4.
+ Entity
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict">1.
+ Restrictions on Persistent Classes
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_no_arg">1.1.
+ Default or No-Arg Constructor
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_final">1.2.
+ Final
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_id">1.3.
+ Identity Fields
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_version">1.4.
+ Version Field
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict_inheritance">1.5.
+ Inheritance
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict_fields">1.6.
+ Persistent Fields
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc.html#jpa_overview_pc_restrict_conclusion">1.7.
+ Conclusions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_pc_identity.html">2.
+ Entity Identity
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc_identity.html#jpa_overview_pc_identitycls">2.1.
+ Identity Class
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc_identity.html#jpa_overview_pc_identity_hierarchy">2.1.1.
+ Identity Hierarchies
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_overview_pc_callbacks.html">3.
+ Lifecycle Callbacks
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_pc_callbacks_methods">3.1.
+ Callback Methods
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_callbacks_using">3.2.
+ Using Callback Methods
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_entity_listeners_using">3.3.
+ Using Entity Listeners
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_pc_callbacks.html#jpa_overview_entity_listeners_exclude">3.4.
+ Entity Listeners Hierarchy
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_pc_conclusion.html">4.
+ Conclusions
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_meta.html">5.
+ Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_class">1.
+ Class Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_entity">1.1.
+ Entity
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_idclass">1.2.
+ Id Class
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_embeddablesuper">1.3.
+ Mapped Superclass
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_embeddable">1.4.
+ Embeddable
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_entity_listeners">1.5.
+ EntityListeners
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta.html#jpa_overview_meta_classex">1.6.
+ Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html">2.
+ Field and Property Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_explicit_access">2.1.
+ Explicit Access
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_transient">2.2.
+ Transient
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_id">2.3.
+ Id
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_gen">2.4.
+ Generated Value
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_embedid">2.5.
+ Embedded Id
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_version">2.6.
+ Version
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_basic">2.7.
+ Basic
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_fetch">2.7.1.
+ Fetch Type
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_embedded">2.8.
+ Embedded
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_manytoone">2.9.
+ Many To One
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_cascade">2.9.1.
+ Cascade Type
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_onetomany">2.10.
+ One To Many
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_mappedby">2.10.1.
+ Bidirectional Relations
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_onetoone">2.11.
+ One To One
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_manytomany">2.12.
+ Many To Many
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_orderby">2.13.
+ Order By
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_mapkey">2.14.
+ Map Key
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_field.html#jpa_overview_meta_fielddefaults">2.15.
+ Persistent Field Defaults
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_meta_xml.html">3.
+ XML Schema
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_meta_complete.html">4.
+ Conclusion
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_persistence.html">6.
+ Persistence
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_persistence.html#jpa_overview_persistence_xml">1.
+ persistence.xml
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_persistence_use.html">2.
+ Non-EE Use
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_emfactory.html">7.
+ EntityManagerFactory
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_emfactory.html#jpa_overview_emfactory_obtain">1.
+ Obtaining an EntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_em.html">2.
+ Obtaining EntityManagers
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_perscontext.html">3.
+ Persistence Context
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_emfactory_perscontext.html#jpa_overview_emfactory_perscontext_trans">3.1.
+ Transaction Persistence Context
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_perscontext.html#jpa_overview_emfactory_perscontext_extend">3.2.
+ Extended Persistence Context
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_emf_properties.html">4.
+ Retrieving Properties Information
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_close.html">5.
+ Closing the EntityManagerFactory
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_emfactory_puutil.html">6.
+ PersistenceUnitUtil
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_em.html">8.
+ EntityManager
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_em.html#jpa_overview_em_trans">1.
+ Transaction Association
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_lifecycle.html">2.
+ Entity Lifecycle Management
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_lifeexamples.html">3.
+ Lifecycle Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_identity.html">4.
+ Entity Identity Management
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_cache.html">5.
+ Cache Management
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_query.html">6.
+ Query Factory
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_locking.html">7.
+ Entity Locking
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_properties.html">8.
+ Retrieving Properties Information
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_em_closing.html">9.
+ Closing
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_trans.html">9.
+ Transaction
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_trans.html#jpa_overview_trans_types">1.
+ Transaction Types
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_trans_local.html">2.
+ The EntityTransaction Interface
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_query.html">10.
+ JPA Query
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_query.html#jpa_query_api">1.
+ JPQL API
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_basic">1.1.
+ Query Basics
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_relations">1.2.
+ Relation Traversal
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_embeddables">1.3.
+ Embeddable Traversal
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_join_fetch">1.4.
+ Fetch Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_functions">1.5.
+ JPQL Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_inheritance">1.6.
+ Polymorphic Queries
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_params">1.7.
+ Query Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_hints">1.8.
+ Query Hints
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_locking">1.8.1.
+ Locking Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_locktimeout">1.8.2.
+ Lock Timeout Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_querytimeout">1.8.3.
+ Query Timeout Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_resultset">1.8.4.
+ Result Set Size Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_isolation">1.8.5.
+ Isolation Level Hint
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_fetchplan">1.8.6.
+ Other Fetchplan Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#d5e3458">1.8.7.
+ Database-Specific Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_hints_named">1.8.8.
+ Named Query Hints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#multi-hints-handling">1.8.9.
+ Handling of Multiple Similar Query Hints
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_ordering">1.9.
+ Ordering
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_aggregates">1.10.
+ Aggregates
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_named">1.11.
+ Named Queries
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_delete">1.12.
+ Delete By Query
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_query.html#jpa_overview_query_update">1.13.
+ Update By Query
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html">2.
+ JPQL Language Reference
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_stmnttypes">2.1.
+ JPQL Statement Types
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select">2.1.1.
+ JPQL Select Statement
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk">2.1.2.
+ JPQL Update and Delete Statements
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schematypes">2.2.
+ JPQL Abstract Schema Types and Query Domains
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemanaming">2.2.1.
+ JPQL Entity Naming
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_schemaexample">2.2.2.
+ JPQL Schema Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fromclause">2.3.
+ JPQL FROM Clause and Navigational Declarations
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_identifiers">2.3.1.
+ JPQL FROM Identifiers
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_vars">2.3.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_range">2.3.3.
+ JPQL Range Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path">2.3.4.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_Joins">2.3.5.
+ JPQL Joins
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_inner_joins">2.3.5.1.
+ JPQL Inner Joins (Relationship Joins)
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_outer_joins">2.3.5.2.
+ JPQL Outer Joins
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_fetch_joins">2.3.5.3.
+ JPQL Fetch Joins
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_dec">2.3.6.
+ JPQL Collection Member Declarations
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_from_clause_and_sql">2.3.7.
+ JPQL FROM Clause and SQL
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_polymorph">2.3.8.
+ JPQL Polymorphism
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_where">2.4.
+ JPQL WHERE Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond">2.5.
+ JPQL Conditional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_lit">2.5.1.
+ JPQL Literals
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_idvar">2.5.2.
+ JPQL Identification Variables
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_path_exp">2.5.3.
+ JPQL Path Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_input_params">2.5.4.
+ JPQL Input Parameters
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_pos_params">2.5.4.1.
+ JPQL Positional Parameters
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_named_params">2.5.4.2.
+ JPQL Named Parameters
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_cond_comp">2.5.5.
+ JPQL Conditional Expression Composition
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_operators">2.5.6.
+ JPQL Operators and Operator Precedence
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_comparison_expressions">2.5.7.
+ JPQL Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_between">2.5.8.
+ JPQL Between Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_in_expressions">2.5.9.
+ JPQL In Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_like">2.5.10.
+ JPQL Like Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null">2.5.11.
+ JPQL Null Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_empty_comp">2.5.12.
+ JPQL Empty Collection Comparison Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_collection_member">2.5.13.
+ JPQL Collection Member Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_exists">2.5.14.
+ JPQL Exists Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_all_any">2.5.15.
+ JPQL All or Any Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_subqueries">2.5.16.
+ JPQL Subqueries
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_scalar_expressions">2.6.
+ JPQL Scalar Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_math_expressions">2.6.1.
+ Arithmetic Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_functional_expressions">2.6.2.
+ String, Arithmetic, and Datetime Functional Expressions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_string_fun">2.6.2.1.
+ JPQL String Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_arithmetic">2.6.2.2.
+ JPQL Arithmetic Functions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_datetime">2.6.2.3.
+ JPQL Datetime Functions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_case_expressions">2.6.3.
+ Case Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_entity_type_expressions">2.6.4.
+ Entity Type Expressions
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_group">2.7.
+ JPQL GROUP BY, HAVING
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_select_clause">2.8.
+ JPQL SELECT Clause
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_resulttype">2.8.1.
+ JPQL Result Type of the SELECT Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_constructor">2.8.2.
+ JPQL Constructor Expressions
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_select">2.8.3.
+ JPQL Null Values in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_embeddables">2.8.4.
+ JPQL Embeddables in the Query Result
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_aggregates">2.8.5.
+ JPQL Aggregate Functions
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_langref.html#jpa_langref_agg_examples">2.8.5.1.
+ JPQL Aggregate Examples
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_numeric_expressions_in_select">2.8.5.2.
+ JPQL Numeric Expressions in the SELECT Clause
+ </a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="jpa_langref.html#jpa_langref_orderby">2.9.
+ JPQL ORDER BY Clause
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bulk_ops">2.10.
+ JPQL Bulk Update and Delete
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_null_values">2.11.
+ JPQL Null Values
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_equality">2.12.
+ JPQL Equality and Comparison Semantics
+ </a></span></dt><dt><span class="section"><a href="jpa_langref.html#jpa_langref_bnf">2.13.
+ JPQL BNF
+ </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="jpa_overview_criteria.html">11.
+ JPA Criteria
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_criteria.html#d5e5484">1. Constructing a CriteriaQuery</a></span></dt><dt><span class="section"><a href="ch13s02.html">2. Executing a CriteriaQuery</a></span></dt><dt><span class="section"><a href="ch13s03.html">3. Extension to Criteria API</a></span></dt><dt><span class="section"><a href="ch13s04.html">4. Generation of Canonical MetaModel classes</a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_ov [...]
+ SQL Queries
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_sqlquery.html#jpa_overview_sqlquery_create">1.
+ Creating SQL Queries
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_sqlquery_obj.html">2.
+ Retrieving Persistent Objects with SQL
+ </a></span></dt></dl></dd><dt><span class="chapter"><a href="jpa_overview_mapping.html">13.
+ Mapping Metadata
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping.html#jpa_overview_mapping_table">1.
+ Table
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_unq.html">2.
+ Unique Constraints
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_column.html">3.
+ Column
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_id.html">4.
+ Identity Mapping
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_sequence.html">5.
+ Generators
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_seqgen">5.1.
+ Sequence Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_tablegen">5.2.
+ Table Generator
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_sequence.html#jpa_overview_mapping_sequence_genex">5.3.
+ Example
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html">6.
+ Inheritance
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single">6.1.
+ Single Table
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single_adv">6.1.1.
+ Advantages
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single_disadv">6.1.2.
+ Disadvantages
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined">6.2.
+ Joined
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined_adv">6.2.1.
+ Advantages
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_joined_disadv">6.2.2.
+ Disadvantages
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpc">6.3.
+ Table Per Class
+ </a></span></dt><dd><dl><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpc_adv">6.3.1.
+ Advantages
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_tpc_disadv">6.3.2.
+ Disadvantages
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_together">6.4.
+ Putting it All Together
+ </a></span></dt></dl></dd><dt><span class="section"><a href="jpa_overview_mapping_discrim.html">7.
+ Discriminator
+ </a></span></dt><dt><span class="section"><a href="jpa_overview_mapping_field.html">8.
... 356534 lines suppressed ...