All Repository classes should extend this abstract class.
It makes sure that all aliased methods behaves like specified in the Repository interface.
Also, some default method implementations are included in this class.

Since:

0.4

Author:

Eirik Torske

Field Summary

protected java.lang.Boolean

supportsRecursiveIndexing
Flag to indicate whether or not this particular repository instance add entity members as first class entities in the repository.

protected java.lang.Boolean

usesNativePartitioningSupport
Flag to indicate whether or not this particular repository instance inhibits and uses its own mechanism for indexing entities.

usesNativePartitioningSupport

protected java.lang.Boolean usesNativePartitioningSupport

Flag to indicate whether or not this particular repository instance inhibits and uses its own mechanism for indexing entities.
If true, this will be the case (as we know it from RDBMSs).
Furthermore, if this flag is true, partitioned repositories will reuse the repository instance across partitions.
To improve search response time for repository partitions, the internal indexing mechanism must be applied whenever partitions are added.

Default is false.

supportsRecursiveIndexing

protected java.lang.Boolean supportsRecursiveIndexing

Flag to indicate whether or not this particular repository instance add entity members as first class entities in the repository. (a.k.a. recursive indexing).
If true, this will be the case (as we know it from RDBMSs).
Furthermore, if this flag is true, cascading puts, updates, and removals will also take place, if nothing else is stated in the Javadoc.

update

Updates an entity.
When an entity is (re)-retrieved, all state changes will be visible, no matter what kinds of repository implementations being involved.
Do notice that for all memory-based repositories (and possibly some delegated ones), entity updates are of course immediately visible.

(Only applicable for persistent repositories doing direct data writes,
like PersistenceDefinition.FILE, and possibly PersistenceDefinition.DELEGATED...
For all other persistence definitions, this method is redundant/not applicable.
Anyway, by applying this method in a consistent manner, an eventual repository migration will not need any code changes.

deltaSpecification - for optimistic locking schemes: a specification specifying the differences/added state between this update and the previously retrieved entity version
The specification should be a conjuction of field bound equality specifications only,
or null if optimistic locking with automatic retries is completely out of scope