|
Feature
|
Spec
|
Ver 1.0
|
Ver 1.1
|
Ver 2.0
|
Ver 2.1
|
Ver 2.2
|
Ver 3.0
|
|
JDO2 compliant
|
JDO2
|
|
|
|
|
|
|
|
JDO3 compliant
|
JDO3
|
|
|
|
|
|
|
|
JPA1 compliant
|
JPA1
|
|
|
|
|
|
|
|
JPA2 compliant
|
JPA2
|
|
|
|
|
|
|
|
JDK required
|
|
1.3+
|
1.5+
|
1.5+
|
1.5+
|
1.5+
|
1.5+
|
|
|
|
|
Class Persistence
|
|
|
Byte-Code Enhancement of classes
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Byte-Code Compatibility
|
JDO1
|
|
|
|
|
|
|
|
Custom enhancer
|
|
|
|
|
|
|
|
|
Enhancement of Persistence-Aware classes
|
JDO
|
|
|
|
|
|
|
|
Persistent fields
|
JDO, JPA
|
|
|
|
|
|
|
|
Persistent properties
|
JDO, JPA
|
|
|
|
|
|
|
|
Annotation support
|
JDO, JPA
|
|
|
|
|
|
|
|
Metadata API
|
JDO
|
|
|
|
|
|
|
|
Enhancer API
|
JDO
|
|
|
|
|
|
|
|
Enhancement during compilation
|
|
|
|
|
|
|
|
|
|
|
|
JDO Functionality
|
|
|
Application identity
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Datastore identity
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Nondurable identity [1]
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Flexible choice of identity generators
|
JDO2
|
|
|
|
|
|
|
|
Attach/Detach of instances
|
JDO2
|
|
|
|
|
|
|
|
Pessimistic (datastore) transactions
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Optimistic transactions
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Nontransactional Read
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Nontransactional Write
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Retain values
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Restore values
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Multithreaded PM
|
JDO1, JDO2
|
|
|
|
|
|
|
|
J2EE Integration
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Lifecycle listener mechanism
|
JDO2
|
|
|
|
|
|
|
|
Level 2 Cache
|
JDO2, JPA2
|
|
|
|
|
|
|
|
Level 2 Cache pluggable
|
|
|
|
|
|
|
|
|
XA transactions
|
|
|
|
|
|
|
|
|
|
|
|
JPA Functionality
|
|
|
Persistence API
|
JPA
|
|
|
|
|
|
|
|
Application identity
|
JPA
|
|
|
|
|
|
|
|
Flexible choice of identity generators
|
JPA
|
|
|
|
|
|
|
|
Attach/Detach of instances
|
JPA
|
|
|
|
|
|
|
|
Optimistic transactions
|
JPA
|
|
|
|
|
|
|
|
Callback listener mechanism
|
JPA
|
|
|
|
|
|
|
|
Level 2 Cache
|
JPA2
|
|
|
|
|
|
|
|
XA transactions
|
|
|
|
|
|
|
|
|
|
|
|
Persistable Datatypes
|
|
|
Interfaces support
|
JDO1, JDO2
|
|
|
|
|
|
|
|
Collection support
|
JDO, JPA
|
|
|
|
|
|
|
|
Set Support
|
JDO, JPA
|
|
|
|
|
|
|
|
List support
|
JDO, JPA
|
|
|
|
|
|
|
|
Map support
|
JDO, JPA
|
|
|
|
|
|
|
|
Array support
|
JDO, [JPA]
|
|
|
|
|
|
|
|
Second Class PersistenceCapable objects
|
JDO
|
|
|
|
|
|
|
|
Spatial Type support
|
|
|
|
|
|
|
|
|
User-Defined Type support
|
|
|
|
|
|
|
|
|
|
|
|
Querying Capability
|
|
|
JDOQL Query Language
|
JDO1, JDO2
|
|
|
|
|
|
|
|
JDOQL Single-String Query
|
JDO2
|
|
|
|
|
|
|
|
JDOQL Typesafe Query
|
JDO3.1
|
|
|
|
|
|
|
|
JDOQL Extensions
|
|
|
|
|
|
|
|
|
JDOQL Subqueries
|
JDO2.1+
|
|
|
|
|
|
|
|
SQL Query Language
|
JDO2, JPA1
|
|
|
|
|
|
|
|
JPQL Query Language
|
JPA
|
|
|
|
|
|
|
|
Named Queries
|
JDO2, JPA1
|
|
|
|
|
|
|
|
Query Compilation Cache
|
|
|
|
|
|
|
|
|
Query Results Cache
|
|
|
|
|
|
|
|
|
|
|
|
Datastore Support
|
|
|
DB4O Datastores
|
|
|
|
|
|
|
|
|
NeoDatis Datastores
|
|
|
|
|
|
|
|
|
Excel Documents
|
|
|
|
|
|
|
|
|
ODF Documents
|
|
|
|
|
|
|
|
|
XML Documents
|
|
|
|
|
|
|
|
|
Google BigTable (AppEngine) datastores
|
|
|
|
|
|
|
|
|
HBase Datastores
|
|
|
|
|
|
|
|
|
JSON Datastores
|
|
|
|
|
|
|
|
|
Amazon S3 Datastores
|
|
|
|
|
|
|
|
|
Google Storage
|
|
|
|
|
|
|
|
|
LDAP Datastores
|
|
|
|
|
|
|
|
|
RDBMS Datastores
|
|
|
|
|
|
|
|
|
Support for RDBMS Views
|
|
|
|
|
|
|
|
|
Support for RDBMS Stored Procedures
|
|
|
|
|
|
|
|
|
Schema Generation (RDBMS)
|
JDO2
|
|
|
|
|
|
|
|
Existing Schema
|
|
|
|
|
|
|
|
|
Read-Only/Fixed Schema
|
|
|
|
|
|
|
|
|
|
|
|
O/R Mapping Support
|
|
|
1-1 O/R mappings
|
JDO, JPA
|
|
|
|
|
|
|
|
1-N O/R mappings
|
JDO, JPA
|
|
|
|
|
|
|
|
M-N O/R mappings
|
JDO, JPA
|
|
|
|
|
|
|
|
Compound Identity Relationships
|
JDO
|
|
|
|
|
|
|
|
"Managed Relationships"
|
JDO
|
|
|
|
|
|
|
|
Embedded Fields
|
JDO, JPA
|
|
|
|
|
|
|
|
Serialised Fields
|
JDO, JPA
|
|
|
|
|
|
|
|
Secondary tables
|
JDO, JPA
|
|
|
|
|
|
|
|
Support for BLOB/CLOB
|
JDO, JPA
|
|
|
|
|
|
|
|
|
|
|
Integration/Tooling
|
|
|
OSGi bundles
|
|
|
|
|
|
|
|
|
Spring Framework
|
|
|
|
|
|
|
|
|
Tapestry
|
|
|
|
|
|
|
|
|
Ant
|
|
|
|
|
|
|
|
|
Maven2
|
|
|
|
|
|
|
|
|
Eclipse
|
|
|
|
|
|
|
|
|
NetBeans
|
|
|
|
|
|
|
|
|
IntelliJ
|
|
|
|
|
|
|
|
|
L2 Cache : Oracle Coherence, EHCache, Cacheonix, JCache
|
|
|
|
|
|
|
|
|
RDBMS Connection Pooling : DBCP, C3P0, Proxool, BoneCP
|
|
|
|
|
|
|
|
[1] = partial support for nondurable identity : persistence but not update/delete