Apache OpenJPA 3.2 User's Guide

Apache OpenJPA 3.2 User's Guide

Built from OpenJPA version revision 6f721f69c93f9c48027837da31a9e2e6f1603647.

Last updated on 10. Mai 2021 at 19:23.


Table of Contents

1. Introduction
1. About
2. Legal
1. License
2. Notice
3. Copyrights
3.1. Apache
3.2. Serp
3.3. Sun
3.4. Other
2. Java Persistence API
1. Introduction
1. Intended Audience
2. Lightweight Persistence
2. Why JPA?
3. Java Persistence API Architecture
1. JPA Exceptions
4. Entity
1. Restrictions on Persistent Classes
1.1. Default or No-Arg Constructor
1.2. Final
1.3. Identity Fields
1.4. Version Field
1.5. Inheritance
1.6. Persistent Fields
1.7. Conclusions
2. Entity Identity
2.1. Identity Class
2.1.1. Identity Hierarchies
3. Lifecycle Callbacks
3.1. Callback Methods
3.2. Using Callback Methods
3.3. Using Entity Listeners
3.4. Entity Listeners Hierarchy
4. Conclusions
5. Metadata
1. Class Metadata
1.1. Entity
1.2. Id Class
1.3. Mapped Superclass
1.4. Embeddable
1.5. EntityListeners
1.6. Example
2. Field and Property Metadata
2.1. Explicit Access
2.2. Transient
2.3. Id
2.4. Generated Value
2.5. Embedded Id
2.6. Version
2.7. Basic
2.7.1. Fetch Type
2.8. Embedded
2.9. Many To One
2.9.1. Cascade Type
2.10. One To Many
2.10.1. Bidirectional Relations
2.11. One To One
2.12. Many To Many
2.13. Order By
2.14. Map Key
2.15. Persistent Field Defaults
3. XML Schema
4. Conclusion
6. Persistence
1. persistence.xml
2. Non-EE Use
7. EntityManagerFactory
1. Obtaining an EntityManagerFactory
2. Obtaining EntityManagers
3. Persistence Context
3.1. Transaction Persistence Context
3.2. Extended Persistence Context
4. Retrieving Properties Information
5. Closing the EntityManagerFactory
6. PersistenceUnitUtil
8. EntityManager
1. Transaction Association
2. Entity Lifecycle Management
3. Lifecycle Examples
4. Entity Identity Management
5. Cache Management
6. Query Factory
7. Entity Locking
8. Retrieving Properties Information
9. Closing
9. Transaction
1. Transaction Types
2. The EntityTransaction Interface
10. JPA Query
1. JPQL API
1.1. Query Basics
1.2. Relation Traversal
1.3. Embeddable Traversal
1.4. Fetch Joins
1.5. JPQL Functions
1.6. Polymorphic Queries
1.7. Query Parameters
1.8. Query Hints
1.8.1. Locking Hints
1.8.2. Lock Timeout Hint
1.8.3. Query Timeout Hint
1.8.4. Result Set Size Hint
1.8.5. Isolation Level Hint
1.8.6. Other Fetchplan Hints
1.8.7. Database-Specific Hints
1.8.8. Named Query Hints
1.8.9. Handling of Multiple Similar Query Hints
1.9. Ordering
1.10. Aggregates
1.11. Named Queries
1.12. Delete By Query
1.13. Update By Query
2. JPQL Language Reference
2.1. JPQL Statement Types
2.1.1. JPQL Select Statement
2.1.2. JPQL Update and Delete Statements
2.2. JPQL Abstract Schema Types and Query Domains
2.2.1. JPQL Entity Naming
2.2.2. JPQL Schema Example
2.3. JPQL FROM Clause and Navigational Declarations
2.3.1. JPQL FROM Identifiers
2.3.2. JPQL Identification Variables
2.3.3. JPQL Range Declarations
2.3.4. JPQL Path Expressions
2.3.5. JPQL Joins
2.3.5.1. JPQL Inner Joins (Relationship Joins)
2.3.5.2. JPQL Outer Joins
2.3.5.3. JPQL Fetch Joins
2.3.6. JPQL Collection Member Declarations
2.3.7. JPQL FROM Clause and SQL
2.3.8. JPQL Polymorphism
2.4. JPQL WHERE Clause
2.5. JPQL Conditional Expressions
2.5.1. JPQL Literals
2.5.2. JPQL Identification Variables
2.5.3. JPQL Path Expressions
2.5.4. JPQL Input Parameters
2.5.4.1. JPQL Positional Parameters
2.5.4.2. JPQL Named Parameters
2.5.5. JPQL Conditional Expression Composition
2.5.6. JPQL Operators and Operator Precedence
2.5.7. JPQL Comparison Expressions
2.5.8. JPQL Between Expressions
2.5.9. JPQL In Expressions
2.5.10. JPQL Like Expressions
2.5.11. JPQL Null Comparison Expressions
2.5.12. JPQL Empty Collection Comparison Expressions
2.5.13. JPQL Collection Member Expressions
2.5.14. JPQL Exists Expressions
2.5.15. JPQL All or Any Expressions
2.5.16. JPQL Subqueries
2.6. JPQL Scalar Expressions
2.6.1. Arithmetic Expressions
2.6.2. String, Arithmetic, and Datetime Functional Expressions
2.6.2.1. JPQL String Functions
2.6.2.2. JPQL Arithmetic Functions
2.6.2.3. JPQL Datetime Functions
2.6.3. Case Expressions
2.6.4. Entity Type Expressions
2.7. JPQL GROUP BY, HAVING
2.8. JPQL SELECT Clause
2.8.1. JPQL Result Type of the SELECT Clause
2.8.2. JPQL Constructor Expressions
2.8.3. JPQL Null Values in the Query Result
2.8.4. JPQL Embeddables in the Query Result
2.8.5. JPQL Aggregate Functions
2.8.5.1. JPQL Aggregate Examples
2.8.5.2. JPQL Numeric Expressions in the SELECT Clause
2.9. JPQL ORDER BY Clause
2.10. JPQL Bulk Update and Delete
2.11. JPQL Null Values
2.12. JPQL Equality and Comparison Semantics
2.13. JPQL BNF
11. JPA Criteria
1. Constructing a CriteriaQuery
2. Executing a CriteriaQuery
3. Extension to Criteria API
4. Generation of Canonical MetaModel classes
12. SQL Queries
1. Creating SQL Queries
2. Retrieving Persistent Objects with SQL
13. Mapping Metadata
1. Table
2. Unique Constraints
3. Column
4. Identity Mapping
5. Generators
5.1. Sequence Generator
5.2. Table Generator
5.3. Example
6. Inheritance
6.1. Single Table
6.1.1. Advantages
6.1.2. Disadvantages
6.2. Joined
6.2.1. Advantages
6.2.2. Disadvantages
6.3. Table Per Class
6.3.1. Advantages
6.3.2. Disadvantages
6.4. Putting it All Together
7. Discriminator
8. Field Mapping
8.1. Basic Mapping
8.1.1. LOBs
8.1.2. Enumerated
8.1.3. Temporal Types
8.1.4. The Updated Mappings
8.2. Secondary Tables
8.3. Embedded Mapping
8.4. Direct Relations
8.5. Join Table
8.6. Bidirectional Mapping
8.7. Map Mapping
9. The Complete Mappings
14. Conclusion
3. Reference Guide
1. Introduction
1. Intended Audience
2. Configuration
1. Introduction
2. Runtime Configuration
3. Command Line Configuration
3.1. Code Formatting
4. Plugin Configuration
5. OpenJPA Properties
5.1. openjpa.AutoClear
5.2. openjpa.AutoDetach
5.3. openjpa.BrokerFactory
5.4. openjpa.BrokerImpl
5.5. openjpa.Callbacks
5.6. openjpa.ClassResolver
5.7. openjpa.Compatibility
5.8. openjpa.ConnectionDriverName
5.9. openjpa.Connection2DriverName
5.10. openjpa.ConnectionFactory
5.11. openjpa.ConnectionFactory2
5.12. openjpa.ConnectionFactoryName
5.13. openjpa.ConnectionFactory2Name
5.14. openjpa.ConnectionFactoryMode
5.15. openjpa.ConnectionFactoryProperties
5.16. openjpa.ConnectionFactory2Properties
5.17. openjpa.ConnectionPassword
5.18. openjpa.Connection2Password
5.19. openjpa.ConnectionProperties
5.20. openjpa.Connection2Properties
5.21. openjpa.ConnectionURL
5.22. openjpa.Connection2URL
5.23. openjpa.ConnectionUserName
5.24. openjpa.Connection2UserName
5.25. openjpa.ConnectionRetainMode
5.26. openjpa.DataCache
5.27. openjpa.DataCacheManager
5.28. openjpa.DataCacheMode
5.29. openjpa.DataCacheTimeout
5.30. openjpa.DetachState
5.31. openjpa.DynamicDataStructs
5.32. openjpa.DynamicEnhancementAgent
5.33. openjpa.FetchBatchSize
5.34. openjpa.EncryptionProvider
5.35. openjpa.FetchGroups
5.36. openjpa.FlushBeforeQueries
5.37. openjpa.IgnoreChanges
5.38. openjpa.Id
5.39. openjpa.InitializeEagerly
5.40. openjpa.Instrumentation
5.41. openjpa.InverseManager
5.42. openjpa.LockManager
5.43. openjpa.LockTimeout
5.44. openjpa.Log
5.45. openjpa.ManagedRuntime
5.46. openjpa.Mapping
5.47. openjpa.MaxFetchDepth
5.48. openjpa.MetaDataFactory
5.49. openjpa.MetaDataRepository
5.50. openjpa.Multithreaded
5.51. openjpa.Optimistic
5.52. openjpa.OptimizeIdCopy
5.53. openjpa.OrphanedKeyAction
5.54. openjpa.NontransactionalRead
5.55. openjpa.NontransactionalWrite
5.56. openjpa.ProxyManager
5.57. openjpa.PostLoadOnMerge
5.58. openjpa.QueryCache
5.59. openjpa.QueryCompilationCache
5.60. openjpa.ReadLockLevel
5.61. openjpa.RemoteCommitProvider
5.62. openjpa.RestoreState
5.63. openjpa.RetainState
5.64. openjpa.RetryClassRegistration
5.65. openjpa.RuntimeUnenhancedClasses
5.66. openjpa.SavepointManager
5.67. openjpa.Sequence
5.68. openjpa.Specification
5.69. openjpa.TransactionMode
5.70. openjpa.UseTCCLinSelectNew
5.71. openjpa.WriteLockLevel
6. OpenJPA JDBC Properties
6.1. openjpa.jdbc.ConnectionDecorators
6.2. openjpa.jdbc.DBDictionary
6.3. openjpa.jdbc.DriverDataSource
6.4. openjpa.jdbc.EagerFetchMode
6.5. openjpa.jdbc.FetchDirection
6.6. openjpa.jdbc.JDBCListeners
6.7. openjpa.jdbc.LRSSize
6.8. openjpa.jdbc.MappingDefaults
6.9. openjpa.jdbc.MappingFactory
6.10. openjpa.jdbc.QuerySQLCache
6.11. openjpa.jdbc.ResultSetType
6.12. openjpa.jdbc.Schema
6.13. openjpa.jdbc.SchemaFactory
6.14. openjpa.jdbc.Schemas
6.15. openjpa.jdbc.SQLFactory
6.16. openjpa.jdbc.SubclassFetchMode
6.17. openjpa.jdbc.SynchronizeMappings
6.18. openjpa.jdbc.TransactionIsolation
6.19. openjpa.jdbc.UpdateManager
6.20. Compatibility with Specification
3. Logging and Auditing
1. Logging Channels
2. OpenJPA Logging
3. Disabling Logging
4. Log4J
5. Apache Commons Logging
5.1. JDK java.util.logging
6. SLF4J
7. Custom Log
8. OpenJPA Audit
8.1. Configuration
8.2. Developing custom auditing
4. JDBC
1. Using the OpenJPA DataSource
1.1. Optional Connection Pooling
1.2. Configuring the OpenJPA DataSource
1.3. Configuring Apache Commons DBCP
2. Using a Third-Party DataSource
2.1. Managed and XA DataSources
2.2. Setting the DataSource at runtime
2.2.1. Using different DataSources for each EntityManager
2.2.1.1. Benefits
2.2.1.2. Limitations
2.2.1.3. Error handling
3. Runtime Access to DataSource
4. Database Support
4.1. DBDictionary Properties
4.2. FirebirdDictionary Properties
4.3. MySQLDictionary Properties
4.4. OracleDictionary Properties
4.5. SybaseDictionary Properties
4.6. DB2 Properties
4.7. Delimited Identifiers Support
5. Setting the Transaction Isolation
6. Setting the SQL Join Syntax
7. Accessing Multiple Databases
8. Configuring the Use of JDBC Connections
9. Statement Batching
10. Large Result Sets
11. Default Schema
12. Schema Reflection
12.1. Schemas List
12.2. Schema Factory
13. Schema Tool
14. XML Schema Format
5. Persistent Classes
1. Persistent Class List
2. Enhancement
2.1. Enhancing at Build Time
2.2. Enhancing JPA Entities on Deployment
2.3. Enhancing at Runtime
2.4. Enhancing Dynamically at Runtime
2.5. Omitting the OpenJPA enhancer
3. Managed Interfaces
4. Object Identity
4.1. Datastore Identity
4.2. Entities as Identity Fields
4.3. Application Identity Tool
4.4. Autoassign / Identity Strategy Caveats
5. Managed Inverses
6. Persistent Fields
6.1. Restoring State
6.2. Typing and Ordering
6.3. Calendar Fields and TimeZones
6.4. Proxies
6.4.1. Smart Proxies
6.4.2. Large Result Set Proxies
6.4.3. Custom Proxies
6.4.4. Serialization
6.5. Externalization
6.5.1. External Values
7. Fetch Groups
7.1. Custom Fetch Groups
7.2. Custom Fetch Group Configuration
7.3. Per-field Fetch Configuration
7.4. Implementation Notes
8. Eager Fetching
8.1. Configuring Eager Fetching
8.2. Eager Fetching Considerations and Limitations
6. Metadata
1. Metadata Factory
2. Metadata Repository
3. Additional JPA Metadata
3.1. Datastore Identity
3.2. Surrogate Version
3.3. Persistent Field Values
3.4. Persistent Collection Fields
3.5. Persistent Map Fields
4. Metadata Extensions
4.1. Class Extensions
4.1.1. Fetch Groups
4.1.2. Data Cache
4.1.3. Detached State
4.2. Field Extensions
4.2.1. Dependent
4.2.2. Load Fetch Group
4.2.3. LRS
4.2.4. Inverse-Logical
4.2.5. Read-Only
4.2.6. Type
4.2.7. Externalizer
4.2.8. Factory
4.2.9. External Values
4.3. Example
4.4. XML extensions
7. Mapping
1. Forward Mapping
1.1. Using the Mapping Tool
1.2. Generating DDL SQL
1.3. Runtime Forward Mapping
2. Reverse Mapping
2.1. Customizing Reverse Mapping
3. Meet-in-the-Middle Mapping
4. Mapping Defaults
5. Mapping Factory
6. Non-Standard Joins
7. Additional JPA Mappings
7.1. Datastore Identity Mapping
7.2. Surrogate Version Mapping
7.3. Multi-Column Mappings
7.4. Join Column Attribute Targets
7.5. Embedded Mapping
7.6. Collections
7.6.1. Container Table
7.6.2. Element Join Columns
7.6.3. Order Column
7.7. One-Sided One-Many Mapping
7.8. Maps
7.8.1. Key Columns
7.8.2. Key Join Columns
7.8.3. Key Embedded Mapping
7.8.4. Examples
7.9. Indexes and Constraints
7.9.1. Indexes
7.9.2. Foreign Keys
7.9.3. Unique Constraints
7.10. XML Column Mapping
7.11. LOB Streaming
8. Mapping Limitations
8.1. Table Per Class
9. Mapping Extensions
9.1. Class Extensions
9.1.1. Subclass Fetch Mode
9.1.2. Strategy
9.1.3. Discriminator Strategy
9.1.4. Version Strategy
9.2. Field Extensions
9.2.1. Eager Fetch Mode
9.2.2. Nonpolymorphic
9.2.3. Class Criteria
9.2.4. Strategy
10. Custom Mappings
10.1. Custom Class Mapping
10.2. Custom Discriminator and Version Strategies
10.3. Custom Field Mapping
10.3.1. Value Handlers
10.3.2. Field Strategies
10.3.3. Configuration
11. Orphaned Keys
8. Deployment
1. Factory Deployment
1.1. Standalone Deployment
1.2. EntityManager Injection
2. Integrating with the Transaction Manager
3. XA Transactions
3.1. Using OpenJPA with XA Transactions
9. Runtime Extensions
1. Architecture
1.1. Broker Finalization
1.2. Broker Customization and Eviction
2. JPA Extensions
2.1. OpenJPAEntityManagerFactory
2.2. OpenJPAEntityManager
2.3. OpenJPAQuery
2.4. Extent
2.5. StoreCache
2.6. QueryResultCache
2.7. FetchPlan
2.8. OpenJPAEntityTransaction
2.9. OpenJPAPersistence
3. Object Locking
3.1. Configuring Default Locking
3.2. Configuring Lock Levels at Runtime
3.3. Object Locking APIs
3.4. Lock Manager
3.5. Rules for Locking Behavior
3.6. Known Issues and Limitations
4. Savepoints
4.1. Using Savepoints
4.2. Configuring Savepoints
5. MethodQL
6. Generators
6.1. Runtime Access
7. Transaction Events
8. Non-Relational Stores
10. Caching
1. Data Cache
1.1. Data Cache Configuration
1.1.1. openjpa.DataCache Configuration
1.1.2. Integration with JPA standard shared cache mode
1.1.3. Distributing instances across cache partitions
1.2. Data Cache Usage
1.2.1. Using the JPA standard Cache interface
1.2.2. Using the OpenJPA StoreCache extensions
1.3. Cache Statistics
1.4. Query Cache
1.5. Cache Extension
1.6. Important Notes
1.7. Known Issues and Limitations
2. Query Compilation Cache
3. Prepared SQL Cache
11. Encryption Provider
12. Remote and Offline Operation
1. Detach and Attach
1.1. Detach Behavior
1.2. Attach Behavior
1.3. Defining the Detached Object Graph
1.3.1. Detached State
1.3.2. Detached State Field
2. Remote Event Notification Framework
2.1. Remote Commit Provider Configuration
2.1.1. JMS
2.1.2. TCP
2.1.3. Common Properties
2.2. Customization
13. Slice: Distributed Persistence
1. Overview
2. Salient Features
2.1. Transparency
2.2. Scaling
2.3. Distributed Query
2.4. Data Distribution
2.5. Data Replication
2.6. Heterogeneous Database
2.7. Distributed Transaction
2.8. Collocation Constraint
3. Usage
3.1. How to activate Slice Runtime?
3.2. How to configure each database slice?
3.3. Implement DistributionPolicy interface
3.4. Implement ReplicationPolicy interface
4. Configuration Properties
4.1. Global Properties
4.1.1. openjpa.slice.DistributionPolicy
4.1.2. openjpa.slice.Lenient
4.1.3. openjpa.slice.Master
4.1.4. openjpa.slice.Names
4.1.5. openjpa.slice.ThreadingPolicy
4.1.6. openjpa.slice.TransactionPolicy
4.2. Per-Slice Properties
14. Third Party Integration
1. Apache Ant
1.1. Common Ant Configuration Options
1.2. Enhancer Ant Task
1.3. Application Identity Tool Ant Task
1.4. Mapping Tool Ant Task
1.5. Reverse Mapping Tool Ant Task
1.6. Schema Tool Ant Task
2. Apache Commons DBCP
2.1. Apache Commons DBCP Configuration Options
15. Optimization Guidelines
16. Instrumentation
1. Configuration
1.1. JMX Platform MBean Enablement
2. Custom Providers and Instruments
4. Appendices
1. JPA Resources
2. Supported Databases
1. Overview
2. Verified Database Matrix
3. Compatible Database Matrix
4. Unverified Database Matrix
5. Apache Derby
6. Borland Interbase
6.1. Known issues with Interbase
7. JDataStore
8. IBM DB2
8.1. Known issues with DB2
9. Empress
9.1. Known issues with Empress
10. H2 Database Engine
10.1. Known issues with H2 Database Engine
11. Hypersonic
11.1. Known issues with Hypersonic
12. Firebird
12.1. Known issues with Firebird
13. Informix
13.1. Known issues with Informix
14. Ingres Database
14.1. Known issues with Ingres
15. InterSystems Cache
15.1. Known issues with InterSystems Cache
16. Microsoft Access
16.1. Known issues with Microsoft Access
17. Microsoft SQL Server
17.1. Known issues with SQL Server
18. Microsoft FoxPro
18.1. Known issues with Microsoft FoxPro
19. MySQL
19.1. Using Query Hints with MySQL
19.2. Known issues with MySQL
20. MariaDB
20.1. Known issues with MariaDB
21. Oracle
21.1. Using Query Hints with Oracle
21.2. Known issues with Oracle
22. Pointbase
22.1. Known issues with Pointbase
23. PostgreSQL
23.1. Known issues with PostgreSQL
24. IBM solidDB
24.1. M-type tables vs. D-type tables
24.2. Concurrency control mechanism
25. Sybase Adaptive Server
25.1. Known issues with Sybase
3. Migration Considerations
1. OpenJPA 2.0.0
1.1. Incompatibilities
1.1.1. getProperties()
1.1.2. Detach Behavior
1.1.3. Use of private persistent properties
1.1.4. Query.setParameter()
1.1.5. Serialization of Entities
1.1.6. openjpa.jdbc.QuerySQLCache
1.2. Disabling AutoOff Collection Tracking
1.3. Internal Behavioral Differences
1.3.1. PreUpdate/PostUpdate Life Cycle Callbacks
1.3.2. createEntityManagerFactory Exceptions
1.3.3. openjpa.QueryCache default
2. OpenJPA 2.2.0
2.1. Incompatibilities
2.1.1. allocationSize Property of Sequence Generator
2.1.2. MetaModel Attributes for Arrays
2.1.3. supportsSetClob Property.
2.1.4. useNativeSequenceCache Property.
2.1.5. Cascade persist behavior
2.1.6. Life Cycle Event Manager Callback Behavior
2.1.7. shared-cache-mode Property
3. OpenJPA 2.3.0
3.1. Incompatibilities
3.1.1. MappingTool Behavior for DB2 and Derby
3.1.2. RequiresSearchStringEscapeForLike DBDictionary Property
3.1.3. Return value of aggregate functions in SELECT clause
4. OpenJPA 3.2.0
4.1. Incompatibilities
4.1.1. SUM now always returns Double
4.1.2. Invalid Column Name Changes
4.1.3. MappingTool Behavior for HSQLDB
4.1.4. Respect TIMESTAMP precision in Oracle
4.1.5. Unary Operations return types
4.1.6. PostgreSQL now supports setQueryTimeOut

List of Tables

2.1. Persistence Mechanisms
10.1. Interaction of ReadLockMode hint and LockManager
2.1. Standard JPA Properties and OpenJPA equivalents
4.1. Default delimiters for delimited identifiers
4.2. OpenJPA Automatic Flush Behavior
5.1. Externalizer Options
5.2. Factory Options
10.1. Data access methods
10.2. Pre-defined aliases
10.3. Pre-defined aliases
15.1. Optimization Guidelines
2.1. Supported Databases and JDBC Drivers
2.2. Compatible Databases and JDBC Drivers
2.3. Unverified Databases and JDBC Drivers

List of Examples

3.1. Interaction of Interfaces Outside Container
3.2. Interaction of Interfaces Inside Container
4.1. Persistent Class
4.2. Identity Class
5.1. Class Metadata
5.2. Complete Metadata
6.1. persistence.xml
6.2. Obtaining an EntityManagerFactory
7.1. Behavior of Transaction Persistence Context
7.2. Behavior of Extended Persistence Context
8.1. Persisting Objects
8.2. Updating Objects
8.3. Removing Objects
8.4. Detaching and Merging
9.1. Grouping Operations with Transactions
10.1. Query Hints
10.2. Named Query using Hints
10.3. Setting Multiple Similar Query Hints
10.4. Delete by Query
10.5. Update by Query
12.1. Creating a SQL Query
12.2. Retrieving Persistent Objects
12.3. SQL Query Parameters
13.1. Mapping Classes
13.2. Defining a Unique Constraint
13.3. Identity Mapping
13.4. Generator Mapping
13.5. Single Table Mapping
13.6. Joined Subclass Tables
13.7. Table Per Class Mapping
13.8. Inheritance Mapping
13.9. Discriminator Mapping
13.10. Basic Field Mapping
13.11. Secondary Table Field Mapping
13.12. Embedded Field Mapping
13.13. Mapping Mapped Superclass Field
13.14. Direct Relation Field Mapping
13.15. Join Table Mapping
13.16. Join Table Map Mapping
13.17. Full Entity Mappings
2.1. Code Formatting with the Application Id Tool
3.1. Standard OpenJPA Log Configuration
3.2. Standard OpenJPA Log Configuration + All SQL Statements
3.3. Logging to a File
3.4. Standard Log4J Logging
3.5. JDK Log Properties
3.6. Custom Logging Class
4.1. Properties for the OpenJPA DataSource
4.2. Properties File for a Third-Party DataSource
4.3. Managed DataSource Configuration
4.4. Setting DataSource at Runtime
4.5. Using the EntityManager's Connection
4.6. Using the EntityManagerFactory's DataSource
4.7. Specifying a DBDictionary
4.8. Specifying a Transaction Isolation
4.9. Specifying the Join Syntax Default
4.10. Specifying the Join Syntax at Runtime
4.11. Specifying Connection Usage Defaults
4.12. Specifying Connection Usage at Runtime
4.13. Enable SQL statement batching
4.14. Disable SQL statement batching
4.15. Plug-in custom statement batching implementation
4.16. Specifying Result Set Defaults
4.17. Specifying Result Set Behavior at Runtime
4.18. Schema Creation
4.19. SQL Scripting
4.20. Table Cleanup
4.21. Schema Drop
4.22. Schema Reflection
4.23. Basic Schema
4.24. Full Schema
5.1. Using the OpenJPA Enhancer
5.2. Using the OpenJPA Agent for Runtime Enhancement
5.3. Passing Options to the OpenJPA Agent
5.4. JPA Datastore Identity Metadata
5.5. Finding an Entity with an Entity Identity Field
5.6. Id Class for Entity Identity Fields
5.7. Embedded Id for Entity Identity Fields
5.8. Using the Application Identity Tool
5.9. Specifying Logical Inverses
5.10. Enabling Managed Inverses
5.11. Log Inconsistencies
5.12. Using Initial Field Values
5.13. Using a Large Result Set Iterator
5.14. Marking a Large Result Set Field
5.15. Configuring the Proxy Manager
5.16. Using Externalization
5.17. Querying Externalization Fields
5.18. Using External Values
5.19. Custom Fetch Group Metadata
5.20. Load Fetch Group Metadata
5.21. Using the FetchPlan
5.22. Adding an Eager Field
5.23. Setting the Default Eager Fetch Mode
5.24. Setting the Eager Fetch Mode at Runtime
6.1. Setting a Standard Metadata Factory
6.2. Setting a Custom Metadata Factory
6.3. Setting the Preload Property on Metadata Repository
6.4. OpenJPA Metadata Extensions
6.5. OpenJPA Schema Extensions
7.1. Using the Mapping Tool
7.2. Creating the Relational Schema from Mappings
7.3. Refreshing entire schema and cleaning out tables
7.4. Dropping Mappings and Association Schema
7.5. Create DDL for Current Mappings
7.6. Create DDL to Update Database for Current Mappings
7.7. Configuring Runtime Forward Mapping
7.8. Reflection with the Schema Tool
7.9. Using the Reverse Mapping Tool
7.10. Customizing Reverse Mapping with Properties
7.11. Validating Mappings
7.12. Configuring Mapping Defaults
7.13. Standard JPA Configuration
7.14. Datastore Identity Mapping
7.15. Overriding Complex Mappings
7.16. One-Sided One-Many Mapping
7.17. String Key, Entity Value Map Mapping
7.18. myaddress.xsd
7.19. Address.java
7.20. USAAddress.java
7.21. CANAddress.java
7.22. Showing annotated Order entity with XML mapping strategy
7.23. Showing creation of Order entity having shipAddress mapped to XML column
7.24. Sample JPQL queries for XML column mapping
7.25. Annotated InputStream and Reader
7.26. Custom Logging Orphaned Keys
8.1. Configuring Transaction Manager Integration
9.1. Evict from Data Cache
9.2. Using a JPA Extent
9.3. Setting Default Lock Levels
9.4. Setting Runtime Lock Levels
9.5. Locking APIs
9.6. Disabling Locking
9.7. Using Savepoints
9.8. Named Seq Sequence
9.9. System Sequence Configuration
10.1. Single-JVM Data Cache
10.2. Lru Cache
10.3. Data Cache Size
10.4. Data Cache Timeout
10.5. Excluding entities
10.6. Including entities
10.7. Bulk updates and cache eviction
10.8.
10.9.
10.10.
10.11. Partitioned Data Cache
10.12. Accessing the Cache
10.13. Using the javax.persistence.Cache interface
10.14. Accessing the StoreCache
10.15. StoreCache Usage
10.16. Automatic Data Cache Eviction
10.17. Configuring CacheStatistics
10.18. Accessing the QueryResultCache
10.19. Query Cache Size
10.20. Disabling the Query Cache
10.21. Query Cache Eviction Policy
10.22. Evicting Queries
10.23. Pinning, and Unpinning Query Results
10.24. Disabling and Enabling Query Caching
10.25. Query Replaces Extent
10.26. Hardcoded Selection Value in JPQL Query
10.27. Parameterized Selection Value in JPQL Query
12.1. Configuring Detached State
12.2. JMS Remote Commit Provider Configuration
12.3. TCP Remote Commit Provider Configuration
12.4. JMS Remote Commit Provider transmitting Persisted Object Ids
14.1. Using the <config> Ant Tag
14.2. Using the Properties Attribute of the <config> Tag
14.3. Using the PropertiesFile Attribute of the <config> Tag
14.4. Using the <classpath> Ant Tag
14.5. Using the <codeformat> Ant Tag
14.6. Invoking the Enhancer from Ant
14.7. Invoking the Application Identity Tool from Ant
14.8. Invoking the Mapping Tool from Ant
14.9. Invoking the Reverse Mapping Tool from Ant
14.10. Invoking the Schema Tool from Ant
14.11. Using Commons DBCP with Apache Derby
2.1. Example properties for Derby
2.2. Example properties for Interbase
2.3. Example properties for JDataStore
2.4. Example properties for IBM DB2
2.5. Example properties for Empress
2.6. Example properties for H2 Database Engine
2.7. Example properties for Hypersonic
2.8. Example properties for Firebird
2.9. Example properties for Informix Dynamic Server
2.10. Example properties for Ingres
2.11. Example properties for InterSystems Cache
2.12. Example properties for Microsoft Access
2.13. Example properties for Microsoft SQL Server
2.14. Example properties for Microsoft FoxPro
2.15. Example properties for MySQL
2.16. Using MySQL Hints
2.17. Example properties for MariaDB
2.18. Example properties for Oracle
2.19. Using Oracle Hints
2.20. Property to disable statement batching for Oracle
2.21. Property to retain connection over the lifetime of the entity manager
2.22. Example properties for Pointbase
2.23. Example properties for PostgreSQL
2.24. Example properties for IBM solidDB
2.25. Example properties for Sybase