All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ejlchina.searcher.Searcher Maven / Gradle / Ivy

There is a newer version: 3.8.3
Show newest version
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);
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy