com.ejlchina.searcher.Searcher Maven / Gradle / Ivy
package com.ejlchina.searcher;
import java.util.List;
import java.util.Map;
/**
* 自动检索器接口
* 根据 Bean 的 Class 和请求参数,自动检索 Bean
*
* @author Troy.Zhou @ 2017-03-20
*
* */
public interface Searcher {
/**
* 适合需要分页的查询
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数
* @param prefix 检索参数前缀
* @return 总条数,Bean 数据列表
* */
SearchResult search(Class beanClass, Map paraMap, String prefix);
/**
* 适合需要分页的查询
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数
* @return 总条数,Bean 数据列表
* */
SearchResult search(Class beanClass, Map paraMap);
/**
* 适合需要分页的查询
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数
* @param summaryFields 统计字段
* @param prefix 检索参数前缀
* @return 总条数,Bean 数据列表
* */
SearchResult search(Class beanClass, Map paraMap, String[] summaryFields, String prefix);
/**
* 适合需要分页的查询
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数
* @param summaryFields 统计字段
* @return 总条数,Bean 数据列表
* */
SearchResult search(Class beanClass, Map paraMap, String[] summaryFields);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @param prefix 检索参数前缀
* @return 满足条件的第一个Bean
* */
T searchFirst(Class beanClass, Map paraMap, String prefix);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @return 满足条件的第一个Bean
* */
T searchFirst(Class beanClass, Map paraMap);
/**
* 适合不需要分页的查询
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @param prefix 检索参数前缀
* @return Bean 数据列表
* */
List searchList(Class beanClass, Map paraMap, String prefix);
/**
* 适合不需要分页的查询
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @return Bean 数据列表
* */
List searchList(Class beanClass, Map paraMap);
/**
* 检索满足条件的所有Bean,不支持偏移
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @param prefix 检索参数前缀
* @return Bean 数据列表
* */
List searchAll(Class beanClass, Map paraMap, String prefix);
/**
* 检索满足条件的所有Bean,不支持偏移
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @return Bean 数据列表
* */
List searchAll(Class beanClass, Map paraMap);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @param prefix 检索参数前缀
* @return Bean 数据个数
* */
Number searchCount(Class beanClass, Map paraMap, String prefix);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @return Bean 数据个数
* */
Number searchCount(Class beanClass, Map paraMap);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @param field 参与求和的字段
* @param prefix 检索参数前缀
* @return Bean 字段求和
* */
Number searchSum(Class beanClass, Map paraMap, String field, String prefix);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param field 参与求和的字段
* @param paraMap 检索参数(包括排序分页参数)
* @return Bean 字段求和
* */
Number searchSum(Class beanClass, Map paraMap, String field);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param paraMap 检索参数(包括排序分页参数)
* @param fields 参与求和的字段数组
* @param prefix 检索参数前缀
* @return Bean 字段求和数组
* */
Number[] searchSum(Class beanClass, Map paraMap, String[] fields, String prefix);
/**
* @param bean 类型
* @param beanClass 要检索的 bean 类型
* @param fields 参与求和的字段数组
* @param paraMap 检索参数(包括排序分页参数)
* @return Bean 字段求和
* */
Number[] searchSum(Class beanClass, Map paraMap, String[] fields);
}