public class MyBatisDataAccessStrategy extends Object implements DataAccessStrategy
DataAccessStrategy implementation based on MyBatis. Each method gets mapped to a statement. The name of the
statement gets constructed as follows: By default, the namespace is based on the class of the entity plus the suffix
"Mapper". This is then followed by the method name separated by a dot. For methods taking a PropertyPath as
argument, the relevant entity is that of the root of the path, and the path itself gets as dot separated String
appended to the statement name. Each statement gets an instance of MyBatisContext, which at least has the
entityType set. For methods taking a PropertyPath the entityType if the context is set to the class of the
leaf type.| Constructor and Description |
|---|
MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession)
Constructs a
DataAccessStrategy based on MyBatis. |
| Modifier and Type | Method and Description |
|---|---|
long |
count(Class<?> domainType)
Counts the rows in the table representing the given domain type.
|
static DataAccessStrategy |
createCombinedAccessStrategy(RelationalMappingContext context,
RelationalConverter converter,
NamedParameterJdbcOperations operations,
org.apache.ibatis.session.SqlSession sqlSession)
Create a
DataAccessStrategy that first checks for queries defined by MyBatis and if it doesn't find one
uses a DefaultDataAccessStrategy |
static DataAccessStrategy |
createCombinedAccessStrategy(RelationalMappingContext context,
RelationalConverter converter,
NamedParameterJdbcOperations operations,
org.apache.ibatis.session.SqlSession sqlSession,
NamespaceStrategy namespaceStrategy)
Create a
DataAccessStrategy that first checks for queries defined by MyBatis and if it doesn't find one
uses a DefaultDataAccessStrategy |
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.
|
<T> Iterable<T> |
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,
Map<String,Object> additionalParameters)
Inserts a the data of a single entity.
|
void |
setNamespaceStrategy(NamespaceStrategy namespaceStrategy)
Set a NamespaceStrategy to be used.
|
<S> boolean |
update(S instance,
Class<S> domainType)
Updates the data of a single entity in the database.
|
public MyBatisDataAccessStrategy(org.apache.ibatis.session.SqlSession sqlSession)
DataAccessStrategy based on MyBatis.
Use a SqlSessionTemplate for SqlSession or a similar implementation tying the session to the proper
transaction. Note that the resulting DataAccessStrategy only handles MyBatis. It does not include the
functionality of the DefaultDataAccessStrategy which one normally still
wants. Use
createCombinedAccessStrategy(RelationalMappingContext, RelationalConverter, NamedParameterJdbcOperations, SqlSession, NamespaceStrategy)
to create such a DataAccessStrategy.
sqlSession - Must be non null.public static DataAccessStrategy createCombinedAccessStrategy(RelationalMappingContext context, RelationalConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession)
DataAccessStrategy that first checks for queries defined by MyBatis and if it doesn't find one
uses a DefaultDataAccessStrategypublic static DataAccessStrategy createCombinedAccessStrategy(RelationalMappingContext context, RelationalConverter converter, NamedParameterJdbcOperations operations, org.apache.ibatis.session.SqlSession sqlSession, NamespaceStrategy namespaceStrategy)
DataAccessStrategy that first checks for queries defined by MyBatis and if it doesn't find one
uses a DefaultDataAccessStrategypublic void setNamespaceStrategy(NamespaceStrategy namespaceStrategy)
namespaceStrategy - Must be non nullpublic <T> Object insert(T instance, Class<T> domainType, Map<String,Object> additionalParameters)
DataAccessStrategyinsert in interface DataAccessStrategyT - 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 <S> boolean update(S instance,
Class<S> domainType)
DataAccessStrategyupdate in interface DataAccessStrategyS - 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)
DataAccessStrategydelete in interface DataAccessStrategyid - 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)
DataAccessStrategydelete in interface DataAccessStrategyrootId - 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)
DataAccessStrategydeleteAll in interface DataAccessStrategyT - 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)
DataAccessStrategydeleteAll in interface DataAccessStrategypropertyPath - Leading from the root object to the entities to be deleted. Must not be null.public <T> T findById(Object id, Class<T> domainType)
DataAccessStrategyfindById in interface DataAccessStrategyT - 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)
DataAccessStrategyfindAll in interface DataAccessStrategyT - 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)
DataAccessStrategyfindAllById in interface DataAccessStrategyT - 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 <T> Iterable<T> findAllByProperty(Object rootId, RelationalPersistentProperty property)
DataAccessStrategyfindAllByProperty in interface DataAccessStrategyrootId - 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)
DataAccessStrategyexistsById in interface DataAccessStrategyT - 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.public long count(Class<?> domainType)
DataAccessStrategycount in interface DataAccessStrategydomainType - the domain type for which to count the elements. Must not be null.null.Copyright © 2017–2019 Pivotal Software, Inc.. All rights reserved.