Class BaseMyBatisFilterableDaoSupport<T extends net.solarnetwork.dao.Entity<K>,K,M extends net.solarnetwork.domain.Identity<K>,F extends net.solarnetwork.dao.PaginationCriteria>
java.lang.Object
org.springframework.dao.support.DaoSupport
org.mybatis.spring.support.SqlSessionDaoSupport
net.solarnetwork.central.dao.mybatis.support.BaseMyBatisDao
net.solarnetwork.central.dao.mybatis.support.BaseMyBatisGenericDaoSupport<T,K>
net.solarnetwork.central.dao.mybatis.support.BaseMyBatisFilterableDaoSupport<T,K,M,F>
- All Implemented Interfaces:
FilterResultsFactory<M,,K, F> net.solarnetwork.dao.FilterableDao<M,,K, F> net.solarnetwork.dao.GenericDao<T,,K> org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
MyBatisUserMetadataDao
public abstract class BaseMyBatisFilterableDaoSupport<T extends net.solarnetwork.dao.Entity<K>,K,M extends net.solarnetwork.domain.Identity<K>,F extends net.solarnetwork.dao.PaginationCriteria>
extends BaseMyBatisGenericDaoSupport<T,K>
implements net.solarnetwork.dao.FilterableDao<M,K,F>, FilterResultsFactory<M,K,F>
Base implementation of
FilterableDao using MyBatis via
SqlSessionDaoSupport.- Since:
- 2.7
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.solarnetwork.dao.GenericDao
net.solarnetwork.dao.GenericDao.EntityEventType, net.solarnetwork.dao.GenericDao.StandardSortKey -
Field Summary
Fields inherited from class net.solarnetwork.central.dao.mybatis.support.BaseMyBatisGenericDaoSupport
DELETE_OBJECT, ERROR_CODE_INVALID_QUERY, FILTER_PROPERTY, INSERT_OBJECT, QUERY_FOR_ALL, QUERY_FOR_ID, SORT_DESCRIPTORS_PROPERTY, UPDATE_OBJECTFields inherited from class net.solarnetwork.central.dao.mybatis.support.BaseMyBatisDao
FIRST_ROW, logFields inherited from class org.springframework.dao.support.DaoSupport
loggerFields inherited from interface net.solarnetwork.dao.GenericDao
ENTITY_EVENT_ENTITY_ID_PROPERTY, ENTITY_EVENT_ENTITY_PROPERTY, ENTITY_EVENT_TOPIC_TEMPLATE, SORT_BY_CREATED_ASCENDING, SORT_BY_CREATED_DESCENDING, SORT_BY_CREATED_ID_ASCENDING, SORT_BY_CREATED_ID_DESCENDING, SORT_BY_ID_ASCENDING, SORT_BY_ID_DESCENDING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateFilterResults(F filter, Map<String, Object> sqlProps, Iterable<M> rows, Long totalCount, Integer offset, Integer returnedCount) Create a results instance from query results.doFindFiltered(F filter, List<net.solarnetwork.domain.SortDescriptor> sorts, Integer offset, Integer max) Perform a filter search using standardized semantics.protected StringgetFilteredQuery(String filterDomain, F filter) Get the filter query name for a given domain.protected voidpostProcessFilterProperties(F filter, Map<String, Object> sqlProps) Callback to alter the default SQL properties set up byFilterableDao.findFiltered(Object, List, Integer, Integer)Methods inherited from class net.solarnetwork.central.dao.mybatis.support.BaseMyBatisGenericDaoSupport
delete, get, getAll, getDelete, getInsert, getKeyType, getLastUpdateCount, getObjectType, getQueryForAll, getQueryForId, getUpdate, handleDelete, handleInsert, handleUpdate, isAssignedPrimaryKeys, preprocessInsert, save, saveWithAssignedPrimaryKey, setDelete, setInsert, setQueryForAll, setQueryForId, setUpdateMethods inherited from class net.solarnetwork.central.dao.mybatis.support.BaseMyBatisDao
executeCountQuery, selectFiltered, selectFiltered, selectFiltered, selectFiltered, selectFirst, selectList, selectLong, setSqlSessionFactoryMethods inherited from class org.mybatis.spring.support.SqlSessionDaoSupport
checkDaoConfig, createSqlSessionTemplate, getSqlSession, getSqlSessionFactory, getSqlSessionTemplate, setSqlSessionTemplateMethods inherited from class org.springframework.dao.support.DaoSupport
afterPropertiesSet, initDaoMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.solarnetwork.dao.FilterableDao
findFiltered, findFilteredMethods inherited from interface net.solarnetwork.dao.GenericDao
entityEventTopic, entityKey
-
Constructor Details
-
Method Details
-
getFilteredQuery
Get the filter query name for a given domain.- Parameters:
filterDomain- the domainfilter- the filter- Returns:
- query name
-
postProcessFilterProperties
Callback to alter the default SQL properties set up byFilterableDao.findFiltered(Object, List, Integer, Integer)- Parameters:
filter- the current filtersqlProps- the properties
-
doFindFiltered
protected net.solarnetwork.dao.FilterResults<M,K> doFindFiltered(F filter, List<net.solarnetwork.domain.SortDescriptor> sorts, Integer offset, Integer max) Perform a filter search using standardized semantics.The following steps are taken:
- Compute the MyBatis query name by calling
getFilteredQuery(String, PaginationCriteria). - Call
BaseMyBatisDao.selectFiltered(String, Object, List, Integer, Integer, java.util.function.BiConsumer).
- Parameters:
filter- the search filtersorts- the sort descriptorsoffset- the starting result offsetmax- the maximum number of results- Returns:
- the results
- See Also:
- Compute the MyBatis query name by calling
-
createFilterResults
public net.solarnetwork.dao.FilterResults<M,K> createFilterResults(F filter, Map<String, Object> sqlProps, Iterable<M> rows, Long totalCount, Integer offset, Integer returnedCount) Description copied from interface:FilterResultsFactoryCreate a results instance from query results.- Specified by:
createFilterResultsin interfaceFilterResultsFactory<T extends net.solarnetwork.dao.Entity<K>,K, M extends net.solarnetwork.domain.Identity<K>> - Parameters:
filter- the query filtersqlProps- the SQL parametersrows- the resulting rowstotalCount- the total count (or null if not known)offset- the offset of the first resultreturnedCount- the number of results returned- Returns:
- the result instance
-