public interface DataAccessStrategy extends RelationResolver
JdbcAggregateOperations which provides interactions related to
complete aggregates.| Modifier and Type | Method and Description |
|---|---|
<T> void |
acquireLockAll(LockMode lockMode,
Class<T> domainType)
Acquire a lock on all aggregates of the given domain type.
|
<T> void |
acquireLockById(Object id,
LockMode lockMode,
Class<T> domainType)
Acquire a lock on the aggregate specified by id.
|
long |
count(Class<?> domainType)
Counts the rows in the table representing the given domain type.
|
void |
delete(Object id,
Class<?> domainType)
Deletes a single row identified by the id, from the table identified by the domainType.
|
void |
delete(Object rootId,
PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
Deletes all entities reachable via propertyPath from the instance identified by rootId.
|
<T> void |
deleteAll(Class<T> domainType)
Deletes all entities of the given domain type.
|
void |
deleteAll(PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
Deletes all entities reachable via propertyPath from any instance.
|
<T> void |
deleteWithVersion(Object id,
Class<T> domainType,
Number previousVersion)
Deletes a single entity from the database and enforce optimistic record locking using the version property.
|
<T> boolean |
existsById(Object id,
Class<T> domainType)
returns if a row with the given id exists for the given type.
|
<T> Iterable<T> |
findAll(Class<T> domainType)
Loads all entities of the given type.
|
<T> Iterable<T> |
findAll(Class<T> domainType,
Pageable pageable)
Loads all entities of the given type, paged and sorted.
|
<T> Iterable<T> |
findAll(Class<T> domainType,
Sort sort)
Loads all entities of the given type, sorted.
|
<T> Iterable<T> |
findAllById(Iterable<?> ids,
Class<T> domainType)
Loads all entities that match one of the ids passed as an argument.
|
Iterable<Object> |
findAllByPath(Identifier identifier,
PersistentPropertyPath<? extends RelationalPersistentProperty> path)
Finds all entities reachable via path.
|
<T> T |
findById(Object id,
Class<T> domainType)
Loads a single entity identified by type and id.
|
<T> Object |
insert(T instance,
Class<T> domainType,
Identifier identifier)
Inserts a the data of a single entity.
|
<T> boolean |
update(T instance,
Class<T> domainType)
Updates the data of a single entity in the database.
|
<T> boolean |
updateWithVersion(T instance,
Class<T> domainType,
Number previousVersion)
Updates the data of a single entity in the database and enforce optimistic record locking using the
previousVersion property. |
@Nullable <T> Object insert(T instance, Class<T> domainType, Identifier identifier)
T - the type of the instance.instance - the instance to be stored. Must not be null.domainType - the type of the instance. Must not be null.identifier - information about data that needs to be considered for the insert but which is not part of the
entity. Namely references back to a parent entity and key/index columns for entities that are stored in a
Map or List.<T> boolean update(T instance,
Class<T> domainType)
T - the type of the instance to save.instance - the instance to save. Must not be null.domainType - the type of the instance to save. Must not be null.<T> boolean updateWithVersion(T instance,
Class<T> domainType,
Number previousVersion)
previousVersion property. Referenced entities don't get handled.
The statement will be of the form : UPDATE … SET … WHERE ID = :id and VERSION_COLUMN = :previousVersion
and throw an optimistic record locking exception if no rows have been updated.
T - the type of the instance to save.instance - the instance to save. Must not be null.domainType - the type of the instance to save. Must not be null.previousVersion - The previous version assigned to the instance being saved.OptimisticLockingFailureException - if the update fails to update at least one row assuming the the
optimistic locking version check failed.void delete(Object id, Class<?> domainType)
The statement will be of the form : DELETE FROM … WHERE ID = :id and VERSION_COLUMN = :version and throw
an optimistic record locking exception if no rows have been updated.
id - the id of the row to be deleted. Must not be null.domainType - the type of entity to be deleted. Implicitly determines the table to operate on. Must not be
null.<T> void deleteWithVersion(Object id, Class<T> domainType, Number previousVersion)
id - the id of the row to be deleted. Must not be null.domainType - the type of entity to be deleted. Implicitly determines the table to operate on. Must not be
null.previousVersion - The previous version assigned to the instance being saved.OptimisticLockingFailureException - if the update fails to update at least one row assuming the the
optimistic locking version check failed.void delete(Object rootId, PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
rootId - Id of the root object on which the propertyPath is based. Must not be null.propertyPath - Leading from the root object to the entities to be deleted. Must not be null.<T> void deleteAll(Class<T> domainType)
T - type of the domain type.domainType - the domain type for which to delete all entries. Must not be null.void deleteAll(PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
propertyPath - Leading from the root object to the entities to be deleted. Must not be null.<T> void acquireLockById(Object id, LockMode lockMode, Class<T> domainType)
id - the id of the entity to load. Must not be null.lockMode - the lock mode for select. Must not be null.domainType - the domain type of the entity. Must not be null.<T> void acquireLockAll(LockMode lockMode, Class<T> domainType)
lockMode - the lock mode for select. Must not be null.domainType - the domain type of the entity. Must not be null.long count(Class<?> domainType)
domainType - the domain type for which to count the elements. Must not be null.null.@Nullable <T> T findById(Object id, Class<T> domainType)
T - the type of the entity.id - the id of the entity to load. Must not be null.domainType - the domain type of the entity. Must not be null.null.<T> Iterable<T> findAll(Class<T> domainType)
T - the type of entities to load.domainType - the type of entities to load. Must not be null.null.<T> Iterable<T> findAllById(Iterable<?> ids, Class<T> domainType)
T - type of entities to load.ids - the Ids of the entities to load. Must not be null.domainType - the type of entities to load. Must not be null.null.Iterable<Object> findAllByPath(Identifier identifier, PersistentPropertyPath<? extends RelationalPersistentProperty> path)
RelationResolverfindAllByPath in interface RelationResolveridentifier - the combination of Id, map keys and list indexes that identify the parent of the entity to be
loaded. Must not be null.path - the path from the aggregate root to the entities to be resolved. Must not be null.<T> boolean existsById(Object id, Class<T> domainType)
T - the type of the entity.id - the id of the entity for which to check. Must not be null.domainType - the type of the entity to check for. Must not be null.true if a matching row exists, otherwise false.<T> Iterable<T> findAll(Class<T> domainType, Sort sort)
T - the type of entities to load.domainType - the type of entities to load. Must not be null.sort - the sorting information. Must not be null.null.<T> Iterable<T> findAll(Class<T> domainType, Pageable pageable)
T - the type of entities to load.domainType - the type of entities to load. Must not be null.pageable - the pagination information. Must not be null.null.Copyright © 2017–2021 Pivotal Software, Inc.. All rights reserved.