DataNucleus Access Platform : Features

DataNucleus is specification driven, not just implementing specifications but also passing whatever specification compatibility (e.g TCK) there is available. The primary features of the DataNucleus Access Platform releases are shown below.

Specification compliance

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 AppEngine/Datastore
HBase Datastores
MongoDB 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