Releases: sai-pullabhotla/catatumbo
Releases · sai-pullabhotla/catatumbo
2.7.0
- Enhanced the
QueryResponse
to provide access to metadata of the response (QueryResponseMetadata
). This metadata can be used to determine the status of query execution/whether or not there are more results after the last cursor/limit. - Upgraded the underlying client library to the latest version, 1.64.0.
2.6.0
- Updated the Optimistic Locking/Entity Versioning to use the parent transaction, if one exists.
- Upgraded the underlying client library to the latest version, 1.46.0.
2.5.0
- Added support for creating read-only or read-write transactions. Prior to this version, Transactions were always read-write.
- Created a new enum named
TransactionMode
EntityManager#newTransaction
method is overloaded to accept the desired transaction mode.EntityManager#executeInTransaction
method is overloaded to accept the desired transaction mode.
- Created a new enum named
- Marked the
TransactionalTask
interface as a Functional Interface. - Upgraded the underlying client library to the latest version, 1.16.0.
2.4.0
- Fixed an issue with persisting of unindexed List/Set values defined in an Embeddable.
- Upgraded the underlying client library for Google Cloud Datastore to the latest version, 1.12.0.
2.3.0
- Model classes (
@Entity
,@Embeddable
and@MappedSuperClass
) can now useBuilder
pattern, in addition to the previously supported Classic Java Beans pattern (a.k.a POJO). Builder pattern helps the cases where persistence objects need to be immutable or to ensure that the objects state is always valid/consistent. - Updated the
EntityManager
,DatastoreTransaction
,DatastoreBatch
to throw two specialized exceptions in certain cases:EntityAlreadyExistsException
- when attempting to insert a duplicate keyEntityNotFoundException
- if the entity with the given key is not found, during an update operation
- Fixed a couple of typos in the exception messages generated by the
Marshaller
- Upgraded the underlying client library for Google Cloud Datastore to the latest version, 1.5.1.
2.2.0
- Added the ability to skip persistence of fields if their value is null. The
Property
andEmbedded
annotations now support defining a field as optional. When optional is set to true, and if the field is null, the corresponding property will be completely omitted when saving to the Datastore.PropertyOverride
can be used to override the optionality of fields defined in anEmbeddable
orMappedSuperClass
. - Added support for persisting/loading Map of Maps to/from Embedded Entity
- Enhanced the Metadata API to return all Kinds excluding any System Kinds. Kind names that begin with double underscores will be omitted from the returned list.
- Added support for deletion of all Entities of a given Kind, given the Kind name. This can be used in conjunction with the above feature to clean up an entire namespace (e.g. for cleaning up test data).
- Upgraded the underlying google-cloud-datastore API to the latest version, 1.2.3.
2.1.0
- Provides programmatic access to Datastore Statistics (information available on GCD Dashboard). Various statistics are available through the
DatastoreStats
interface. - Added support for strongly typed identifiers. This allows custom classes to be used as Entity Identifiers. For example, entity
User
may declare its Identifier as of typeUserId
. - Added two new methods to the
EntityManager
andDatastoreTransaction
interfaces to retrieve entities by their Key (DatastoreKey
). - Enhanced the
EntityManager
interface to support ID/Key allocation. - Marked the
DatastoreKey
interface asSerializable
. - Upgraded the underlying google-cloud-datastore API to the latest version, 1.2.0.
- Fixed potential
NullPointerException
andClassCastException
in theDatastoreProperty
Entity (part of the Metadata API).
2.0.0
- Migrated to Java 8. Catatumbo now requires Java 8 or later. Version 1.4.0 is the last version that supports Java 7.
- Replaced the classic Reflection based Method invocations with MethodHandlers for better performance.
- Added support for the following types from java.time package:
- LocalDate - maps to String in the Cloud Datastore
- LocalTime - maps to String in the Cloud Datastore
- LocalDateTime - Maps to String in the Cloud Datastore
- OffsetDateTime - Maps to DateTime in the Cloud Datastore
- ZonedDateTime - Maps to DateTime in the Cloud Datastore
- Entity fields that are annotated with CreatedTimestamp or UpdatedTimestamp annotations now support the below new types from the java.time package:
- OffsetDateTime
- ZonedDateTime
- Enhanced the Query Parameter bindings (positional and named) to support all new types from the java.time package.
- Upgraded the underlying google-cloud-datastore API to the latest version, 1.0.0-rc2.
1.4.0
- Enhanced the
EntityManagerFactory
to allow creation ofEntityManager
using advanced options such as connection timeout and read timeout. A new class,ConnectionParameters
was created for this purpose. TheConnectionParameters
class provides a standardized and consistent way to createEntityManager
either for Datastore on GCP or Datastore Emulator. - Added a new annotation named
ProjectedEntity
to support mapping the results of a projection query. Query Results (Entity Query or Projection Query) can either be mapped to anEntity
orProjectedEntity
. UsingProjectedEntity
enforces additional checks (e.g. persistence of Projection Entities is disallowed). - Fixed the
DefaultDatastoreMetadata
to catch any underlying exceptions and re-throw them asEntityManagerException
. - Upgraded the underlying google-cloud-datastore API to the latest version, 0.9.4-beta.
1.3.1
- Enhanced support for multi-tenancy. The new class,
Tenant
, lets each thread to maintain a different namespace. This allows a single instance ofEntityManager
to read from/write to multiple namespaces in the Cloud Datastore. - Added support for automatically setting the creation and modification timestamp of entities. Two new annotations,
@CreatedTimestamp
and@UpdatedTimestamp
were introduced to facilitate this. - Added support for retrieving the Datastore Metadata. The new Metadata API (
DatastoreMetadata
) allows -- Retrieval of Namespaces in the Cloud Datastore
- Retrieve all Kinds in a Namespace
- Retrieve all indexed Properties and their data types in a given Kind.
- Extended the support for optimistic locking technique to
DatastoreAccess.update(List)
methods. - Implementations of
QueryRequest
now support binding multiple positional parameters using the newly added var-arg method,addPositionalBindings
. - Removed the following misspelled and deprecated methods that were first deprecated in version 1.0.2:
DatastoreBatch.Response#getGneratedKeys()
DatastoreTransaction.Response#getGneratedKeys()
- Updated Catatumbo to use the latest version, 0.9.3, of Google Cloud Java Client for Datastore API.