Kodo™ 4.2.0 Developers Guide for JPA/JDO


Table of Contents

1. Introduction
1. Kodo JPA/JDO
1.1. OpenJPA
1.2. About This Document
2. Java Persistence API
1. Introduction
1.1. Intended Audience
1.2. Lightweight Persistence
2. Why JPA?
3. EJB Persistence Architecture
3.1. EJB Exceptions
4. Entity
4.1. Restrictions on Persistent Classes
4.1.1. Default or No-Arg Constructor
4.1.2. Final
4.1.3. Identity Fields
4.1.4. Version Field
4.1.5. Inheritance
4.1.6. Persistent Fields
4.1.7. Conclusions
4.2. Entity Identity
4.2.1. Identity Class
4.2.1.1. Identity Hierarchies
4.3. Lifecycle Callbacks
4.3.1. Callback Methods
4.3.2. Using Callback Methods
4.3.3. Using Entity Listeners
4.3.4. Entity Listeners Hierarchy
4.4. Conclusions
5. Metadata
5.1. Class Metadata
5.1.1. Entity
5.1.2. Id Class
5.1.3. Mapped Superclass
5.1.4. Embeddable
5.1.5. EntityListeners
5.1.6. Example
5.2. Field and Property Metadata
5.2.1. Transient
5.2.2. Id
5.2.3. Generated Value
5.2.4. Embedded Id
5.2.5. Version
5.2.6. Basic
5.2.6.1. Fetch Type
5.2.7. Embedded
5.2.8. Many-To-One
5.2.8.1. Cascade Type
5.2.9. One-To-Many
5.2.9.1. Bidirectional Relations
5.2.10. One-To-One
5.2.11. Many-To-Many
5.2.12. Order By
5.2.13. Map Key
5.2.14. Persistent Field Defaults
5.3. XML Schema
5.4. Conclusion
6. Persistence
6.1. persistence.xml
6.2. Non-EE Use
7. EntityManagerFactory
7.1. Obtaining an EntityManagerFactory
7.2. Obtaining EntityManagers
7.3. Persistence Context
7.3.1. Transaction Persistence Context
7.3.2. Extended Persistence Context
7.4. Closing the EntityManagerFactory
8. EntityManager
8.1. Transaction Association
8.2. Entity Lifecycle Management
8.3. Lifecycle Examples
8.4. Entity Identity Management
8.5. Cache Management
8.6. Query Factory
8.7. Closing
9. Transaction
9.1. Transaction Types
9.2. The EntityTransaction Interface
10. JPA Query
10.1. JPQL API
10.1.1. Query Basics
10.1.2. Relation Traversal
10.1.3. Fetch Joins
10.1.4. JPQL Functions
10.1.5. Polymorphic Queries
10.1.6. Query Parameters
10.1.7. Ordering
10.1.8. Aggregates
10.1.9. Named Queries
10.1.10. Delete By Query
10.1.11. Update By Query
10.2. JPQL Language Reference
10.2.1. JPQL Statement Types
10.2.1.1. JPQL Select Statement
10.2.1.2. JPQL Update and Delete Statements
10.2.2. JPQL Abstract Schema Types and Query Domains
10.2.2.1. JPQL Entity Naming
10.2.2.2. JPQL Schema Example
10.2.3. JPQL FROM Clause and Navigational Declarations
10.2.3.1. JPQL FROM Identifiers
10.2.3.2. JPQL Identification Variables
10.2.3.3. JPQL Range Declarations
10.2.3.4. JPQL Path Expressions
10.2.3.5. JPQL Joins
10.2.3.5.1. JPQL Inner Joins (Relationship Joins)
10.2.3.5.2. JPQL Outer Joins
10.2.3.5.3. JPQL Fetch Joins
10.2.3.6. JPQL Collection Member Declarations
10.2.3.7. JPQL Polymorphism
10.2.4. JPQL WHERE Clause
10.2.5. JPQL Conditional Expressions
10.2.5.1. JPQL Literals
10.2.5.2. JPQL Identification Variables
10.2.5.3. JPQL Path Expressions
10.2.5.4. JPQL Input Parameters
10.2.5.4.1. JPQL Positional Parameters
10.2.5.4.2. JPQL Named Parameters
10.2.5.5. JPQL Conditional Expression Composition
10.2.5.6. JPQL Operators and Operator Precedence
10.2.5.7. JPQL Between Expressions
10.2.5.8. JPQL In Expressions
10.2.5.9. JPQL Like Expressions
10.2.5.10. JPQL Null Comparison Expressions
10.2.5.11. JPQL Empty Collection Comparison Expressions
10.2.5.12. JPQL Collection Member Expressions
10.2.5.13. JPQL Exists Expressions
10.2.5.14. JPQL All or Any Expressions
10.2.5.15. JPQL Subqueries
10.2.5.16. JPQL Functional Expressions
10.2.5.16.1. JPQL String Functions
10.2.5.16.2. JPQL Arithmetic Functions
10.2.5.16.3. JPQL Datetime Functions
10.2.6. JPQL GROUP BY, HAVING
10.2.7. JPQL SELECT Clause
10.2.7.1. JPQL Result Type of the SELECT Clause
10.2.7.2. JPQL Constructor Expressions
10.2.7.3. JPQL Null Values in the Query Result
10.2.7.4. JPQL Aggregate Functions
10.2.7.4.1. JPQL Aggregate Examples
10.2.8. JPQL ORDER BY Clause
10.2.9. JPQL Bulk Update and Delete
10.2.10. JPQL Null Values
10.2.11. JPQL Equality and Comparison Semantics
10.2.12. JPQL BNF
11. SQL Queries
11.1. Creating SQL Queries
11.2. Retrieving Persistent Objects with SQL
12. Mapping Metadata
12.1. Table
12.2. Unique Constraints
12.3. Column
12.4. Identity Mapping
12.5. Generators
12.5.1. Sequence Generator
12.5.2. TableGenerator
12.5.3. Example
12.6. Inheritance
12.6.1. Single Table
12.6.1.1. Advantages
12.6.1.2. Disadvantages
12.6.2. Joined
12.6.2.1. Advantages
12.6.2.2. Disadvantages
12.6.3. Table Per Class
12.6.3.1. Advantages
12.6.3.2. Disadvantages
12.6.4. Putting it All Together
12.7. Discriminator
12.8. Field Mapping
12.8.1. Basic Mapping
12.8.1.1. LOBs
12.8.1.2. Enumerated
12.8.1.3. Temporal Types
12.8.1.4. The Updated Mappings
12.8.2. Secondary Tables
12.8.3. Embedded Mapping
12.8.4. Direct Relations
12.8.5. Join Table
12.8.6. Bidirectional Mapping
12.8.7. Map Mapping
12.9. The Complete Mappings
13. Conclusion
3. Java Data Objects
1. Introduction
1.1. Intended Audience
1.2. Transparent Persistence
2. Why JDO?
3. JDO Architecture
3.1. JDO Exceptions
4. PersistenceCapable
4.1. Enhancer
4.2. Persistence-Capable vs. Persistence-Aware
4.3. Restrictions on Persistent Classes
4.3.1. Default or No-Arg Constructor
4.3.2. Inheritance
4.3.3. Persistent Fields
4.3.4. Conclusions
4.4. Lifecycle Callbacks
4.4.1. InstanceCallbacks
4.4.2. InstanceLifecycleListener
4.5. JDO Identity
4.5.1. Datastore Identity
4.5.2. Application Identity
4.5.2.1. Application Identity Hierarchies
4.5.3. Single Field Identity
4.6. Conclusions
5. Metadata
5.1. Persistence Metadata DTD
5.2. JDO, Package, and Extension Elements
5.3. Class Element
5.4. Field Element
5.5. Fetch Group Element
5.6. The Complete Document
5.7. Metadata Placement
6. JDOHelper
6.1. Persistence-Capable Operations
6.2. Lifecycle Operations
6.3. PersistenceManagerFactory Construction
7. PersistenceManagerFactory
7.1. Obtaining a PersistenceManagerFactory
7.2. PersistenceManagerFactory Properties
7.2.1. Connection Configuration
7.2.2. PersistenceManager and Transaction Defaults
7.3. Obtaining PersistenceManagers
7.4. Properties and Supported Options
7.5. DataStoreCache Access
7.6. Closing the PersistenceManagerFactory
8. PersistenceManager
8.1. User Object Association
8.2. Configuration Properties
8.3. Transaction Association
8.4. FetchPlan Association
8.5. Persistence-Capable Lifecycle Management
8.6. Lifecycle Examples
8.7. Detach and Attach Functionality
8.8. JDO Identity Management
8.9. Cache Management
8.10. Extent Factory
8.11. Query Factory
8.12. Sequence Factory
8.13. Connection Access
8.14. Closing
9. Transaction
9.1. Transaction Types
9.2. The JDO Transaction Interface
9.2.1. Transaction Properties
9.2.2. Transaction Demarcation
10. Extent
11. Query
11.1. Object Filtering
11.2. JDOQL
11.3. Advanced Object Filtering
11.4. Compiling and Executing Queries
11.5. Limits and Ordering
11.6. Projections
11.7. Aggregates
11.8. Result Class
11.8.1. JavaBean Result Class
11.8.2. Generic Result Class
11.9. Single-String JDOQL
11.10. Named Queries
11.10.1. Defining Named Queries
11.10.2. Executing Named Queries
11.11. Delete By Query
11.12. Conclusion
12. FetchPlan
12.1. Detachment Options
13. DataStoreCache
14. JDOR
15. Mapping Metadata
15.1. Mapping Metadata Placement
15.2. Mapping Metadata DTD
15.3. Sequences
15.4. Class Table
15.5. Datastore Identity
15.6. Column
15.7. Joins
15.7.1. Shortcuts
15.7.2. Self Joins
15.7.3. Target Fields
15.8. Inheritance
15.8.1. subclass-table
15.8.1.1. Advantages
15.8.1.2. Disadvantages
15.8.1.3. Additional Considerations
15.8.2. new-table
15.8.2.1. Joined
15.8.2.1.1. Advantages
15.8.2.1.2. Disadvantages
15.8.2.2. Table Per Class
15.8.2.2.1. Advantages
15.8.2.2.2. Disadvantages
15.8.3. superclass-table
15.8.3.1. Advantages
15.8.3.2. Disadvantages
15.8.4. Putting it All Together
15.9. Discriminator
15.9.1. class-name
15.9.2. value-map
15.9.3. none
15.9.4. Putting it All Together
15.10. Version
15.10.1. none
15.10.2. version-number
15.10.3. date-time
15.10.4. state-comparison
15.10.5. Putting it All Together
15.11. Field Mapping
15.11.1. Superclass Fields
15.11.2. Basic Mapping
15.11.2.1. CLOB
15.11.2.2. BLOB
15.11.3. Automatic Values
15.11.4. Secondary Tables
15.11.5. Direct Relations
15.11.5.1. Inverse Keys
15.11.5.2. Bidirectional Relations
15.11.6. Basic Collections
15.11.7. Association Table Collections
15.11.7.1. Bidirectional Relations
15.11.8. Inverse Key Collections
15.11.8.1. Bidirectional Relations
15.11.9. Maps
15.11.10. Embedded Objects
15.12. Foreign Keys
15.13. Indexes
15.14. Unique Constraints
15.15. The Complete Document
16. Sequence
17. SQL Queries
17.1. Creating SQL Queries
17.2. Retrieving Persistent Objects with SQL
17.3. SQL Projections
17.4. Named SQL Queries
17.5. Conclusion
18. Conclusion
4. Tutorials
1. JPA Tutorials
1.1. Kodo JPA Tutorials
1.1.1. Tutorial Requirements
1.2. Kodo JPA Tutorial
1.2.1. The Pet Shop
1.2.1.1. Included Files
1.2.1.2. Important Utilities
1.2.2. Getting Started
1.2.2.1. Configuring the Datastore
1.2.3. Inventory Maintenance
1.2.3.1. Persisting Objects
1.2.3.2. Deleting Objects
1.2.4. Inventory Growth
1.2.5. Behavioral Analysis
1.2.5.1. Complex Queries
1.2.6. Extra Features
1.3. J2EE Tutorial
1.3.1. Prerequisites for the Kodo J2EE Tutorial
1.3.2. J2EE Installation Types
1.3.3. Installing Kodo Into Pre-J2EE 5 Application Servers
1.3.4. Installing the J2EE Sample Application
1.3.4.1. Compiling and Building The Sample Application
1.3.4.2. Deploying Sample To JBoss
1.3.4.3. Deploying Sample To WebLogic 9
1.3.5. Using The Sample Application
1.3.6. Sample Architecture
1.3.7. Code Notes and J2EE Tips
2. JDO Tutorials
2.1. Kodo JDO Tutorials
2.1.1. Tutorial Requirements
2.2. Kodo JDO Tutorial
2.2.1. The Pet Shop
2.2.1.1. Included Files
2.2.1.2. Important Utilities
2.2.2. Getting Started
2.2.2.1. Configuring the Datastore
2.2.3. Inventory Maintenance
2.2.3.1. Persisting Objects
2.2.3.2. Deleting Objects
2.2.4. Inventory Growth
2.2.5. Behavioral Analysis
2.2.5.1. Complex Queries
2.2.6. Extra Features
2.3. Reverse Mapping Tool Tutorial
2.3.1. Magazine Shop
2.3.2. Setup
2.3.2.1. Tutorial Files
2.3.2.2. Important Utilities
2.3.3. Generating Persistent Classes
2.3.4. Using the Finder
2.4. J2EE Tutorial
2.4.1. Prerequisites for the Kodo J2EE Tutorial
2.4.2. J2EE Installation Types
2.4.3. Installing Kodo
2.4.4. Installing the J2EE Sample Application
2.4.4.1. Compiling and Building The Sample Application
2.4.4.2. Deploying Sample To JBoss
2.4.4.3. Deploying Sample To WebLogic 6.1 to 7.x
2.4.4.4. Deploying Sample To WebLogic 8.1
2.4.4.5. Deploying Sample To SunONE / Sun JES
2.4.4.6. Deploying Sample To JRun
2.4.4.7. Deploying Sample To WebSphere
2.4.4.8. Deploying Sample To Borland Enterprise Server 5.2
2.4.5. Using The Sample Application
2.4.6. Sample Architecture
2.4.7. Code Notes and J2EE Tips
5. Kodo Frequently Asked Questions
1. Kodo JPA/JDO Frequently Asked Questions
1.1. General
1.2. Database
1.3. Programming with Kodo
1.4. How do I ... ?
1.5. Common errors
1.6. Productivity tools
1.7. Performance
1.8. Scalability
1.9. Application servers
1.10. Locking
1.11. Transactions
6. Kodo JPA/JDO Reference Guide
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
7. Kodo JPA/JDO Samples
1. Kodo Sample Code
1.1. JDO - JPA Persistence Interoperability
1.2. JPA
1.2.1. Sample Human Resources Model
1.2.2. JMX Management
1.3. JDO
1.3.1. Using Application Identity
1.3.2. Customizing Logging
1.3.3. Custom Sequence Factory
1.3.4. Using Externalization to Persist Second Class Objects
1.3.5. Custom Mappings
1.3.6. Example of full-text searching in JDO
1.3.7. Horizontal Mappings
1.3.8. Sample Human Resources Model
1.3.9. Sample School Schedule Model
1.3.10. JMX Management
1.3.11. XML Store Manager
1.3.12. Using JDO with Java Server Pages (jsp)
1.3.13. JDO Enterprise Java Beans 2.x Facade
1. JPA Resources
2. JDO Resources
3. Supported Databases
3.1. Apache Derby
3.2. Borland Interbase
3.2.1. Known issues with Interbase
3.3. JDataStore
3.4. IBM DB2
3.4.1. Known issues with DB2
3.5. Empress
3.5.1. Known issues with Empress
3.6. Hypersonic
3.6.1. Known issues with Hypersonic
3.7. Firebird
3.7.1. Known issues with Firebird
3.8. Informix
3.8.1. Known issues with Informix
3.9. InterSystems Cache
3.9.1. Known issues with InterSystems Cache
3.10. Microsoft Access
3.10.1. Known issues with Microsoft Access
3.11. Microsoft SQL Server
3.11.1. Known issues with SQL Server
3.12. Microsoft FoxPro
3.12.1. Known issues with Microsoft FoxPro
3.13. MySQL
3.13.1. Known issues with MySQL
3.14. Oracle
3.14.1. Using Query Hints with Oracle
3.14.2. Known issues with Oracle
3.15. Pointbase
3.15.1. Known issues with Pointbase
3.16. PostgreSQL
3.16.1. Known issues with PostgreSQL
3.17. Sybase Adaptive Server
3.17.1. Known issues with Sybase
4. Common Database Errors
5. Upgrading Kodo
5.1. Compatibility Configuration
5.2. Migrating from Kodo 3.0 to Kodo 3.1
5.3. Migrating from Kodo 3.1 to Kodo 3.2
5.4. Migrating from Kodo 3.x to Kodo 4.0
5.4.1. API Compatibility
5.4.2. Metadata and Mappings
5.4.3. Configuration
5.5. Migrating from Kodo 4.0 to Kodo 4.1
5.6. Migrating from Kodo 4.x.x to Kodo 4.1.3+
6. Development and Runtime Libraries
7. Release Notes
8. Release Notes - Known Issues and Workarounds
Index

 

Skip navigation bar   Back to Top