Class DefaultPaginatedGenericDao<M extends ItemModel>
- java.lang.Object
-
- de.hybris.platform.servicelayer.search.paginated.dao.impl.DefaultPaginatedGenericDao<M>
-
- All Implemented Interfaces:
PaginatedGenericDao<M>
public class DefaultPaginatedGenericDao<M extends ItemModel> extends java.lang.Object implements PaginatedGenericDao<M>
Default implementation ofPaginatedGenericDao
-
-
Constructor Summary
Constructors Constructor Description DefaultPaginatedGenericDao(java.lang.String typeCode)SetstypeCodewhere thisDefaultPaginatedGenericDaowill search from.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendWhereClausesToBuilder(java.lang.StringBuilder builder, java.util.Map<java.lang.String,?> params)Appends "WHERE" clause to the given builder with given params if it is not empty, otherwise do nothingprotected FlexibleSearchQuerycreateFlexibleSearchQuery(java.util.Map<java.lang.String,?> params)CreatesFlexibleSearchQueryfor thetypeCodeand append "WHERE" clause with params, if given params is not empty.protected java.lang.StringBuildercreateQueryString()Creates a search query for thetypeCodewhich is set from constructorSearchPageData<M>find(SearchPageData<M> searchPageData)Search for all instances of model given as a generic type using given sorts inSearchPageDatato sort the results and return paginated results by specified pagination inSearchPageData.SearchPageData<M>find(java.util.Map<java.lang.String,?> params, SearchPageData searchPageData)Search for all instances of model given as a generic type matching givenFlexibleSearchQueryparameters.protected PaginatedFlexibleSearchServicegetPaginatedFlexibleSearchService()protected java.util.Map<java.lang.String,java.lang.String>getSortCodeToQueryAlias(SearchPageData searchPageData)Creates a map between sortCode to query alias which is required fromPaginatedFlexibleSearchServiceto append "ORDER BY" clause.voidsetPaginatedFlexibleSearchService(PaginatedFlexibleSearchService paginatedFlexibleSearchService)
-
-
-
Constructor Detail
-
DefaultPaginatedGenericDao
public DefaultPaginatedGenericDao(java.lang.String typeCode)
SetstypeCodewhere thisDefaultPaginatedGenericDaowill search from. This constructor is an essential part of this Dao because it creates a query string based on thetypeCode.- Parameters:
typeCode- the typeCode where this Dao will search from.
-
-
Method Detail
-
find
public SearchPageData<M> find(SearchPageData<M> searchPageData)
Description copied from interface:PaginatedGenericDaoSearch for all instances of model given as a generic type using given sorts inSearchPageDatato sort the results and return paginated results by specified pagination inSearchPageData.- Specified by:
findin interfacePaginatedGenericDao<M extends ItemModel>- Parameters:
searchPageData- the searchPageData including sorts and pagination information to be applied in the results- Returns:
SearchPageDatacontaining paginated and sorted search results
-
find
public SearchPageData<M> find(java.util.Map<java.lang.String,?> params, SearchPageData searchPageData)
Description copied from interface:PaginatedGenericDaoSearch for all instances of model given as a generic type matching givenFlexibleSearchQueryparameters.- Specified by:
findin interfacePaginatedGenericDao<M extends ItemModel>- Parameters:
params- parameters to be added in search query's "WHERE" clause asMapwith parameter name as a key and parameter value as a value.searchPageData- the searchPageData including sorts and pagination information to be applied in the results- Returns:
SearchPageDatacontaining paginated and sorted search results
-
createFlexibleSearchQuery
protected FlexibleSearchQuery createFlexibleSearchQuery(java.util.Map<java.lang.String,?> params)
CreatesFlexibleSearchQueryfor thetypeCodeand append "WHERE" clause with params, if given params is not empty.- Parameters:
params- the map containingFlexibleSearchQueryparameters- Returns:
FlexibleSearchQuerywith query and queryParameters added if given params is not empty
-
createQueryString
protected java.lang.StringBuilder createQueryString()
Creates a search query for thetypeCodewhich is set from constructor- Returns:
StringBuilderwith basic search query for thetypeCode
-
appendWhereClausesToBuilder
protected void appendWhereClausesToBuilder(java.lang.StringBuilder builder, java.util.Map<java.lang.String,?> params)Appends "WHERE" clause to the given builder with given params if it is not empty, otherwise do nothing- Parameters:
builder- the query builder containing "SELECT ... FROM ..." portion of queryparams- the map containingFlexibleSearchQueryparameters
-
getSortCodeToQueryAlias
protected java.util.Map<java.lang.String,java.lang.String> getSortCodeToQueryAlias(SearchPageData searchPageData)
Creates a map between sortCode to query alias which is required fromPaginatedFlexibleSearchServiceto append "ORDER BY" clause. Because DefaultPaginatedGenericDao implementation will query from a singletypeCode, all the sortCode will be mapped to the predefinedQUERY_ALIASWhile creating
sortCodeToQueryAliasmap, it uses lower case of sortData's code to meet the expectation ofSortDataParsingStrategy- Parameters:
searchPageData- the searchPageData containing requested pagination and sorting information- Returns:
- Map<String,String> containing sortCodeToQueryAlias
- See Also:
PaginatedFlexibleSearchParameter.sortCodeToQueryAlias,SortDataParsingStrategy
-
getPaginatedFlexibleSearchService
protected PaginatedFlexibleSearchService getPaginatedFlexibleSearchService()
-
setPaginatedFlexibleSearchService
public void setPaginatedFlexibleSearchService(PaginatedFlexibleSearchService paginatedFlexibleSearchService)
-
-