1.0.0
sai-pullabhotla
released this
03 Nov 00:24
·
159 commits
to master
since this release
- Added support for mapping embedded objects of an entity to a single property in the Cloud Datastore (referred to as Embedded Entities in Google Cloud Datastore's terminology).
- Enhanced the Embedded annotation to optionally specify a property name and whether or not to index the embedded property.
- Introduced two new annotations, @exploded and @Imploded, to specify the storage strategy for embedded objects. These annotations can be applied to an embedded object of an Entity. With Exploded strategy, which is the default, all primitive fields of the embedded object are stored as individual properties in the Cloud Datastore. On the contrary, with the Imploded strategy, the embedded object is stored as a single property in the Cloud Datastore.
- Enhanced the support for mapping Lists, Sets and Maps (together referred to as Collections)
- The framework now supports all basic types to be part of a collection, provided the collection is parameterized (Generics).
- Raw collections and wildcard collections continue to support the previously supported data types, Boolean, Long, String, Double and DatastoreKey.
- Added support for mapping SortedSets and SortedMaps.
- Added Support for persisting BigDecimal types.
- Default strategy maps BigDecimal types to Floating Point properties in the Cloud Datastore
- Added an option to store BigDecimals as "true" Decimals in the Cloud Datastore without any loss of precision. This option is useful to store currency and any other decimal types. A new annotation, @decimal, was introduced to support this feature. Using this annotation, the precision and scale are pre-defined on the entity fields. This is accomplished by mapping the BigDecimal types to Integer properties. The framework transparently manages the conversion of data.
- Added support for defining custom Mappers to map fields of the model to/from Cloud Datastore. A new annotation, @propertymapper, was introduced. Using this annotation, developers can specify the name of the class that implements the Mapper interface.
- Added the ability to override the default mappers based on the field type. MapperFactory exposes a method to set/override the default mappers.
- Added the ability to connect and work with a Local Datastore (a.k.a Datastore Emulator). Added new methods to the EntityManagerFactory to return EntityManager for Local Datastore.
- Enhanced the Mappers for Short, Float, Integer, etc, to raise a MappingException, if the value read from the Datastore is not within the bounds of the corresponding type.
- Updated Catatumbo to use the latest version, 0.5.0, of Google Cloud Java Client for Datastore API.
- Removed the deprecated method, DatastoreAccess#executeQuery(). This method was first deprecated after 0.1.0 version.
- Fixed an issue where the Unmarshaller was not calling the Setter method of the model class when the value read from the Datastore is null.