Part 3. Reference Guide

Table of Contents

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.ClassResolver
5.6. openjpa.Compatibility
5.7. openjpa.ConnectionDriverName
5.8. openjpa.Connection2DriverName
5.9. openjpa.ConnectionFactory
5.10. openjpa.ConnectionFactory2
5.11. openjpa.ConnectionFactoryName
5.12. openjpa.ConnectionFactory2Name
5.13. openjpa.ConnectionFactoryMode
5.14. openjpa.ConnectionFactoryProperties
5.15. openjpa.ConnectionFactory2Properties
5.16. openjpa.ConnectionPassword
5.17. openjpa.Connection2Password
5.18. openjpa.ConnectionProperties
5.19. openjpa.Connection2Properties
5.20. openjpa.ConnectionURL
5.21. openjpa.Connection2URL
5.22. openjpa.ConnectionUserName
5.23. openjpa.Connection2UserName
5.24. openjpa.ConnectionRetainMode
5.25. openjpa.DataCache
5.26. openjpa.DataCacheManager
5.27. openjpa.DataCacheTimeout
5.28. openjpa.DetachState
5.29. openjpa.DynamicDataStructs
5.30. openjpa.FetchBatchSize
5.31. openjpa.FetchGroups
5.32. openjpa.FlushBeforeQueries
5.33. openjpa.IgnoreChanges
5.34. openjpa.Id
5.35. openjpa.InverseManager
5.36. openjpa.LockManager
5.37. openjpa.LockTimeout
5.38. openjpa.Log
5.39. openjpa.ManagedRuntime
5.40. openjpa.Mapping
5.41. openjpa.MaxFetchDepth
5.42. openjpa.MetaDataFactory
5.43. openjpa.MetaDataRepository
5.44. openjpa.Multithreaded
5.45. openjpa.Optimistic
5.46. openjpa.OrphanedKeyAction
5.47. openjpa.NontransactionalRead
5.48. openjpa.NontransactionalWrite
5.49. openjpa.ProxyManager
5.50. openjpa.QueryCache
5.51. openjpa.QueryCompilationCache
5.52. openjpa.ReadLockLevel
5.53. openjpa.RemoteCommitProvider
5.54. openjpa.RestoreState
5.55. openjpa.RetainState
5.56. openjpa.RetryClassRegistration
5.57. openjpa.RuntimeUnenhancedClasses
5.58. openjpa.SavepointManager
5.59. openjpa.Sequence
5.60. openjpa.TransactionMode
5.61. 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
3. Logging
1. Logging Channels
2. OpenJPA Logging
3. Disabling Logging
4. Log4J
5. Apache Commons Logging
5.1. JDK 1.4 java.util.logging
6. Custom Log
4. JDBC
1. Using the OpenJPA DataSource
2. Using a Third-Party DataSource
2.1. Managed and XA DataSources
3. Runtime Access to DataSource
4. Database Support
4.1. DBDictionary Properties
4.2. MySQLDictionary Properties
4.3. OracleDictionary Properties
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. 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.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
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.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. Stream LOB Support
8. Key Columns
9. Key Join Columns
10. Key Embedded Mapping
11. Examples
12. Mapping Limitations
12.1. Table Per Class
13. Mapping Extensions
13.1. Class Extensions
13.1.1. Subclass Fetch Mode
13.1.2. Strategy
13.1.3. Discriminator Strategy
13.1.4. Version Strategy
13.2. Field Extensions
13.2.1. Eager Fetch Mode
13.2.2. Nonpolymorphic
13.2.3. Class Criteria
13.2.4. Strategy
14. Custom Mappings
14.1. Custom Class Mapping
14.2. Custom Discriminator and Version Strategies
14.3. Custom Field Mapping
14.3.1. Value Handlers
14.3.2. Field Strategies
14.3.3. Configuration
15. 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.2. Data Cache Usage
1.3. Query Cache
1.4. Cache Extension
1.5. Important Notes
1.6. Known Issues and Limitations
2. Query Compilation Cache
3. Query SQL Cache
11. 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 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
12. Distributed Persistence
1. Overview
2. Salient Features
2.1. Transparency
2.2. Custom Distribution Policy
2.3. Heterogeneous Database
2.4. Parallel Execution
2.5. Distributed Query
2.6. Targeted Query
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.
4. Global Properties
4.1. openjpa.slice.DistributionPolicy
4.2. openjpa.slice.Lenient
4.3. openjpa.slice.Master
4.4. openjpa.slice.Names
4.5. openjpa.slice.ThreadingPolicy
4.6. openjpa.slice.TransactionPolicy
5. Per-Slice Properties
13. 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
14. Optimization Guidelines