Part 6. Kodo JPA/JDO Reference Guide

Table of Contents

1. Introduction
1.1. Intended Audience
2. Configuration
2.1. Introduction
2.2. Runtime Configuration
2.3. Command Line Configuration
2.3.1. Code Formatting
2.4. Plugin Configuration
2.5. JDO Standard Properties
2.5.1. javax.jdo.PersistenceManagerFactoryClass
2.6. Kodo Properties
2.6.1. kodo.AggregateListeners
2.6.2. kodo.AutoClear
2.6.3. kodo.AutoDetach
2.6.4. kodo.BrokerFactory
2.6.5. kodo.BrokerImpl
2.6.6. kodo.ClassResolver
2.6.7. kodo.Compatibility
2.6.8. kodo.ConnectionDriverName
2.6.9. kodo.Connection2DriverName
2.6.10. kodo.ConnectionFactory
2.6.11. kodo.ConnectionFactory2
2.6.12. kodo.ConnectionFactoryName
2.6.13. kodo.ConnectionFactory2Name
2.6.14. kodo.ConnectionFactoryMode
2.6.15. kodo.ConnectionFactoryProperties
2.6.16. kodo.ConnectionFactory2Properties
2.6.17. kodo.ConnectionPassword
2.6.18. kodo.Connection2Password
2.6.19. kodo.ConnectionProperties
2.6.20. kodo.Connection2Properties
2.6.21. kodo.ConnectionURL
2.6.22. kodo.Connection2URL
2.6.23. kodo.ConnectionUserName
2.6.24. kodo.Connection2UserName
2.6.25. kodo.ConnectionRetainMode
2.6.26. kodo.DataCache
2.6.27. kodo.DataCacheManager
2.6.28. kodo.DataCacheTimeout
2.6.29. kodo.DetachState
2.6.30. kodo.DynamicDataStructs
2.6.31. kodo.ExecutionContextNameProvider
2.6.32. kodo.FetchBatchSize
2.6.33. kodo.FetchGroups
2.6.34. kodo.FilterListeners
2.6.35. kodo.FlushBeforeQueries
2.6.36. kodo.Id
2.6.37. kodo.IgnoreChanges
2.6.38. kodo.InverseManager
2.6.39. kodo.JMX
2.6.40. kodo.LockManager
2.6.41. kodo.LockTimeout
2.6.42. kodo.Log
2.6.43. kodo.ManagedRuntime
2.6.44. kodo.Mapping
2.6.45. kodo.MaxFetchDepth
2.6.46. kodo.MetaDataFactory
2.6.47. kodo.MetaDataRepository
2.6.48. kodo.Multithreaded
2.6.49. kodo.Optimistic
2.6.50. kodo.OrphanedKeyAction
2.6.51. kodo.NontransactionalRead
2.6.52. kodo.NontransactionalWrite
2.6.53. kodo.PersistenceServer
2.6.54. kodo.Profiling
2.6.55. kodo.ProxyManager
2.6.56. kodo.QueryCache
2.6.57. kodo.QueryCompilationCache
2.6.58. kodo.ReadLockLevel
2.6.59. kodo.RemoteCommitProvider
2.6.60. kodo.RestoreState
2.6.61. kodo.RetainState
2.6.62. kodo.RetryClassRegistration
2.6.63. kodo.SavepointManager
2.6.64. kodo.Sequence
2.6.65. kodo.TransactionMode
2.6.66. kodo.WriteLockLevel
2.7. Kodo JDBC Properties
2.7.1. kodo.jdbc.ConnectionDecorators
2.7.2. kodo.jdbc.DBDictionary
2.7.3. kodo.jdbc.DriverDataSource
2.7.4. kodo.jdbc.EagerFetchMode
2.7.5. kodo.jdbc.FetchDirection
2.7.6. kodo.jdbc.JDBCListeners
2.7.7. kodo.jdbc.LRSSize
2.7.8. kodo.jdbc.MappingDefaults
2.7.9. kodo.jdbc.MappingFactory
2.7.10. kodo.jdbc.ResultSetType
2.7.11. kodo.jdbc.Schema
2.7.12. kodo.jdbc.SchemaFactory
2.7.13. kodo.jdbc.Schemas
2.7.14. kodo.jdbc.SQLFactory
2.7.15. kodo.jdbc.SubclassFetchMode
2.7.16. kodo.jdbc.SynchronizeMappings
2.7.17. kodo.jdbc.TransactionIsolation
2.7.18. kodo.jdbc.UpdateManager
3. Logging
3.1. Logging Channels
3.2. Kodo Logging
3.3. Disabling Logging
3.4. Log4J
3.5. Apache Commons Logging
3.5.1. JDK 1.4 java.util.logging
3.6. Custom Log
4. JDBC
4.1. Using the Kodo DataSource
4.2. Using a Third-Party DataSource
4.2.1. Managed and XA DataSources
4.3. Runtime Access to DataSource
4.4. Database Support
4.4.1. DBDictionary Properties
4.4.2. MySQLDictionary Properties
4.4.3. OracleDictionary Properties
4.5. SQLFactory Properties
4.6. Setting the Transaction Isolation
4.7. Setting the SQL Join Syntax
4.8. Accessing Multiple Databases
4.9. Configuring the Use of JDBC Connections
4.10. Statement Batching
4.11. Large Result Sets
4.12. Default Schema
4.13. Schema Reflection
4.13.1. Schemas List
4.13.2. Schema Factory
4.14. Schema Tool
4.15. XML Schema Format
4.16. The SQLLine Utility
5. Persistent Classes
5.1. Persistent Class List
5.2. Enhancement
5.2.1. Enhancing at Build Time
5.2.2. Enhancing JPA Entities on Deployment
5.2.3. Enhancing at Runtime
5.2.4. Serializing Enhanced Types
5.3. Object Identity
5.3.1. Datastore Identity Objects
5.3.2. Application Identity Tool
5.3.3. Autoassign / Identity Strategy Caveats
5.4. Managed Inverses
5.5. Persistent Fields
5.5.1. Restoring State
5.5.2. Typing and Ordering
5.5.3. Calendar Fields and TimeZones
5.5.4. Proxies
5.5.4.1. Smart Proxies
5.5.4.2. Large Result Set Proxies
5.5.4.3. Custom Proxies
5.5.5. Externalization
5.5.5.1. External Values
5.6. Fetch Groups
5.6.1. Custom Fetch Groups
5.6.2. Custom Fetch Group Configuration
5.6.3. Per-field Fetch Configuration
5.6.4. Implementation Notes
5.7. Eager Fetching
5.7.1. Configuring Eager Fetching
5.7.2. Eager Fetching Considerations and Limitations
5.8. Lock Groups
5.8.1. Lock Groups and Subclasses
5.8.2. Lock Group Mapping
6. Metadata
6.1. Generating Default JDO Metadata
6.2. Metadata Factory
6.3. Additional JPA Metadata
6.3.1. Datastore Identity
6.3.2. Surrogate Version
6.3.3. Persistent Field Values
6.3.4. Persistent Collection Fields
6.3.5. Persistent Map Fields
6.4. Metadata Extensions
6.4.1. Class Extensions
6.4.1.1. Fetch Groups
6.4.1.2. Data Cache
6.4.1.3. Detached State
6.4.1.4. Lock Groups
6.4.1.5. Auditable
6.4.2. Field Extensions
6.4.2.1. Dependent
6.4.2.2. Load Fetch Group
6.4.2.3. LRS
6.4.2.4. Order-By
6.4.2.5. Inverse-Logical
6.4.2.6. Lock Group
6.4.2.7. Read-Only
6.4.2.8. Type
6.4.2.9. Externalizer
6.4.2.10. Factory
6.4.2.11. External Values
6.4.3. Example
7. Mapping
7.1. Forward Mapping
7.1.1. Using the Mapping Tool
7.1.2. Generating DDL SQL
7.1.3. JDO Forward Mapping Hints
7.1.4. Runtime Forward Mapping
7.2. Reverse Mapping
7.2.1. Customizing Reverse Mapping
7.3. Meet-in-the-Middle Mapping
7.4. Mapping Defaults
7.5. Mapping Factory
7.5.1. Importing and Exporting Mapping Data
7.6. Non-Standard Joins
7.7. Additional JPA Mappings
7.7.1. Datastore Identity Mapping
7.7.2. Surrogate Version Mapping
7.7.3. Multi-Column Mappings
7.7.4. Join Column Attribute Targets
7.7.5. Embedded Mapping
7.7.6. Collections
7.7.6.1. Container Table
7.7.6.2. Element Columns
7.7.6.3. Element Join Columns
7.7.6.4. Element Embedded Mapping
7.7.6.5. Order Column
7.7.6.6. Examples
7.7.7. One-Sided One-Many Mapping
7.7.8. Maps
7.7.8.1. Key Columns
7.7.8.2. Key Join Columns
7.7.8.3. Key Embedded Mapping
7.7.8.4. Examples
7.7.9. Indexes and Constraints
7.7.9.1. Indexes
7.7.9.2. Foreign Keys
7.7.9.3. Unique Constraints
7.7.9.4. Examples
7.8. Mapping Limitations
7.8.1. Table Per Class
7.9. Mapping Extensions
7.9.1. Class Extensions
7.9.1.1. Subclass Fetch Mode
7.9.1.2. Strategy
7.9.1.3. Discriminator Strategy
7.9.1.4. Version Strategy
7.9.2. Field Extensions
7.9.2.1. Eager Fetch Mode
7.9.2.2. Nonpolymorphic
7.9.2.3. Class Criteria
7.9.2.4. Strategy
7.9.3. Column Extensions
7.9.3.1. insertable
7.9.3.2. updatable
7.9.3.3. lock-group
7.10. Custom Mappings
7.10.1. Custom Class Mapping
7.10.2. Custom Discriminator and Version Strategies
7.10.3. Custom Field Mapping
7.10.3.1. Value Handlers
7.10.3.2. Field Strategies
7.10.3.3. Configuration
7.11. Orphaned Keys
8. Deployment
8.1. Factory Deployment
8.1.1. Standalone Deployment
8.1.2. EntityManager Injection
8.1.3. Kodo JPA JCA Deployment
8.1.3.1. WebLogic 9
8.1.3.2. JBoss 4.x
8.1.3.3. Glassfish 9.1
8.1.3.3.1. Deploying as Connector Modules
8.1.3.3.2. Running the Samples
8.1.3.3.2.1. EJB Samples Using JPA
8.1.4. Kodo JDO JCA Deployment
8.1.4.1. WebLogic 6.1 to 7.x
8.1.4.2. WebLogic 8.1
8.1.4.3. WebLogic 9
8.1.4.4. JBoss 3.0
8.1.4.5. JBoss 3.2
8.1.4.6. JBoss 4.x
8.1.4.7. WebSphere 5
8.1.4.8. SunONE Application Server 7 / Sun Java Enterprise Server 8-8.1
8.1.4.9. Tomcat
8.1.4.10. Macromedia JRun 4
8.1.4.11. Borland Enterprise Server 5.2 - 6.0
8.1.4.12. Glassfish 9.1
8.1.4.12.1. Deploying as Connector Modules
8.1.4.12.2. Deploying as Application Libraries
8.1.4.12.3. Running the Samples
8.1.4.12.3.1. JSP Samples using JDO
8.1.4.12.3.2. EJB Samples Using JDO
8.1.5. Non-JCA Application Server Deployment
8.2. Integrating with the Transaction Manager
8.3. XA Transactions
8.3.1. Using Kodo with XA Transactions
9. Runtime Extensions
9.1. Architecture
9.1.1. Broker Customization
9.2. JPA Extensions
9.2.1. OpenJPAEntityManagerFactory
9.2.2. OpenJPAEntityManager
9.2.3. OpenJPAQuery
9.2.4. Extent
9.2.5. StoreCache
9.2.6. QueryResultCache
9.2.7. FetchPlan
9.2.8. OpenJPAPersistence
9.3. JDO API Extensions
9.3.1. KodoPersistenceManagerFactory
9.3.2. KodoPersistenceManager
9.3.3. KodoQuery
9.3.4. KodoExtent
9.3.5. KodoDataStoreCache
9.3.6. QueryResultCache
9.3.7. KodoFetchPlan
9.3.8. KodoJDOHelper
9.4. Object Locking
9.4.1. Configuring Default Locking
9.4.2. Configuring Lock Levels at Runtime
9.4.3. Object Locking APIs
9.4.4. Lock Manager
9.4.5. Rules for Locking Behavior
9.4.6. Known Issues and Limitations
9.5. Savepoints
9.5.1. Using Savepoints
9.5.2. Configuring Savepoints
9.6. Query Language Extensions
9.6.1. Filter Extensions
9.6.1.1. Included Filter Extensions
9.6.1.2. Developing Custom Filter Extensions
9.6.1.3. Configuring Filter Extensions
9.6.2. Aggregate Extensions
9.6.2.1. Configuring Query Aggregates
9.6.3. JDOQL Non-Distinct Results
9.6.4. JDOQL Subqueries
9.6.4.1. Subquery Parameters, Variables, and Imports
9.6.5. MethodQL
9.7. Generators
9.7.1. Runtime Access
9.8. Transaction Events
9.9. Non-Relational Stores
10. Caching
10.1. Data Cache
10.1.1. Data Cache Configuration
10.1.1.1. Configuring the Data Cache Name
10.1.1.2. Configuring the Basic Data Cache
10.1.1.3. Configuring the LRU Caching Option
10.1.1.4. Configuring the Data Cache Size
10.1.1.5. Configuring the Eviction Schedule
10.1.2. Data Cache Definition
10.1.2.1. Setting the Data Cache Name
10.1.2.2. Setting the Data Cache Timeout Value
10.1.3. Data Cache Usage
10.1.4. Query Cache
10.1.5. Third-Party Integrations
10.1.5.1. Tangosol Integration
10.1.5.2. GemStone GemFire Integration
10.1.6. Cache Extension
10.1.7. Important Notes
10.1.8. Known Issues and Limitations
10.2. Query Compilation Cache
11. Remote and Offline Operation
11.1. Detach and Attach
11.1.1. Detach Behavior
11.1.2. Attach Behavior
11.1.3. Defining the Detached Object Graph
11.1.3.1. Detached State Field
11.1.4. Automatic Detachment
11.2. Remote Managers
11.2.1. Standalone Persistence Server
11.2.2. HTTP Persistence Server
11.2.3. Client Managers
11.2.4. Data Compression and Filtering
11.2.5. Remote Persistence Deployment
11.2.6. Remote Transfer Listeners
11.3. Remote Event Notification Framework
11.3.1. Remote Commit Provider Configuration
11.3.1.1. JMS
11.3.1.2. TCP
11.3.1.3. Common Properties
11.3.2. Customization
12. Management and Monitoring
12.1. Configuration
12.1.1. Optional Parameters in Management Group
12.1.2. Optional Parameters in Remote Group
12.1.3. Optional Parameters in JSR 160 Group
12.1.4. Optional Parameters in WebLogic 8.1 Group
12.1.5. Configuring Logging for Management / Monitoring
12.1.6. Configuring the Execution Context Name Provider
12.2. Kodo Management Console
12.2.1. Remote Connection
12.2.1.1. Connecting to Kodo under WebLogic 8.1
12.2.1.2. Connecting to Kodo under JBoss 3.2
12.2.1.3. Connecting to Kodo under JBoss 4
12.2.2. Using the Kodo Management Console
12.2.2.1. JMX Explorer
12.2.2.1.1. Executing Operations
12.2.2.1.2. Listening to Notifications
12.2.2.2. MBean Panel
12.2.2.2.1. Notifications / Statistics
12.2.2.2.2. Setting Attributes
12.3. Accessing the MBeanServer from Code
12.4. MBeans
12.4.1. Log MBean
12.4.2. Kodo Pooling DataSource MBean
12.4.3. Prepared Statement Cache MBean
12.4.4. Query Cache MBean
12.4.5. Data Cache MBean
12.4.6. TimeWatch MBean
12.4.7. Runtime MBean
12.4.8. Profiling MBean
13. Profiling
13.1. Configuration
13.2. Profiling in an Embedded GUI
13.3. Dumping Profiling Data to Disk from a Batch Process
13.4. Controlling How the Profiler Obtains Context Information
14. Third Party Integration
14.1. Apache Ant
14.1.1. Common Ant Configuration Options
14.1.2. Enhancer Ant Task
14.1.3. Application Identity Tool Ant Task
14.1.4. Mapping Tool Ant Task
14.1.5. Reverse Mapping Tool Ant Task
14.1.6. Schema Tool Ant Task
14.2. Maven
15. Optimization Guidelines

 

Skip navigation bar   Back to Top