DataNucleus AccessPlatform 2.1 Release Notes

The 2.1 release of AccessPlatform is available under the Apache 2 license from our download page

Version 2.1 includes the following over 2.0

  • Support for persistence to OOXML files

  • Support for persistence to GoogleStorage

  • Support for persistence for fields of some javax.time types

  • Support for persistence for fields of some Google Collection types

  • Changed to use rewritten JDOQL implementation for RDBMS by default. This makes many more JDOQL statements runnable than were previously possible

  • Uses JDO3 "final" jar

  • Uses JPA2 "final" jar

  • Supports full JPA2 definition of JPQL

  • Supports JPA2 static metamodel creation

  • Supports JPA2 orphan removal

  • Support for embedded PC objects with Excel persistence

  • Support for using spatial methods in queries with the new JDOQL implementation for RDBMS

  • Support for BoneCP RDBMS connection pooling library

  • Many bug fixes, and minor feature additions.


No further releases


DataNucleus AccessPlatform 2.1.4

Dec 18th 2010 : Version 2.1.4 includes the following changes

  • Fix to bug in determination of inheritance level of application identity object

  • Fix couple of places where code not thread-safe

  • Fix to ConnectionFactory2 usage

  • JPA : Support for fetch groups (DataNucleus extension)

  • JPA : few minor corrections to JPA2 handling


DataNucleus AccessPlatform 2.1.3

Nov 13th 2010 : Version 2.1.3 includes the following changes

  • Drop "attachPolicy" and provide complete attachment in default scenario

  • Couple of fixes to result handling in in-memory query evaluator

  • RDBMS : Allow column reuse for multiple fields of a class

  • RDBMS : Fix to use of subclass-table with 1-1 bidirectional relations

  • RDBMS : Fix to use of lengths with BLOB/CLOB on MySQL

  • RDBMS : Fix to index/FK creation on Derby to avoid warning messages

  • JPA : Outline implementation of JPA2 lock methods

  • JPA : Support use of @PrimaryKeyJoinColumn for 1-1s


DataNucleus AccessPlatform 2.1.2

Oct 20th 2010 : Version 2.1.2 includes the following changes

  • Improved merge of metadata information when sequence or cascade info specified in annotations

  • Fix to PMF startup process so that persistence properties are registered before enablement of some services

  • RDBMS : fix to use of positional parameters

  • RDBMS : fix to validation of candidate keys, that prevented creation of some unique keys under some circumstances

  • RDBMS : fix to List.get() when used in result clause of JDOQL query

  • RDBMS : fix to creation of sequences with SchemaTool to take extension props

  • JPA : fix to case where sequence name not set

  • JPA : fix to EM.getReference to not validate the object

  • JPA : fix to use of @Enumerated with @Column

  • Enhancer : fix to runtime enhancement, class loading problem

  • Enhancer : fix to error message of override of invalid field

  • Cache : add option to allow retention of cached objects after close of PMF/EMF, for the case where used by other instances


DataNucleus AccessPlatform 2.1.1

Jun 26th 2010 : Version 2.1.1 includes the following changes

  • Changed method for instantiating objects using application identity when returned by queries, reducing the memory and CPU requirement

  • RDBMS : Ability to specify global default for sequence/increment value generator cache size

  • RDBMS : Fix to BLOB/CLOB handling with Derby 10.6+

  • RDBMS : Full support for HSQLDB 2.0

  • RDBMS : Fix to query String.startsWith/endsWith on H2

  • RDBMS : Fix to query String.substring(int, int) on Derby

  • RDBMS : Fix to BLOB/CLOB handling in queries with MSSQL

  • RDBMS : Support for batched INSERTs, so you re-run all of your benchmarks ;-)

  • RDBMS : SchemaTool now creates necessary auto-start table, sequence table, and sequences

  • JSON : Fix to HTTP Error 409 handling


DataNucleus AccessPlatform 2.1.0.RELEASE

Jul 11th 2010 : Version 2.1 RELEASE includes the following changes

  • Changed to use JDO3 jar

  • Support for persistence to GoogleStorage

  • Support for persistence of some Google Collections classes

  • Added initial version of a generic query optimiser, removing redundant variable clauses

  • Fix to JPA inheritance strategy "JOINED" when having subclasses with discriminator

  • Fix to persist of new object with collection that contains detached objects

  • Fix to persist of new object with related detached compound identity chain

  • Optimise out some SCO collection operations such as add+delete of same object in succession

  • Support persist of enums as arbitrary value

  • JPA2 : Support for orphan removal

  • JPA2 : Support for JPQL "INDEX" keyword

  • RDBMS : Fix to setting of BLOB/CLOB on bidirectional relations for Oracle

  • RDBMS : Fix to SQL table namer to allow for unioned statements when choosing table name

  • RDBMS : Support for use of BoneCP connection pools


DataNucleus AccessPlatform 2.1.0.M3

May 21st 2010 : Version 2.1 Milestone 3 includes the following changes

  • Change some Maven dependencies to allow use with JDO3

  • Fix to generic compilation for "param.field" and use of subquery candidate

  • Extend in-memory query evaluation result clause handler to allow variable expression and more

  • Fix to in-memory query evaluation for String.matches when the string is null

  • RDBMS : Fix to cascade delete on 1-1 when there is a FK present (so leave to datastore)

  • RDBMS : Fix to Derby syntax for CROSS JOIN pre-10.6

  • RDBMS : Fix to Derby usage with JDOQL2 to restrict use of CLOB/BLOC with DISTINCT/UNION

  • RDBMS : Add ability to query in datastore when candidate collection being input

  • RDBMS : Fix to Map.containsKey/containsValue to allow for contained variable already having a table in the statement

  • RDBMS : Fix to use of subqueries with parameters linking back to the main query

  • RDBMS : Fix to use of input positional parameters when one is used multiple times in the statement

  • RDBMS : Fetching optimisation when fetching a field and taking the opportunity to load any other non-relation or 1-1/N-1 unloaded fields

  • RDBMS : Fix to SQL table namers to allow for multiple levels of subquery

  • RDBMS : Fix to Collection.contains(Enum)

  • RDBMS : Fix to use of parameter with null value in comparisons

  • RDBMS : Fix to use of explicit parameters in subquery

  • RDBMS : Fix to generation of "count" query to get size so it takes into account DISTINCT in the main query

  • Excel : Support for persistence of primitive wrapper types

  • Excel : Support for persistence of embedded PC fields (Guido)

  • Spatial : Added support for all Oracle/PostGIS/MySQL specific methods

  • Spatial : Fix to handling of user object in Jts objects when querying

  • Spatial : Addition of remaining methods for querying


DataNucleus AccessPlatform 2.1.0.M2

Apr 26th 2010 : Version 2.1 Milestone 2 includes the following changes

  • Add ability to skip the check on unused input parameters to queries

  • Fix issue with detachment when finding an object already detached but not far enough

  • Add support for compilation of queries with parameters in subqueries linking back to the main query

  • Fix to L2 caching of StringBuffer fields to cache a copy

  • Fix to handle input query with special characters (tab, eol, etc)

  • Extend query compilation to store whether the query result is distinct

  • Support specification of interface fields where there isn’t currently an available implementation

  • Fix to use of dynamic fetch groups in multiple threads

  • Fix to support non-standard SQL statements (stored procs, statements not starting with SELECT/INSERT/UPDATE/MERGE/DELETE)

  • Fix to the query in-memory evaluator to support aggregate names in upper or lower case

  • Fix to a couple of situations where a versioned object can be returned to the user without the version set

  • Fix to reset the version of an object on rollback()

  • Fix to SCOListIterator

  • RDBMS : Fix to generation of indexes for reference fields when having a FK per implementation so that the index is created for the implementations FK only

  • RDBMS : Fix JDOQL2 to not select CLOB fields when using UNION or DISTINCT for Derby

  • RDBMS : Fix JDOQL2 to add parentheses around ORed clauses

  • RDBMS : Fix JDOQL2 to pick the correct statement when using methods in subqueries

  • RDBMS : Fix JDOQL2 "alpha-namer" to handle more than 26 table groups

  • RDBMS : Fix JDOQL2 to handle comparisons of interface field with an implementation

  • RDBMS : Support use of CHECK constraint when persisting boolean as numeric

  • RDBMS : Change HSQLDB use of LIMIT to append to the end of the statement

  • RDBMS : Support for use of SQLXML type with DB2 (contrib)

  • RDBMS : Fix to JDOQL2 for use of input parameters with multiple columns

  • JPA : Add support for JPQL "case" expressions

  • JPA : Add support for generation of JPA2 static metamodel classes

  • JPA : Change to handling of "columnDefinition" to expect the type to be included

  • Enhancer : when using JDK1.6 and having the enhancer in the CLASSPATH default to not enabling the annotation processor to enhance the class(es) being compiled


DataNucleus AccessPlatform 2.1.0.M1

Apr 2nd 2010 : Version 2.1 Milestone 1 includes the following changes

  • Addition of plugin for persistence of javax.time (JSR0310) types

  • Fix to a typo in the use of ConnectionFactory when defining the datastore as a DataSource

  • Cleanup to process of creation of L1/L2/Query caches

  • Change generic query compilation expression tree bidirectional for ease of navigation

  • Support generic query compilation of {param}.field

  • Enforce JDO2 spec rules for JDOQL result/grouping/ordering clauses validity

  • Fix to generic query compilation of {variable}.field

  • Fix to generic query compilation of cast expressions

  • Added checks on invalid use of keywords during generic query compialtion

  • Fix to generic query compilation of {array}.length

  • Fix to use of Extent to close all iterators correctly

  • FIx to in-memory evaluation of queries to better handle date equality

  • Fix to getParent() of class/package metadata of JDO Metadata API

  • Fix to use of set() on ListIterator obtained from list wrapper

  • Fix to persistence of object with reference to the same object

  • RDBMS : change to use "JDOQL2" implementation by default. Use "JDOQL-Legacy" if wanting the old JDOQL implementation.

  • RDBMS : having expression that are not boolean should throw XXXUserException for JDOQL2

  • RDBMS : fix to use of parameters for range and passed in as unnamed to API

  • RDBMS : fix to caching of queries when using String.matches with input parameter for JDOQL2

  • RDBMS : fix to not create indexes for serialised field (problem on MySQL)

  • RDBMS : support override of datastore mapping by user plugins

  • RDBMS : fix to only use CROSS JOIN with Derby from v10.6 onwards

  • RDBMS : fix to use of Boolean expression/literals for JDOQL2

  • RDBMS : fix to candidate query on persistent interface candidate for JDOQL2

  • RDBMS : add support for persistent object "identity" as input parameter for JDOQL2

  • RDBMS : fix to numeric type comparisons for JDOQL2

  • RDBMS : fix to use of parameter in result clause when null for JDOQL2

  • RDBMS : add support for Cast expression in result clause for JDOQL2

  • RDBMS : add support for array of expressions in JDOQL2

  • RDBMS : add support for joins to interface implementations in JDOQL2

  • RDBMS : add support for subquery.contains() in JDOQL2

  • RDBMS : fix handling of DISTINCT in JDOQL2

  • RDBMS : make use of Query imports when resolving classes in instanceof/cast for JDOQL2

  • RDBMS : fix use of navigation of N-1 relation via join table in JDOQL2

  • RDBMS : Delete "JPQL-Legacy" implementation

  • JodaTime : fix handling of null fields

  • JPA : upgrade to use JPA2 "final" jar API

  • Much internal refactoring has also been performed to remove unneeded components or to simplify the API’s for things needed in the 2.1 timeline. Any use of internal API’s by applications will likely need changes.