The 5.0 release of AccessPlatform is available under the Apache 2 license from our download page
Version 5.0 includes the following over 4.2
Requires Java8+
More flexibility to handle non-JDK collections.
Support for Java8 Optional for RDBMS, Cassandra, MongoDB, Excel, ODF, Neo4j, HBase, JSON
Support for specific Scala features including optional
Support HBase 1.x
Support HBase related object removal
Support Cassandra (Datastax) 3.x
Support Neo4j v2.3+
Support MongoDB v3.0+ of mongo-java-driver
Support for RDBMS SQL Anywhere
Support for PostgreSQL persisting collection/array of strings/ints into "array" column type
Support for nondurable identity with JPA
Support for Enum extension handling for RDBMS, Cassandra, MongoDB, Excel, ODF, Neo4j, HBase, JSON
Improved multi-tenancy support, per PMF/EMF, per PM/EM, or per datastore access.
Stop development of datanucleus-neodatis at 5.0.0.release since the underlying datastore hasn’t been updated in 5 years.
No further releases planned; commercial enquiries required.
Sept 9th 2017 : Version 5.0.10 includes the following changes
datanucleus-core-259 - JPQL functions "key" and "value" should be case insensitive, but currently only allows UPPER CASE
datanucleus-rdbms-228 - If a type has an "autoApply" TypeConverter then fall back to that when trying to find its mapping
datanucleus-rdbms-233 - Cater for user incorrect specification of Collection with embedded elements
datanucleus-jdo-query-5 - Support JSR0380 annotations (Bean Validation 2.0)
datanucleus-jpa-query-2 - Support JSR0380 annotations (Bean Validation 2.0)
datanucleus-api-jpa-93 - entity returned from native query with result class not contained in entity manager
datanucleus-rdbms-227 - Backport of 224, for null order handling
datanucleus-rdbms-229 - Period.getDays() is mapped to incorrect SQLMethod class
datanucleus-rdbms-231 - Fix selection of map value
May 31st 2017 : Version 5.0.9 includes the following changes
datanucleus-core-202 - Query.addSubquery should only allow a single variable name to be defined for the subquery
datanucleus-core-225 - When using JDOQL, if result class specified but no result then result defaults to candidate
datanucleus-core-226 - Add support for meta annotations, so that users can define their own composite annotations
datanucleus-api-jdo-55 - Allow DN JDO extension annotations to be used as part of meta-annotations
datanucleus-api-jpa-85 - Allow DN JPA extension annotations to be used as part of meta-annotations
datanucleus-rdbms-191 - Handling of MaxFetchDepth in navigation requests
datanucleus-rdbms-193 - Allow classes to map onto VIEWs when using an identity
datanucleus-rdbms-199 - JDOQL : when checking the validity of a result class, don’t perform checks when the user specifies the default Object[]
datanucleus-core-219 - Default table name for JPA should be the entity name, not the class name
datanucleus-api-jdo-54 - JDOQL: default query result does not work with executeResultList
datanucleus-rdbms-196 - Default table name for JPA should be the entity name, not the class name
Mar 20th 2017 : Version 5.0.8 includes the following changes
datanucleus-core-194 - If we have an unknown type that extends an existing type, don’t fallback if it needs a wrapper
datanucleus-core-195 - Support join on map key
datanucleus-api-jpa-71 - Support @MapKeyClass
datanucleus-api-jpa-76 - Support @MapKeyJoinColumn
datanucleus-rdbms-174 - Support JPQL join on KEY(…) where the "…" is the value
datanucleus-rdbms-182 - JPQL with a result class defined and returning single persistable object needs special treatment
datanucleus-rdbms-185 - JPQL join to new root doesn’t cater for UNIONed query statement
datanucleus-core-198 - Generic compilation of query result "alias" is prone to problems
datanucleus-api-jpa-66 - EMF.createEntityManager passing in props is trying to create new NucleusContext but shouldn’t
datanucleus-api-jpa-69 - PersistenceUnitUtil.isLoaded(Object,String) attempts to resolve if loaded by wrong method
datanucleus-api-jpa-73 - EMF debug code needs null check
datanucleus-rdbms-179 - JDOQL will cache datastore compilation regardless of cache setting!
datanucleus-mongodb-36 - Fix handling of mongodb integer-based props
Feb 7th 2017 : Version 5.0.7 includes the following changes
datanucleus-core-172 - Allow RANGE in string-based JPQL queries
datanucleus-core-174 - Query generic compilation : remove "symbolsTable" List from SymbolTable
datanucleus-api-jpa-58 - Support JPQL "RANGE" specification in string queries, so that getMaxResults/getFirstResult return correct info
datanucleus-api-jpa-63 - When in container mode, check on (JTA) transaction being active should include an attempt to join
datanucleus-rdbms-162 - Allow symbol lookup in parent symbol table, and its parent etc (i.e allow for multiple levels of subqueries and use of aliases)
datanucleus-core-175 - JPQL parser fails to parse TRIM expression
datanucleus-api-jpa-64 - Application-managed EMF should map jta-data-source and non-jta-data-source on to internal persistence property names
datanucleus-rdbms-166 - Fix for datanucleus-rdbms-137 is flawed and should check for null element metadata
Dec 16th 2016 : Version 5.0.6 includes the following changes
datanucleus-core-158 - Support create-timestamp/update-timestamp for member(s)
datanucleus-core-160 - Collection with embeddedOnly element is adding EmbeddedMetaData but shouldn’t
datanucleus-core-161 - Improved metadata population, avoiding lookups
datanucleus-core-165 - Don’t throw exception on unsupported L2 cache pin/unpin methods
datanucleus-core-168 - javax.cache can throw exceptions, so should catch and log all
datanucleus-api-jdo-40 - Support annotations for storing "create-timestamp" and "update-timestamp"
datanucleus-api-jdo-41 - Specification of @Embedded adds EmbeddedMetaData even when no attributes set!
datanucleus-api-jdo-42 - Support MultiTenancy on a class via @MultiTenant annotation
datanucleus-api-jdo-43 - Drop removed "deprecated" methods in javax.jdo.datastore.DataStoreCache
datanucleus-api-jpa-55 - Support annotations for storing "create-timestamp" and "update-timestamp"
datanucleus-api-jpa-56 - Support MultiTenancy on a class via @MultiTenant annotation
datanucleus-api-jpa-57 - Add CriteriaBuilder methods for year, month, day, hour, minute, second for java.util.Date expressions
datanucleus-rdbms-143 - Support "create-timestamp" / "update-timestamp" on members
datanucleus-rdbms-144 - Checks for container embedded element/key/value aren’t complete
datanucleus-rdbms-150 - Datanucleus uses "image" type for byte[] and Byte[] by default for SQL Server
datanucleus-rdbms-158 - Support embedded fields with relations
datanucleus-rdbms-161 - SQL Optimisation : implicit join of identity of some related object should only join when FK not present
datanucleus-scala-4 - API changes in core break compilation
datanucleus-core-162 - Storing embedded object in L2 cache when has no fields as such can give NPE
datanucleus-rdbms-145 - SQLServer : String.length should use LEN instead of CHAR_LENGTH
datanucleus-rdbms-147 - SQL Server should emulate null precedence
datanucleus-rdbms-148 - SQL Server datetime functions "hour","minute","second" don’t work on date column
datanucleus-rdbms-154 - ForwardQueryResult is processed after full consumption with SQL Server
datanucleus-rdbms-159 - Query with multiple roots when using same type as candidate fails to register the alias of the secondary root
Nov 22nd 2016 : Version 5.0.5 includes the following changes over 5.0.4
datanucleus-core-147 - Support generic compilation of parameters in ORDER BY clause
datanucleus-core-149 - Refactor FetchPlanState to org.datanucleus
datanucleus-core-152 - Add check on use of recursive embedded fields and throw exception
datanucleus-api-jdo-38 - Add option of having a Query/Extent that is really closed when calling close()
datanucleus-api-jdo-39 - Support core-149
datanucleus-api-jpa-51 - Implement Metamodel convenience methods taking entityName
datanucleus-api-jpa-52 - Support core-149
datanucleus-api-jpa-53 - SingularAttribute.getBindableType for embedded object
datanucleus-rdbms-138 - Support embeddable object with 1-N field with join table
datanucleus-rdbms-140 - Remove McKoi adapter since database has been dead since 2004
datanucleus-rdbms-141 - Rename MSSQLServerAdapter to SQLServerAdapter
datanucleus-rdbms-142 - Refactor org.datanucleus.store.rdbms.schema.XXXTypeInfo for datastores to org.datanucleus.store.rdbms.adapter
datanucleus-geospatial-2 - Support core-149
datanucleus-geospatial-3 - Mirror rdbms-142 and refactor XXXTypeInfo to same package as XXXAdapter
datanucleus-guava-1 - Support core-149
datanucleus-core-150 - Endless loop in AbstractNamingFactory.getColumnName
Oct 28th 2016 : Version 5.0.4 includes the following changes over 5.0.3
datanucleus-core-137 - Support JPA mappedBy DOT notation with embeddables
datanucleus-core-139 - Support override of generic members and update with generic type
datanucleus-core-141 - Remove all remaining multithreaded code from ExecutionContextImpl, move to ExecutionContextThreadedImpl
datanucleus-core-145 - Support complete range of TYPE JPQL expressions
datanucleus-core-146 - StoreSchemaHandler.isAutoCreateSchema → isAutoCreateDatabase
datanucleus-api-jpa-47 - Support DN javax.persistence Criteria "nulls first"/"nulls last" API
datanucleus-rdbms-124 - Allow user to override set distinct on jdo queries w/ implicit joins
datanucleus-rdbms-125 - Override handling for datastore-attributed column is incorrect, doesn’t apply value strategy
datanucleus-rdbms-127 - JDOQL : Add special case of {subquery}.isEmpty()
datanucleus-rdbms-128 - Support "mappedBy" DOT notation with embeddables in 1-N FK relations
datanucleus-rdbms-129 - Support query handling of ObjectExpression.is where the type is a Collection of possible types
datanucleus-rdbms-130 - Support core-146
datanucleus-rdbms-131 - Schema lookup of catalog/schema doesn’t allow for quoting but should
datanucleus-rdbms-132 - Some JDBC drivers don’t return the catalog/schema that a FK relates to
datanucleus-rdbms-134 - Drop code that checks whether a connection pools jars are present and leave to ConnectionPoolFactory classes
datanucleus-rdbms-135 - Merge MappedTypeManager into MappingManager
datanucleus-core-138 - Types of generic MappedSuperClass fail to resolve
Sep 22nd 2016 : Version 5.0.3 includes the following changes over 5.0.2
datanucleus-core-123 - JPA allows specification of inheritance strategy for tree and seems to assume discriminator for SINGLE-TABLE
datanucleus-core-126 - Support subqueries in JOIN ON clause
datanucleus-core-128 - Add StoreSchemaHandler.createDatabase and deleteDatabase to replace createSchema/deleteSchema
datanucleus-core-130 - AbstractClassMetaData : just use internal Lists and don’t allocate arrays
datanucleus-core-19 - Change MetaData objects so that AbstractClassMetaData/AbstractMemberMetaData have MetaDataManager accessor
datanucleus-core-131 - Move XXXMetaData.toString to JDOMetaDataManager, JPAMetaDataManager since API specific
datanucleus-core-132 - When loading metadata, don’t load up extensions for other vendors
datanucleus-core-129 - Use of ObjectId with "PersistableIdentity" doesn’t retrieve correctly
datanucleus-core-134 - Merge TypeConverterHelper into TypeManager. Add caching to TypeConverter member/db types
datanucleus-api-jdo-33 - Support core-19
datanucleus-api-jdo-34 - Support core-131 : Move JDO XML metadata handling methods to API JDO plugin
datanucleus-api-jdo-35 - Implement JDO 3.2 Metadata API additions
datanucleus-api-jdo-36 - Support core-134
datanucleus-api-jdo-37 - Support JDO 3.2 converter "disabled" settings
datanucleus-api-jpa-44 - Support core issue 123, add discriminator when inheritance defined as Single-Table for tree
datanucleus-api-jpa-45 - Support core-19
datanucleus-api-jpa-46 - Support core-134
datanucleus-api-rest-8 - Support core-19
datanucleus-cassandra-22 - Support core-128
datanucleus-cassandra-23 - Support core-19
datanucleus-cassandra-24 - Support core-134
datanucleus-excel-13 - Support core-128
datanucleus-excel-14 - Support core-19
datanucleus-excel-15 - Support core-134
datanucleus-hbase-25 - Support core-128
datanucleus-hbase-26 - Support core-19
datanucleus-hbase-27 - Support core-134
datanucleus-json-9 - Support core-19
datanucleus-json-10 - Support core-134
datanucleus-ldap-12 - Support core-19
datanucleus-mongodb-27 - Support core-128
datanucleus-mongodb-28 - Support core-19
datanucleus-mongodb-29 - Support core-134
datanucleus-mongodb-30 - Support core-135
datanucleus-neo4j-20 - Support core-19
datanucleus-neo4j-21 - Support core-135
datanucleus-odf-10 - Support core-128
datanucleus-odf-11 - Support core-19
datanucleus-odf-12 - Support core-134
datanucleus-rdbms-111 - Add support for DiscriminatorStrategy.ENTITY_NAME
datanucleus-rdbms-100 - Support JPQL JOIN to a TREAT (CAST) expression
datanucleus-rdbms-89 - Support relationships between classes using "complete-table" inheritance
datanucleus-rdbms-112 - Support use of JPQL TYPE (JDOQL instanceof) with a type converted comparison value
datanucleus-rdbms-119 - Support core-128
datanucleus-rdbms-120 - Support core-19
datanucleus-rdbms-121 - Support core-134
datanucleus-rdbms-122 - Support core-135
datanucleus-core-136 - Some ByteBuffer converters could lead to buffer overflow
datanucleus-mongodb-25 - NPE when trying to find rootTable
datanucleus-rdbms-107 - SQLServer : OFFSET is only appropriate if ORDER BY is used in SQLServer 2012+
datanucleus-rdbms-115 - If we have generic (abstract) root class, then abstract subclass specifying generic type, then concrete class fails to pick up the override of generic type
Sep 1st 2016 : Version 5.0.2 includes the following changes over 5.0.1
datanucleus-core-119 - JPQL - Support subqueries in update statements
datanucleus-core-121 - When checking metadata for persistent interface, assumes already loaded!
datanucleus-core-122 - CompleteClassTable : fix from issue 108 was incomplete
datanucleus-api-jdo-28 - JDOPersistenceManagerFactory.getPersistenceManagerFactory(Properties) has inconsistent creation
datanucleus-api-jdo-31 - Query should assert if using a method and is already closed
datanucleus-api-jdo-32 - Support datanucleus-core issue 121
datanucleus-api-jpa-41 - Support datanucleus-core issue 121
datanucleus-api-jpa-42 - Support override of Map embedded value fields
datanucleus-rdbms-95 - Allow use of subqueries in JPQL UPDATE clause
datanucleus-rdbms-97 - Support JPQL query of ElementCollection of embeddable elements
datanucleus-rdbms-99 - Add JPQL JOIN support for array relations
datanucleus-rdbms-105 - JPA using Map with embedded key is adding extra column to form part of PK of join table, incorrectly
datanucleus-cassandra-21 - Cassandra ManagedConnection.close should call super.close
datanucleus-excel-11 - Support for version stored in a field is only part implemented, complete it
datanucleus-excel-12 - Excel ManagedConnection.close should call super.close
datanucleus-hbase-24 - HBase ManagedConnection.close should call super.close
datanucleus-json-7 - Support for version stored in a field is only part implemented, complete it
datanucleus-json-8 - JSON ManagedConnection.close should call super.close
datanucleus-mongodb-26 - MongoDB ManagedConnection.close should call super.close
datanucleus-neo4j-18 - Support for version stored in a field is only part implemented, complete it
datanucleus-neo4j-19 - Neo4j ManagedConnection.close should call super.close
datanucleus-odf-9 - ODF ManagedConnection.close should call super.close
datanucleus-api-jdo-26 - Close of JDOQLTypedQuery usually NullPointerExceptions
datanucleus-api-jpa-35 - Invalid persistentAttributeType returned for embeddable property
datanucleus-api-jpa-36 - Static metamodel generator generates null for byte[] properties
datanucleus-api-jpa-39 - NPE in IdentifiableTypeImpl.getSupertype
datanucleus-rdbms-102 - pm.getObjectById(Class, id) or em.find(Class, id) with COMPLETE-TABLE can throw exception
datanucleus-rdbms-104 - Creation of join table where element uses COMPLETE-TABLE and root is abstract misses element column
Aug 10th 2016 : Version 5.0.1 includes the following changes over 5.0.0.RELEASE
datanucleus-core-111 - Refactor query compilation optimisation process so easier to add other optimisers
datanucleus-core-112 - Enhancer : Don’t enhance "bridge" methods
datanucleus-core-113 - Ignore bridge getter/setter methods when processing annotations
datanucleus-core-116 - JPQLParser TREAT handling is not flexible enough for all combinations
datanucleus-api-jpa-30 - Null out some variables on close of EM, and assert when EM closed on all query methods
datanucleus-api-jdo-22 - Null out some variables on close of PM
datanucleus-api-jdo-23 - JDOPersistenceManager.close should null the pmf
datanucleus-rdbms-76 - Query ResultSet has extension that have text-strings. Should extract into "public static final" variables
datanucleus-rdbms-79 - ClassAdder mixes table validation with column initialisation. Should be separate
datanucleus-rdbms-80 - Cater for PostgreSQL specific default value :: syntax
datanucleus-rdbms-83 - Allow control over whether to use column default values when a value is null
datanucleus-rdbms-85 - Make JDOQL/JPQL single-valued relation navigation join type configurable
datanucleus-rdbms-90 - Support JPQL "POWER" and JDOQL "Math.power"
datanucleus-rdbms-91 - Add check on table type before running callbacks
datanucleus-rdbms-93 - Remove DatastoreAdapter.getOperatorConcat since not used
datanucleus-rdbms-94 - SQLServer does not support "||" for concatenation of Strings, provide alternative
datanucleus-geospatial-1 - MariaDB 5.3+ supports ST_Distance
datanucleus-neo4j-16 - Support neo4j java driver v3.x
datanucleus-excel-10 - POI Row.CREATE_NULL_AS_BLANK is deprecated, use MissingCellPolicy.CREATE_NULL_AS_BLANK
datanucleus-api-jpa-26 - IdentifiableTypeImpl fails to retrieve PK information from MappedSuperClass when using GENERICS
datanucleus-api-jpa-27 - IdentifiableTypeImpl doesn’t read @Version attribute correctly when specified in superclass
datanucleus-api-jpa-32 - When @Column is specified on Collection<NonPC>/Map<?,NonPC> field it only uses name
datanucleus-neo4j-17 - Fetch of object can sometimes pick related object when clash of field names with other relation
Jul 5th 2016 : Version 5.0 RELEASE includes the following changes over Milestone 5
datanucleus-core-96 - InMemory query evaluation should support IN and NOT IN
datanucleus-core-98 - NamingFactory : name for embedded field doesn’t fallback to the column name for the member itself
datanucleus-core-99 - Move ASM support to v5.1
datanucleus-core-100 - InMemory query refactoring
datanucleus-core-101 - StoreDataManager/StoreData needs review, should use enum for type, and maybe key by String
datanucleus-core-102 - Extract "relation-discriminator-column" etc strings into MetaData class for easy reference
datanucleus-core-106 - Drop use of "key-increment-by" value generator property
datanucleus-core-107 - Extract ValueGenerator property strings for easy reference
datanucleus-core-108 - CompleteClassTable : support property access where property is overridden in subclass
datanucleus-api-jdo-18 - Add @ReadOnly for members as shortcut for insertable=false, updateable=false
datanucleus-api-jdo-19 - Add @SharedRelation to allow easier specification of shared relations
datanucleus-api-jdo-20 - Make @ReadOnly work at class-level also
datanucleus-api-jpa-24 - Support @ReadOnly at class-level or member-level
datanucleus-cassandra-20 - Query generation needs to detect attempt to navigate through relations to fields of related object
datanucleus-mongodb-22 - Check for JPQL "FROM" log message should be refined to detect actual joins
datanucleus-mongodb-23 - Don’t create "unique" index on 1-1/N-1 relations
datanucleus-mongodb-24 - Support more combinations of JPQL IN in-datastore
datanucleus-rdbms-59 - StringBuilderMapping/StringBufferMapping are no longer used and can be deleted
datanucleus-rdbms-60 - Log warning on attempt to use transient Persistable object as query parameter
datanucleus-rdbms-63 - Change "NUCLEUS_TYPE" to "DN_TYPE" for consistency with DataNucleus SQLStatement namings
datanucleus-rdbms-64 - Throw exception if user attempts to model embedded class with collection element
datanucleus-rdbms-68 - Updates for Sonar conventions
datanucleus-rdbms-69 - Support core issue 106
datanucleus-rdbms-70 - Change persistence property "datanucleus.rdbms.adapter.informixUseSerialForIdentity" to "datanucleus.rdbms.informix.useSerialForIdentity"
datanucleus-rdbms-71 - Extract MySQL persistent property names into "public static final String"
datanucleus-rdbms-72 - Change persistence property "datanucleus.rdbms.oracleNlsSortOrder" to "datanucleus.rdbms.oracle.nlsSortOrder"
datanucleus-cache-1 - Drop support for "JCache" provider (javax.cache pre-0.2)
datanucleus-core-95 - InMemory query evaluation of YEAR, MONTH, DAY, HOUR, MINUTE, SECOND (JPQL) aren’t implemented correctly
datanucleus-core-103 - version / discriminator index is not created if not specifying column and specifying indexes=true
datanucleus-core-104 - Fix code typo in ExecutionContextImpl.getManagedObjects
datanucleus-hbase-23 - Optional test fails with Collection detection
datanucleus-rdbms-61 - "CaseExpression = null" should be compiled as "IS NULL" but currently isn’t
Jun 11th 2016 : Version 5.0 Milestone 5 includes the following changes
datanucleus-core-79 - Expand multitenancy to allow specification per PM/EM, and optionally via a user provided method
datanucleus-core-82 - BeanValidationHandler should move to org.datanucleus and remove org.datanucleus.validation package
datanucleus-core-83 - Refactor {o.d}.query.symbol and {o.d}.query.cache into {o.d}.query.compiler
datanucleus-core-84 - Refactor {o.d}.store.encryption into {o.d}.store
datanucleus-core-85 - Refactor {o.d}.store.scostore into {o.d}.store.types.scostore
datanucleus-core-86 - Refactor {o.d}.store.exceptions into {o.d}.exceptions
datanucleus-core-87 - InMemory query evaluation doesn’t cater for various aspects of Optional
datanucleus-core-88 - Add javax.cache based cache for QueryCompilation (generic)
datanucleus-core-89 - Add javax.cache based cache for QueryDatastoreCompilationCache (datastore)
datanucleus-core-90 - Separate "persistence-by-reachability" at commit out into own handler class
datanucleus-core-91 - Separate "managed relations" out into own handler class
datanucleus-core-92 - Refactor {o.d}.management.jmx into {o.d}.management
datanucleus-core-93 - Generic query compilation ParameterExpression type is often not registered in SymbolTable but should be
datanucleus-api-jpa-21 - Isolate check for whether native query in JPAQuery and use StoreManager.getNativeQueryLanguage()
datanucleus-cassandra-1 - Add support for cassandra 3.0
datanucleus-cassandra-18 - Support upgrade to enum handling
datanucleus-excel-9 - Support upgrade to enum handling
datanucleus-hbase-21 - Support upgrade to enum handling
datanucleus-json-6 - Support upgrade to enum handling
datanucleus-mongodb-20 - Support CompoundIdentity
datanucleus-mongodb-21 - Support upgrade to enum handling
datanucleus-neo4j-15 - Support upgrade to enum handling
datanucleus-odf-7 - Support upgrade to enum handling
datanucleus-api-jpa-22 - Criteria in(…).not() is ignoring the NOT in the generic compilation (and generated SQL)
May 17th 2016 : Version 5.0 Milestone 4 includes the following changes
datanucleus-core-74 - In-memory evaluation : if result fails, throw exception
datanucleus-core-72 - CompleteClassTable : cater for columnMetaData on collection element when intended for field
datanucleus-core-69 - Federation : cater for simple use-cases of identity
datanucleus-core-66 - SchemaTool : Support "ignoreMetaDataForMissingClasses"
datanucleus-core-55 - Support method MONTH_JAVA in-memory
datanucleus-core-54 - Add in-memory evaluation support for Optional.orElse
datanucleus-core-47 - Provide a persistence property to allow MetadataListener to be registered when a PMF is instantiated, such that it is called prior for any autostart classes
datanucleus-cassandra-16 - Add ability to check for existence of records when inserting
datanucleus-cassandra-15 - Support JPA @OrderBy
datanucleus-cassandra-2 - Support JPA @EmbeddedId
datanucleus-cassandra-17 - Make use of new core multi-tenancy helper methods rather than direct access to property
datanucleus-excel-8 - Support JPA @OrderBy
datanucleus-hbase-19 - Support CompoundIdentity
datanucleus-hbase-18 - Support JPA @OrderBy
datanucleus-hbase-17 - Support JPA @EmbeddedId
datanucleus-hbase-20 - Make use of new core multi-tenancy helper methods rather than direct access to property
datanucleus-json-5 - Support JPA @OrderBy
datanucleus-mongodb-17 - Support JPA @OrderBy
datanucleus-mongodb-19 - Make use of new core multi-tenancy helper methods rather than direct access to property
datanucleus-neo4j-14 - Make use of new core multi-tenancy helper methods rather than direct access to property
datanucleus-odf-6 - Support JPA @OrderBy
datanucleus-rdbms-48 - Rename of backing store variables so clearer the intent
datanucleus-rdbms-47 - Oracle supports specifying the PRIMARY KEY in the CREATE TABLE statement
datanucleus-rdbms-46 - jdbc timeouts are not propagated for SQL queries
datanucleus-rdbms-37 - Add support for java.util.Optional JDOQL "orElse" method
datanucleus-rdbms-51 - Make use of new core multi-tenancy helper methods rather than direct access to property
datanucleus-core-77 - NamingFactory do not cater for unique index name for DISCRIMINATOR_COLUMN
datanucleus-core-75 - CompleteClassTable : mark embedded PK columns as being part of PK
datanucleus-core-67 - OperationQueue : performAll for backing store should only process for the specified ObjectProvider
datanucleus-api-jdo-14 - Bean Validation : don’t fire off validation on prePersist and preStore, just on one
datanucleus-api-jpa-19 - Bean Validation : don’t fire off validation on prePersist and preStore, just on one
datanucleus-rdbms-50 - Bulk fetch has bug when trying to handle array case, assumes it is a Collection resulting in NPE
Apr 8th 2016 : Version 5.0 Milestone 3 includes the following changes
datanucleus-core-57 - Add support for JPQL FROM join to a new "root" with ON condition
datanucleus-core-58 - CompleteClassTable and MemberColumnMapping do not support collection element or map key/value conversion. Need to add
datanucleus-core-56 - Add mechanism whereby if there is metadata for a class that is not in the classpath we can just ignore it
datanucleud-api-jdo-5 - Add support for javax.jdo.query.OptionalExpression
datanucleus-api-jpa-7 - Support NonDurable Identity as vendor extension
datanucleus-cassandra-9 - Support for java.util.Optional
datanucleus-cassandra-10 - Support persistence of serialised PC fields
datanucleus-cassandra-11 - Support use of TypeConverter on Collection element, Map key and Map value
datanucleus-hbase-9 - Support for java.util.Optional
datanucleus-hbase-10 - Support use of TypeConverter on Collection element, Map key and Map value
datanucleus-hbase-7 - Persist relation fields as "persistableId" like with MongoDB, Excel, ODF, Cassandra, Neo4j, JSON etc
datanucleus-excel-5 - Support for java.util.Optional
datanucleus-json-3 - Support for java.util.Optional
datanucleus-mongodb-14 - Support inherited embedded Map keys/values
datanucleus-mongodb-15 - Support for java.util.Optional
datanucleus-mongodb-13 - Support use of TypeConverter on Collection element, Map key and Map value
datanucleus-neo4j-13 - Support for java.util.Optional
datanucleus-odf-4 - Support for java.util.Optional
datanucleus-rdbms-38 - Add support for JPQL FROM join to a new "root" with ON condition
datanucleus-jdo-query-2 - Add support for javax.jdo.query.OptionalExpression
NUCMAVEN-52 - Support "datanucleus.metadata.ignoreMetaDataForMissingClasses" via enhancer
datanucleus-hbase-6 - If attempt to use HBase with IDENTITY value generator it throws an exception. Better to switch to INCREMENT and log warning
datanucleus-rdbms-39 - Collection.contains allows control over variable join/subquery - should allow the same for Map.containsKey, Map.containsValue
datanucleus-rdbms-42 - Collection.contains, Map.containsKey, Map.containsValue can define how a variable is "joined" (subquery or innerjoin) but ought to allow "leftouterjoin" also
datanucleus-core-59 - Marking a member as "serializable" conflicts with the use of a converter
datanucleus-core-62 - Clean up code around ClassLoaderResolverImpl for JRE classes so matches those in ClassNameConstants
datanucleus-core-60 - Add StoreManager supportedOption for serialized collection element, array element, map key, map value
datanucleus-core-61 - Add converter for conversion from BufferedImage to ByteBuffer
datanucleus-cassandra-13 - Support for persisting fields of type BufferedImage
datanucleus-cassandra-12 - Complete support for retrieval of byte[] field
datanucleus-hbase-4 - HBaseSchemaHandler hasn’t been properly upgraded to HBase 1.x
datanucleus-hbase-3 - HBase fetch of fields doesn’t cater for non-persistent fields (transient, transactional)
datanucleus-rdbms-43 - Support for NUCCORE-1395 options
datanucleus-core-64 - In-memory evaluation of Optional.get doesn’t check for isPresent but should
datanucleus-core-65 - SerializableByteBufferConverter should use wrap/remaining to convert to bytes but doesn’t
datanucleus-core-63 - In-memory evaluation of MonthDay.getMonthValue and YearMonth.getMonthValue are returning Month object!
datanucleus-cassandra-14 - When using converter on field it should SCO wrap the result on retrieval but currently doesn’t
datanucleus-excel-6 - Look up of object doesn’t cater for PK field being Date stored as String (i.e use of converter)
datanucleus-excel-4 - ExcelCandidateList (query results) should respect FetchPlan of query
datanucleus-hbase-13 - Use of TypeConverter fails on persist since doesn’t use the converted value
datanucleus-hbase-8 - Query of NonDurable identity fails, due to unknown type info even though the class is input
datanucleus-hbase-11 - HBase query comparing Enum field with ordinal value (or name) doesn’t evaluate
datanucleus-hbase-5 - Hbase plugin doesn’t cope with fetch of relation field pointing to object that is no longer present. Should just set relation to null
datanucleus-hbase-12 - Lookup of object when using TypeConverter on PK field fails to find the object
datanucleus-mongodb-16 - MongoDB v3.x removes support for using java.sql.* so need to pass in java.util.Date
datanucleus-odf-2 - Look up of object doesn’t cater for PK field being Date stored as String (i.e use of converter)
datanucleus-odf-3 - ODFCandidateList (query results) should respect FetchPlan of query
datanucleus-rdbms-41 - NUCRDBMS-1012 updates to join table PK creation were incomplete. Need further improvement
datanucleus-rdbms-40 - Insert of array of persistable objects fails to insert join table when cascade not enabled
Mar 15th 2016 : Version 5.0 Milestone 2 includes the following changes
NUCCORE-1369 - Add in-memory evaluation support for YearMonth.getYear, YearMonth.getMonthValue, MonthDay.getDayOfMonth, MonthDay.getMonthValue, Period.getMonths, Period.getDays, Period.getYears etc
NUCCORE-1370 - Support conversion from MonthDay to java.sql.Date
NUCCORE-1371 - Support conversion from YearMonth to java.sql.Date
NUCCORE-1374 - Provide ability for a store plugin to set the default TypeConverter to use for a java field type
NUCCORE-1377 - Support conversion of java.time.Instant to java.util.Date
NUCCORE-1380 - Support conversion from Duration to Double (secs.nanos)
NUCCORE-1383 - JPQL : Support YEAR, MONTH, DAY, HOUR, MINUTE, SECOND with java.time types
NUCCORE-1387 - Add in-memory evaluation support for Optional.get, Optional.isPresent
NUCCORE-1388 - Support persistence of java.time.ZonedDateTime as Timestamp / String
datanucleus-api-jpa-10 - Allow shared relation to be specified using single annotation rather than 3 extension annotations
NUCRDBMS-1000 - Add support for YearMonth.getYear, YearMonth.getMonthValue, MonthDay.getDayOfMonth, MonthDay.getMonthValue, Period.getMonths, Period.getDays, Period.getYears etc
NUCRDBMS-1003 - JDOQL : Support Optional.get(), Optional.isPresent() rather than current automatic referral to underlying type
datanucleus-jdo-query-3 - Use LocalDateExpression/LocalTimeExpression/LocalDateTimeExpression from javax.jdo (3.2.0.m4+)
datanucleus-api-jdo-7 - Allow use of jta-data-source/non-jta-data-source from persistence.xml as alternative to standard JDO properties
NUCCORE-1368 - List of "simple" result classes is very restrictive. Extend to include other commonly used "simple" classes
NUCCORE-1385 - Query parsing can be improved to better cater for quoting and end of line characters
NUCCORE-1389 - java.awt.Color should be in DFG
datanucleus-api-rest-6 - Remove use of NucleusException
datanucleus-api-rest-4 - Change "jdoql" / "jpql" modes so that they take parameter "query" with the encoded query
datanucleus-api-rest-5 - Extract Google AppEngine code into separate classes so we can make user types pluggable
datanucleus-api-rest-7 - Split out code for Google "User" and "Key" classes
NUCRDBMS-1001 - Oracle supports NVARCHAR but JDBC driver doesn’t acknowledge it
NUCRDBMS-1004 - Temporal query methods contain significant duplication and need rationalising
NUCCORE-1353 - org.datanucleus.store.query.Query has short "type" but ought to be enum. Will need all store plugins updating to match
NUCCORE-1372 - Nondurable classes should not be L2 cached, ever.
NUCCORE-1373 - CalendarStringConverter/DateStringConverter should implement ColumnLengthDefiningTypeConverter
NUCCORE-1376 - Update LocalDateDateConverter, LocalDateTimeDateConverter and LocalTimeDateConverter to use Instant and ZoneId for reliability
NUCCORE-1379 - Dont log about AutoStartMechanism if set to None
NUCCORE-1382 - Change JPQL "MONTH" to evaluate to the month between 1 and 12 (rather than 0 and 11 like now)
NUCCORE-1384 - JPQL : Support YEAR, MONTH, DAY, HOUR, MINUTE, SECOND as in-memory evaluation
datanucleus-api-jpa-12 - Support NUCCORE-1353
datanucleus-api-jdo-8 - Move LocalDateExpression/LocalTimeExpression/LocalDateTimeExpression to javax.jdo
datanucleus-api-jdo-6 - Allow lifecycle state change from HOLLOW to P_NONTRANS when no tx and field is already loaded
datanucleus-api-jdo-9 - Support NUCCORE-1353
NUCRDBMS-1005 - Merge VersionStringMapping, VersionTimestampMapping into VersionMapping. Same for DiscriminatorMapping
NUCRDBMS-1006 - ClassMapping is no longer needed; use type converter
NUCRDBMS-1007 - Apparently need a call to ConnectionFactory.setPool() to avoid log message with DBCP2
NUCRDBMS-1010 - Support NUCCORE-1353
datanucleus-cassandra-8 - Support NUCCORE-1353
datanucleus-excel-7 - Support NUCCORE-1353
datanucleus-hbase-14 - Support NUCCORE-1353
datanucleus-json-4 - Support NUCCORE-1353
datanucleus-ldap-10 - Support NUCCORE-1353
datanucleus-mongodb-12 - Support NUCCORE-1353
datanucleus-neodatis-1 - Support NUCCORE-1353
datanucleus-neo4j-12 - Support NUCCORE-1353
datanucleus-odf-5 - Support NUCCORE-1353
datanucleus-xml-4 - Support NUCCORE-1353
datanucleus-api-jpa-11 - If metadata specified using orm.xml only, the entity name is not defaulted
datanucleus-api-jpa-9 - Criteria multiple join with no join alias results in exception
datanucleus-api-jpa-8 - Criteria join to a multiple valued path doesn’t work.
NUCRDBMS-1009 - Parameters in group by expressions are not set on the JDBC statement
NUCRDBMS-1012 - Using JPA with a OneToMany field that is a Set with join table doesn’t create the PK for the join table, but should
NUCRDBMS-1013 - JPQL : join to embedded object generates incorrect SQL
Jan 18th 2016 : Version 5.0 Milestone 1 includes the following changes
NUCCORE-1339 - Support for non-JDK containers
NUCCORE-1342 - Support for single element collections (java.util.Optional)
NUCCORE-1343 - Allow to specify default nullability for fields using a configuration property.
NUCCORE-1350 - Extend NUCCORE-1344 to allow LEFT JOIN FETCH
NUCCORE-1354 - Add support for JPQL "INSERT" queries (vendor extension)
NUCCORE-1358 - Allow JPQL to exclude subclasses of the candidate
datanucleus-api-jdo-12 - Support java.time types in JDO Typesafe
datanucleus-api-jpa-15 - Support JPA 2.1 Tuple/TupleElement
datanucleus-api-jpa-18 - Make EntityManagerFactory, EntityManager implement AutoCloseable
NUCRDBMS-939 - Support parameters in SELECT clause, particularly when as part of subqueries
NUCRDBMS-944 - Support polymorphic joins when using UNION, so only apply to particular UNIONs
NUCRDBMS-954 - MySQL : allow setting the COLLATION and CHARACTER SET of any tables that are created
NUCRDBMS-958 - Firebird supports date functions using EXTRACT(…)
NUCRDBMS-970 - SQLStatement needs a way of generation where we don’t use table aliases, and just use table names
NUCRDBMS-976 - JPQL : BULK INSERT query support
NUCRDBMS-977 - Support persisting a Collection/Map using a TypeConverter for the whole field
NUCRDBMS-983 - Support SAP "SQLAnywhere"
NUCRDBMS-988 - PostgreSQL : Support JDBC type of ARRAY allowing array and Collection fields to be persisted to it
NUCRDBMS-989 - Support embedded object with field stored in join table
NUCRDBMS-996 - JDOQL : when invoking a method on a type that uses a converter, if the method doesn’t exist on the type, try on the converted-to type
datanucleus-scala-2 - Support for "Option"
datanucleus-scala-1 - Support for "case" classes as SCOs
NUCCORE-1347 - ClassMetaData has "members" that should be genericised to AbstractMemberMetaData, and lookup of member name improved
NUCCORE-1359 - Determine Collection element and Map key/value type from TypeVariable when using ParametrizedType within ParameterizedType
NUCCORE-1363 - CompleteClassTable : has check on duplicated column name, but that should not apply when supporting "nested" embedded
datanucleus-api-jdo-13 - ExpressionImpl has package variables, should be protected to allow extension in other packages
NUCRDBMS-935 - SQLStatement : change handling of selects to retain SQLText until statement generation
NUCRDBMS-945 - SQLStatement needs more flexibility with joins; apply to just one union, pass in join type
NUCRDBMS-951 - Index auto creation : detect reuse of fields so we don’t try to duplicate indexes
NUCRDBMS-952 - SchemaTool : delete of schema for classes can try to validate the tables structure before dropping, but should just drop the tables if present
NUCRDBMS-955 - Firebird v2 requires use of CHAR_LENGTH for length of VARCHAR fields
NUCRDBMS-959 - MySQL doesn’t support "NULLS FIRST | LAST" but does allow ISNULL(…) extra clause to put nulls last (default is first)
NUCRDBMS-962 - Candidate key auto creation : detect reuse of fields so we don’t try to duplicate uniques
NUCRDBMS-963 - HSQLDB v2+ doesn’t have LONGVARBINARY, so need to provide own mapping
NUCRDBMS-971 - SQLite doesn’t provide explicit support for putting nulls last, but can use "{col} IS NULL, {col}"
NUCRDBMS-972 - View creation : skip any token that is a "comment" since some RDBMS don’t handle that
NUCRDBMS-973 - Delete tables processing : goes off and calls DatabaseMetaData.getColumns for detection of table existence but could just get table type (quicker!)
NUCRDBMS-978 - Subclass SQLStatement for DeleteStatement, UpdateStatement
NUCRDBMS-980 - Improve method to determine type of ValueGenerator to use reflection and getActualTypeArguments
NUCRDBMS-984 - Query generation can add order clauses to SELECT but doesn’t check if they are already present; should do
NUCRDBMS-991 - Support for fetch of ReferenceMapping field when there is a single implementation and using FK
NUCRDBMS-994 - JPQL : "elem IN collectionField" is invalid syntax but we could map internally as "elem MEMBER OF collectionField"
datanucleus-hbase-16 - Lack of current HBase support (newest supported version is 0.94)
NUCCORE-1346 - JDO 3.2 requires change to behaviour at close of EC with active transaction. Make it configurable
NUCCORE-1348 - Extend NUCCORE-1338 to EmbeddedMetaData
NUCCORE-1360 - Support PK field conversions for types Currency, TimeZone, UUID
NUCCORE-1361 - Provide ValueGenerator that generates UUID objects rather than String
NUCCORE-1365 - NucleusLogger : provide access to the underlying Logger for a NucleusLogger
NUCCORE-1367 - Add method to ObjectProvider to return if the version is loaded
datanucleus-api-jdo-11 - Allow addInstanceLifecycleListener/removeInstanceLifecycleListener usage until first PM is obtained
datanucleus-api-jpa-17 - Support AttributeConverter on a collection field to be for the whole field not just the element
NUCRDBMS-930 - Extract "lock-for-update" extension of SQLStatement into "public static final" variable
NUCRDBMS-937 - Abstract out ComponentInfo for improved handling of backing store with reference components
NUCRDBMS-946 - Add RIGHT_OUTER_JOIN as option in DatastoreAdapter that can be unsupported (SQLite)
NUCRDBMS-949 - Support date/time methods on SQLite
NUCRDBMS-957 - Firebird v2 requires use of SUBSTRING for substring of VARCHAR fields
NUCRDBMS-960 - Disable value generator "uuid-string" for PostgreSQL since main charsets don’t handle it
NUCRDBMS-967 - SQLite doesn’t support "ALL|ANY|SOME {subquery}" keyword constructs, so throw exception
NUCRDBMS-968 - SQLite LOCATE / String.indexOf should use INSTR(x,y) rather than LOCATE
NUCRDBMS-969 - SQLite DELETE / UPDATE JPQL should not use alias since these are not supported with SQLite
NUCRDBMS-975 - Provide access to RDBMSQueryCompilation, and to the SQLStatement(s) that the compilation is made up of.
NUCRDBMS-998 - Prevent SortedSet (and subclasses) be allocated a ListXXXStore since needs unsorted
NUCRDBMS-999 - Support date/time methods on SQLite
datanucleus-mongodb-10 - Upgrade to MongoDB v3.x
datanucleus-mongodb-11 - Make sure "ownerMmd" is set for FetchFieldManager when embedded, add TODO to resolve
datanucleus-neo4j-11 - Upgrade to Neo4j v2.3
NUCCORE-1349 - JDOQL/JPQL parse of BigInteger value is parsed internally to be Long and loses precision
NUCCORE-1351 - IN predicate unexpectedly gets transformed to EQ predicate
NUCCORE-1355 - JPQLSingleStringParser has missing trimRight handling (typo in trimLeft)
NUCCORE-1356 - Metadata processing moves ColumnMetaData to ElementMetaData is not embedded/serialised but should also allow for full field type converter case
NUCCORE-1362 - Persistable elements contained in Collection/Map that is serialised (whole field) are not detached/attached correctly
NUCCORE-1364 - L2 cache of persistable arrays creates incorrect array type for caching
NUCCORE-1366 - AbstractMemberMetaData.getClassName(false) can return fully qualified name in some situations
datanucleus-api-jdo-10 - @Convert specified on field doesn’t always get processed. Works fine when using @Persistent(converter=…)
datanucleus-api-jpa-14 - JPA 2.1 has bug in EntityGraph method signatures for Attribute generic type
datanucleus-api-jpa-13 - Handling of UniqueConstraint/Index "name" is incorrect
datanucleus-api-jpa-16 - JPA MetaModel doesn’t cater correctly for List<nonPC>, and sets to CollectionAttributeImpl instead of ListAttributeImpl
NUCRDBMS-325 - JDOQL : "instanceof" with inheritance generates incorrect query when using union, in query FILTER
NUCRDBMS-933 - Wrong sql query generated when using type function with joined inheritance without discriminators
NUCRDBMS-934 - Exception about missing field when using (TYPE function with) TABLE_PER_CLASS strategy
NUCRDBMS-938 - Column creation for overridden field can try to create as IDENTITY when no value strategy defined!
NUCRDBMS-941 - Selecting attribute from element collection map value produces wrong sql
NUCRDBMS-942 - Changes to managed entities not detected when element collection is involved
NUCRDBMS-943 - Use of query result aliases when using DatastoreAdapter in quoted case needs quotes adding to SQL
NUCRDBMS-947 - SQLite String.substring should use SUBSTR(x,y,z) rather than SUBSTRING(x FROM y FOR z)
NUCRDBMS-948 - Fix for NUCRDBMS-823 was non-optimum. If using SQLite and IDENTITY but for a Long field, should get LongMapping with IntegerRDBMSMapping
NUCRDBMS-950 - Addition of datanucleus.schema.autoCreateSchema for generating schema can fail on some JDBC drivers that don’t support catalog
NUCRDBMS-953 - Schema generation unnecessarily creates indexes for the values of element collections
NUCRDBMS-956 - JPQL : Referring to map key/value from outer query in a subquery can result in extra joins adding in the subquery
NUCRDBMS-961 - Use of persistent property for persistable object (1-1, N-1), and adding override in subclass results in multiple (duplicate) FKs
NUCRDBMS-965 - Use of COMPLETE_TABLE doesn’t seem to allow override of PK field column names
NUCRDBMS-974 - Oracle, Firebird require that when using GROUP BY, all non-aggregate SELECT components are in the GROUP BY clause
NUCRDBMS-979 - Query returning result of COMPLETE_TABLE strategy where root class has no table causes exception
NUCRDBMS-981 - Support NUCCORE-1362
NUCRDBMS-985 - SELECT statement generation handling of ordering when multiple cols per order expression should apply quoting as final step but doesnt
NUCRDBMS-986 - Creation of mapping in some cases misses the MultiColumnConverter case and doesnt use TypeConverterMultiMapping
NUCRDBMS-987 - UpdateRequest : only add the version field if it is not present in the passed list of modified fields
NUCRDBMS-992 - Name of candidate key (unique) on join table is not respected
NUCRDBMS-995 - TypeConverterMapping.getJavaType is incorrect when roleForMember is set
datanucleus-hbase-15 - Cannot auto-create tables without deactivating sanity checks