The 6.0 release of AccessPlatform is in the planning/development phase.
Version 6.0 is currently planned to include the following over 5.2
Require minimum Java version 11
Support Jakarta Persistence API, v3.0 and v3.1
Support Cassandra v4
6.0.4 2023?
5 April 2023 : Version 6.0.4 includes the following changes
datanucleus-rdbms-462 - Support bulk-fetch on a Collection when field is empty
datanucleus-rdbms-463 - Improved support for the SQL XML type.
datanucleus-core-484 - Fix warning log line in ColumnMetaData
datanucleus-rdbms-457 - ResultClassROF can fail to set fields/properties when JDBC driver returns unassignable type
datanucleus-rdbms-459 - datanucleus.query.jdoql.{varName}.join extension does not work when "varName" is not lower case
datanucleus-geospatial-17 - Fixed OSGi issues which prevents bundle from starting
datanucleus-jodatime-4 - Fixed OSGi issues which prevents bundle from starting
2 January 2023 : Version 6.0.3 includes the following changes
datanucleus-core-482 - Support Java 20
datanucleus-rdbms-456 - PostgreSQL: Use BIGSERIAL when identity column is mapped to BIGINT
datanucleus-rdbms-452 - NullPointerException in ResultClassROF.getObject() in 6.0.2
datanucleus-rdbms-454 - Missing argType cache in ResultClassROF
3 October 2022 : Version 6.0.2 includes the following changes
datanucleus-core-478 - Improve thread safety of statistics
datanucleus-rdbms-451 - Remove column mapping to JDBC type FLOAT for SQL Server
datanucleus-core-479 - Closing PersistenceManager can cause deadlocks when datanucleus.multithreaded=true
datanucleus-rdbms-447 - Fix illegal precision spec for MySQL TINYTEXT
datanucleus-rdbms-448 - Support TINYBLOB on MySQL/MariaDB without size specifier, as per TINYTEXT
datanucleus-rdbms-449 - Fix incomplete fix for #444
datanucleus-rdbms-450 - Search of setter function in ResultClassROF.getObject() is broken
25 August 2022 : Version 6.0.1 includes the following changes
datanucleus-jdo-query-19 - Support generics on Optional field in generated class
datanucleus-rdbms-444 - Regression with SQL Server caused by #408
25 June 2022 : Version 6.0.0.RELEASE includes the following changes
datanucleus-core-470 - Drop XMLAutoStarter, deprecated in 6.0.0.m5
datanucleus-core-473 - Refactor DNStateManager.unloadField to take in field number
datanucleus-core-475 - Rationalise enums for query language
datanucleus-core-474 - IllegalMonitorStateException being thrown during lock release when datanucleus.multithreaded=true
datanucleus-rdbms-443 - Handling of insert audit attributes (user, timestamp) is incorrect when specified on a field
07 May 2022 : Version 6.0.0.M5 includes the following changes
datanucleus-core-446 - Support Jakarta LOCAL_DATE, LOCAL_TIME, LOCAL_DATETIME
datanucleus-core-447 - Upgrade ASM to v9.3
datanucleus-core-448 - Support POWER, ROUND function evaluation for in-memory queries
datanucleus-core-449 - Support ATAN2 function evaluation for in-memory queries
datanucleus-core-450 - Support COT function evaluation for in-memory queries
datanucleus-core-451 - Support COSH, SINH, TANH function evaluation for in-memory queries
datanucleus-core-457 - Remove many toLowerCase in properties/extension handling for efficiency
datanucleus-core-458 - ClassUtils.newInstance has a constructor cache, but the benefit is dubious
datanucleus-core-460 - Move all SCO wrapper creation to SCOUtils
datanucleus-core-461 - Drop use of org.datanucleus.util.MultiMap, use Java standard classes for same benefit
datanucleus-core-462 - Change logging default to Log4J v2, and allow use of NullLogger
datanucleus-core-463 - Add property to permit updating all candidate fields on query result processing
datanucleus-core-464 - Add ability to treat java.util.Date (and java.sql.Date, Time, Timestamp) as non-mutable
datanucleus-core-467 - Support recursion-depth=0 on DFG fields
datanucleus-core-468 - Remove support for fetch-fk-only
datanucleus-core-469 - Deprecate XMLAutoStarter
datanucleus-api-jdo-123 - Support JDO XSD/DTD file at https://db.apache.org/jdo/xmlns/
datanucleus-api-jdo-126 - Add convenience method to return the fields of a class that are in the current FetchPlan
datanucleus-api-jakarta-9 - Support jakarta-315
datanucleus-api-jakarta-10 - Support ln, power, sign, round, floor, ceiling for jakarta-171, jakarta-351
datanucleus-api-jakarta-11 - Support localDate, localTime, localDateTime on CriteriaBuilder
datanucleus-rdbms-423 - Support Jakarta LOCAL_DATE, LOCAL_TIME, LOCAL_DATETIME
datanucleus-rdbms-424 - Support SIGN SQL function
datanucleus-rdbms-425 - Support ATAN2 SQL function
datanucleus-rdbms-426 - Support COT SQL function
datanucleus-rdbms-427 - Support COSH, SINH, TANH SQL functions
datanucleus-rdbms-430 - SQLite v3.30.0 adds support for ORDER BY … NULLS FIRST|LAST
datanucleus-rdbms-432 - Use of Calendar for timezone handling in result set interfacing is creating clones maybe unnecesarily
datanucleus-rdbms-434 - Support "PARTITIONED TABLE" table type from DatabaseMetadata
datanucleus-rdbms-436 - Support updating of all candidate fields when processing query results
datanucleus-rdbms-439 - Expand fetch-fk-only to only automatically apply if recursionDepth is not set from default.
datanucleus-rdbms-441 - Remove support for fetch-fk-only
datanucleus-core-453 - Don’t L2 cache a field that is a DN Collection instance
datanucleus-core-454 - Compound identity with embedded persistable creates StateManager that is not embedded
datanucleus-core-456 - Support QueryResultCache "none" setting
datanucleus-core-465 - FetchPlanForClass.getRecursionDepthForMember doesn’t take in to account dynamically defined groups
datanucleus-rdbms-431 - datanucleus.query.useFetchPlan is seemingly not working
datanucleus-rdbms-438 - Update PR #375 so that it gets the identifier name not the column name
15 March 2022 : Version 6.0.0.M4 includes the following changes
datanucleus-core-29 - Provide ability for store plugins to load references of related objects and cache them in the ExecutionContext (to save later fetch)
datanucleus-core-420 - Ignore persistence properties of form "datanucleus.schema.generateXXX" when using SchemaTool
datanucleus-core-430 - Move AutoStartMechanism helper code to org.datanucleus.store.autostart package
datanucleus-core-431 - Metadata : provide fast lookup of different type of member
datanucleus-core-432 - Move RDBMSStoreManager getCatalogName, getSchemaName to StoreManager
datanucleus-core-434 - Remove Lock object from StateManagerImpl
datanucleus-core-435 - EmbeddedMetaData : drop memberMetaData and just use members
datanucleus-core-436 - Drop datanucleus.jmxType of "default" (use "platform" instead)
datanucleus-core-437 - Offload StateManagerImpl savedPC, savedLoadedFields, savedPersistenceFlags into separate object
datanucleus-core-438 - Change StateManager for embedded cases to only allow one "owner"
datanucleus-core-439 - Offload StateManagerImpl "activity" into flags bits
datanucleus-core-440 - Load of 1-N BIDIR collection should store owner in StateManager of each element if owner field isn’t loaded by default.
datanucleus-core-441 - Backed SCO Collection wrappers can avoid datastore call on remove(element) if not in the cached collection
datanucleus-core-443 - L2 cache is not updated when stored field is instantiated or when not already present
datanucleus-core-444 - Avoid embedded objects being put in L1 cache
datanucleus-core-445 - Change embedded object handling to ignore lifecycle, since managed by owner object
datanucleus-rdbms-370 - Provide mechanism for 1-1 owned / N-1 FK relation to be marked to fetch the "PK" only and not instantiate (when not in FetchPlan)
datanucleus-rdbms-407 - Table lookups in DatabaseMetaData only use catalog/schema if user-defined but should take default for the database
datanucleus-rdbms-408 - Support H2 v2
datanucleus-rdbms-410 - Change "fetch-fk-only" member extension to equate to recursion-depth=0 feature
datanucleus-rdbms-411 - adds support for google cloud spanner
datanucleus-rdbms-412 - Change JavaTypeMapping getObject/setObject signature for embedded cases
datanucleus-rdbms-413 - Change List backing store code for indexed list to shift in bulk (single statement)
datanucleus-rdbms-416 - ListStore.removeAll() is inefficient for indexed list, should do single "nulling" of list indexes and minimal reorders
datanucleus-rdbms-417 - Fetch of relation at one side of 1-1 bi relation should store the id of the related object in the other side StateManager
datanucleus-rdbms-418 - Allow auto-fetch of (unselected) FK fields in fetch request
datanucleus-rdbms-420 - Provide fallback JDBC type=NUMERIC when MySQL doesnt provide for it
datanucleus-core-27 - Update of embedded when using pessimistic txns can result in problem in dirty field handling
datanucleus-rdbms-406 - Updated the default for the DatastoreId.class definition; it should be a BigInt by default, from 5.2
datanucleus-rdbms-409 - Specification of column name in <primary-key> block doesnt use identifier case in checks
8 November 2021 : Version 6.0.0.M3 includes the following changes
datanucleus-core-403 - Add retrieveObjects() method to allow for bulk retrieve when objects of same type
datanucleus-core-404 - Add StoreManager.isClosed method
datanucleus-core-407 - Change Multitenancy to be (explicit) class-specified, and not global-specified
datanucleus-core-408 - Mutitenancy tenant an tenant read ids Karnaugh table
datanucleus-core-409 - Add Multitenancy info as MultitenancyMetaData rather than just extensions
datanucleus-core-410 - Add SoftDelete info as SoftDeleteMetaData rather than just extensions
datanucleus-core-411 - Refactor IdentityMetaData to DatastoreIdentityMetaData
datanucleus-core-413 - Implement cascade-detach=false
datanucleus-core-414 - Change "cascade-update" to be "cascade-attach" since it represents JPA CascadeType.MERGE
datanucleus-core-417 - Drop deprecated "enum-getter-by-value", replaced by "enum-value-getter"
datanucleus-core-418 - Migrate "ObjectProvider" to "StateManager"
datanucleus-core-419 - Refactor org.datanucleus.store.types.XXXHandler/Adapter to org.datanucleus.store.types.container
datanucleus-api-jdo-119 - Use ExecutionContext.retrieveObjects() method to allow for future optimisation
datanucleus-api-jdo-120 - Extend @MultiTenant to permit allowNulls etc to be defined
datanucleus-api-jdo-121 - Extend @SoftDelete to permit allowNulls etc to be defined
datanucleus-api-jdo-122 - Refactor org.datanucleus.api.jdo.metadata.XXXMetadataImpl to org.datanucleus.api.jdo.metadata.api
datanucleus-rdbms-399 - Update Map store handling to make use new putAll() method, and to grab entrySet when current map unknown
datanucleus-rdbms-401 - Delete of owner of 1-1 uni FK relation (not dependent field) can load the related object but needn’t
datanucleus-rdbms-403 - Rename query extension "datanucleus.forUpdateNowait" to "datanucleus.query.forUpdateNowait"
datanucleus-rdbms-404 - Rename query extension "datanucleus.useIsNullWhenEqualsNullParameter" to "datanucleus.query.useIsNullWhenEqualsNullParameter"
datanucleus-mongodb-55 - Load of object doesnt check for tenantId when running multitenancy
datanucleus-mongodb-60 - Move to mongodb-driver-legacy v4.3.1
datanucleus-mongodb-61 - Add support for SoftDelete so that a delete just sets the flag rather than deleting
datanucleus-cassandra-38 - Support Cassandra v4
datanucleus-cassandra-40 - Support persistence of java.time types
datanucleus-cassandra-41 - Support SoftDelete lifecycle of operations
datanucleus-cassandra-42 - Support querying of multitenancy / softdelete candidate classes
datanucleus-excel-22 - Upgrade to POI v5.0.0
datanucleus-geospatial-15 - Change constructor arg for SpatialHelper to RDBMSStoreManager since only for RDBMS
datanucleus-core-401 - DateStringConverter fails on Java11
datanucleus-core-402 - CalendarStringConverter fails on Java11
datanucleus-core-405 - Mutation of SCO field before load of old value can result in incorrect datastore contents
datanucleus-core-416 - Fix IS EMPTY clause for JPQL queries
datanucleus-mongodb-59 - Load of object doesnt check for tenantId when running multitenancy
datanucleus-cassandra-39 - CassandraQueryResult behaves incorrectly wrt fetchSize
15 August 2021 : Version 6.0.0.M2 includes the following changes
datanucleus-core-370 - Support jpa-spec-297
datanucleus-core-386 - Rename YYYMetaDataHandler to YYYXmlHandler
datanucleus-core-387 - Refactor TransactionImpl, JTATransactionImpl, JTAJCATransactionImpl to org.datanucleus.transaction
datanucleus-core-388 - Drop ClassUtils.convertValue and use TypeConversionHelper.convertTo
datanucleus-core-389 - Add assorted additional conversions for java.time to TypeConversionHelper.convertTo
datanucleus-core-390 - Refactor TypeConversionHelper to org.datanucleus.store.types.converters
datanucleus-core-391 - Allow disabling L1 cache on PM/EM
datanucleus-core-392 - Refactor org.datanucleus.store.*Extent to org.datanucleus.store.query
datanucleus-core-394 - Drop Column extension "index". Was replaced by "position" many years ago
datanucleus-core-395 - NamingFactory : cater for table name specified as "catalog.schema.name"
datanucleus-core-400 - Add MapStore method for the case where we are doing a put() and know the old value (due to caching)
datanucleus-api-jdo-113 - Replace NucleusJDOHelper with DataNucleusHelperJDO
datanucleus-api-jdo-114 - Support core-386
datanucleus-api-jdo-115 - Support core-387
datanucleus-api-jdo-116 - Support annotations for InstanceCallback methods
datanucleus-api-jdo-117 - Support @Version on field/property in extension to JDO API
datanucleus-api-jpa-125 - Replace NucleusJPAHelper with DataNucleusHelperJPA
datanucleus-api-jpa-126 - Support core-386
datanucleus-api-jpa-127 - Support core-387
datanucleus-api-jpa-128 - Support DISTINCT aggregates in CriteriaBuilder (javax.persistence 2.2.4+)
datanucleus-api-jpa-130 - Drop JPQLHelper and use JPQLQueryHelper
datanucleus-api-jpa-131 - Support @Index.columnList potential use of ASC|DESC
datanucleus-api-jpa-132 - Support @MapKeyJoinColumns
datanucleus-api-jakarta-2 - Replace NucleusJakartaHelper with DataNucleusHelperJakarta
datanucleus-api-jakarta-3 - Support core-386
datanucleus-api-jakarta-4 - Support core-387
datanucleus-api-jakarta-5 - Support DISTINCT aggregates in CriteriaBuilder (jakarta.persistence 3.0.1+)
datanucleus-api-jakarta-7 - Support @Index.columnList potential use of ASC|DESC
datanucleus-api-jakarta-8 - Support @MapKeyJoinColumns
datanucleus-rdbms-365 - Move "insertPostProcessing" from MappingCallbacks to own interface, also for updates
datanucleus-rdbms-386 - Determination of how to set fields of ResultClass should be performed once only
datanucleus-rdbms-387 - Support creator expression with parameters having aliases
datanucleus-rdbms-388 - Move support for CREATE INDEX use of ASC|DESC on columns to DatastoreAdapter option
datanucleus-rdbms-389 - Change PrimaryKey to inherit direct from Key
datanucleus-rdbms-390 - Remove "properties" from DatastoreAdapter and use from StoreManager
datanucleus-rdbms-391 - Change datanucleus.rdbms.statementLogging default to JDBC
datanucleus-rdbms-394 - JoinMapStore internalPut and internalUpdate don’t use batching but should allow it
datanucleus-rdbms-396 - Move handling of embedded keys/values to JoinMapStore from AbstractMapStore/FKMapStore
datanucleus-rdbms-397 - Make use of MapStore.put(ObjectProvider op, K key, V value, V previousValue, boolean present) with join map cases
datanucleus-rdbms-398 - Provide simple implementation of JoinMapStore.putAll(ObjectProvider, Map, Map)
datanucleus-mongodb-58 - Implement MongoClientUrl to handle parsing of values from Connection URL
datanucleus-cassandra-37 - Change "cassandra.XXX.using" properties to "datanucleus.cassandra.XXX.using"
datanucleus-core-393 - Query with result class can give StackOverflow if result has a column not in result class
datanucleus-core-398 - Mutation of SCO field before load of old value can result in incorrect datastore contents
datanucleus-rdbms-379 - Bulk Delete with multiple joins fails with null pointer exception
datanucleus-rdbms-381 - NCharColumnMapping getObject/setObject are inconsistent with CharColumnMapping
datanucleus-rdbms-382 - Use of AVG(DISTINCT …) with e.g H2 can create invalid SQL
26 May 2021 : Version 6.0.0.M1 includes the following changes
datanucleus-core-359 - Move to ASM v9.1
datanucleus-core-367 - MX4J jar packages up javax.management so unusable under Java 9+
datanucleus-core-371 - Add validators for datanucleus.generateSchema.create.order, datanucleus.generateSchema.drop.order
datanucleus-core-373 - Support loading a schema script from the CLASSPATH
datanucleus-core-374 - Integrate the various schema generation persistence properties
datanucleus-core-375 - Support JPQL function "EXTRACT" and map to underlying datastore functions
datanucleus-core-377 - Add ability to print api-specific ClassMetaData out
datanucleus-core-380 - Refactor org.datanucleus.query to org.datanucleus.store.query
datanucleus-core-382 - Rationalise all log messages when referring to object to use IdentityUtils "PersistableIdentity"
datanucleus-core-383 - Add ApiAdapter method to abstract some metadata default handling
datanucleus-core-384 - Support persistence.xml v3.0
datanucleus-core-385 - Add enhancer API "Jakarta"
datanucleus-api-jdo-109 - Specifying @Convert doesn’t default to making a field persistent
datanucleus-api-jdo-110 - Support core-377
datanucleus-api-jdo-112 - Abstract 2 metadata handlings to ApiAdapter
datanucleus-api-jpa-122 - Support core-377
datanucleus-api-jpa-123 - Support core-374
datanucleus-api-jpa-124 - Abstract 2 metadata handlings to ApiAdapter
datanucleus-api-jakarta-1 - Initial support for Jakarta Persistence 3.0+
datanucleus-jakarta-query-1 - Initial support for Jakarta Persistence Criteria
datanucleus-rdbms-377 - Support alternate method of retrieving generated keys using column names with application identity
datanucleus-core-53 - Reachability algorith should transition from P NEW to TRANSIENT if object is no longer reachable
datanucleus-core-363 - GenerateSchema mode leaves autoCreate/validate turned on
datanucleus-core-378 - Prevent non-transactional recursive calls to ManagedConnection.close()