public class DefaultDataAccessStrategy extends Object implements DataAccessStrategy
DataAccessStrategy
is to generate SQL statements based on meta data from the entity.Constructor and Description |
---|
DefaultDataAccessStrategy(SqlGeneratorSource sqlGeneratorSource,
RelationalMappingContext context,
JdbcConverter converter,
NamedParameterJdbcOperations operations)
Creates a
DefaultDataAccessStrategy |
Modifier and Type | Method and Description |
---|---|
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> 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> |
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<RelationalPersistentProperty> propertyPath)
Finds all entities reachable via path.
|
Iterable<Object> |
findAllByProperty(Object rootId,
RelationalPersistentProperty property)
Finds all entities reachable via property from the instance identified by rootId.
|
<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> Object |
insert(T instance,
Class<T> domainType,
Map<String,Object> additionalParameters)
Inserts a the data of a single entity.
|
<S> boolean |
update(S instance,
Class<S> domainType)
Updates the data of a single entity in the database.
|
public DefaultDataAccessStrategy(SqlGeneratorSource sqlGeneratorSource, RelationalMappingContext context, JdbcConverter converter, NamedParameterJdbcOperations operations)
DefaultDataAccessStrategy
sqlGeneratorSource
- must not be null.context
- must not be null.converter
- must not be null.operations
- must not be null.public <T> Object insert(T instance, Class<T> domainType, Map<String,Object> additionalParameters)
DataAccessStrategy
insert
in interface DataAccessStrategy
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
.additionalParameters
- name-value pairs of additional parameters. Especially ids of parent entities that need
to get referenced are contained in this map. Must not be null
.public <T> Object insert(T instance, Class<T> domainType, Identifier identifier)
DataAccessStrategy
insert
in interface DataAccessStrategy
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
.public <S> boolean update(S instance, Class<S> domainType)
DataAccessStrategy
update
in interface DataAccessStrategy
S
- 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
.public void delete(Object id, Class<?> domainType)
DataAccessStrategy
delete
in interface DataAccessStrategy
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
.public void delete(Object rootId, PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
DataAccessStrategy
delete
in interface DataAccessStrategy
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
.public <T> void deleteAll(Class<T> domainType)
DataAccessStrategy
deleteAll
in interface DataAccessStrategy
T
- type of the domain type.domainType
- the domain type for which to delete all entries. Must not be null
.public void deleteAll(PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
DataAccessStrategy
deleteAll
in interface DataAccessStrategy
propertyPath
- Leading from the root object to the entities to be deleted. Must not be null
.public long count(Class<?> domainType)
DataAccessStrategy
count
in interface DataAccessStrategy
domainType
- the domain type for which to count the elements. Must not be null
.null
.public <T> T findById(Object id, Class<T> domainType)
DataAccessStrategy
findById
in interface DataAccessStrategy
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
.public <T> Iterable<T> findAll(Class<T> domainType)
DataAccessStrategy
findAll
in interface DataAccessStrategy
T
- the type of entities to load.domainType
- the type of entities to load. Must not be null
.null
.public <T> Iterable<T> findAllById(Iterable<?> ids, Class<T> domainType)
DataAccessStrategy
findAllById
in interface DataAccessStrategy
T
- type of entities to load.ids
- the Ids of the entities to load. Must not be null
.domainType
- the type of entities to laod. Must not be null
.null
.public Iterable<Object> findAllByPath(Identifier identifier, PersistentPropertyPath<RelationalPersistentProperty> propertyPath)
RelationResolver
findAllByPath
in interface DataAccessStrategy
findAllByPath
in interface RelationResolver
identifier
- the combination of Id, map keys and list indexes that identify the parent of the entity to be
loaded. Must not be null.propertyPath
- the path from the aggregate root to the entities to be resolved. Must not be null.public Iterable<Object> findAllByProperty(Object rootId, RelationalPersistentProperty property)
DataAccessStrategy
findAllByProperty
in interface DataAccessStrategy
rootId
- Id of the root object on which the propertyPath is based.property
- Leading from the root object to the entities to be found.public <T> boolean existsById(Object id, Class<T> domainType)
DataAccessStrategy
existsById
in interface DataAccessStrategy
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
.Copyright © 2017–2020 Pivotal Software, Inc.. All rights reserved.