package com.taover.repository; import java.io.Serializable; import java.util.List; import java.util.Map; import com.taover.repository.exception.MultiRowException; import com.taover.repository.exception.NoContainTenantException; import com.taover.repository.exception.NotFoundException; public interface CustomJdbcTemplateWrapperTenantInterface { /** * 按主键查询 */ public T findEntityByID(ID id, Long tenantId) throws NotFoundException; /** * 按主键查询 * isLock 是否锁定, 默认不锁 * fromWriteDB 是否从写库读写,默认从读库查询 */ public T findEntityByID(ID id, Long tenantId, boolean isLock) throws NotFoundException; /** * 根据条件List查询 * Object[]数组长度是3 * Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 */ public T findEntityByCondition(List condition, Long tenantId) throws NotFoundException,MultiRowException,NoContainTenantException; /** * 根据条件sql查询 * sqlCondition 为where 后面的条件。 */ public T findEntityBySql(String sqlCondition, Long tenantId) throws NotFoundException,MultiRowException,NoContainTenantException; /** * 根据条件List查询 * Object[]数组长度是3 * Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 */ public List findListByCondition(List condition, Long tenantId); /** * 根据条件List查询 * Object[]数组长度是3 * Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 */ public List findListByCondition(List condition, String sortCondition, Long tenantId); /** * 根据条件sql查询 * sqlCondition 为where 后面的条件。 */ public List findListBySql(String sqlCondition, Long tenantId); /** * 按条件分页查询 * Object[]数组长度是3 * Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 */ public Map findPageByCondition(List condition, int page, int pageSize, Long tenantId); /** * 按条件分页查询 * Object[]数组长度是3 * Object[]第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 * boolean isUseCache, 是否用缓存,默认用。 * boolean isAddCache, 是否添加缓存,默认添加。 */ public Map findPageByCondition(List condition, String sortCondition, int page, int pageSize, Long tenantId); /** * 按sql分页查询, sqlCondition为where 后条件sql */ public Map findPageBySql(String sqlCondition, int page, int pageSize, Long tenantId); /** * 添加 */ public void addEntity(T entity, Long tenantId); /** * 批量添加 * @throws Exception */ public void addEntityList(List entityList, Long tenantId); /** * 按ID删除 */ public int deleteEntityByID(ID id, Long tenantId); /** * 删除按List条件 * Object[]数组长度是3 * Object[], 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 */ public int deleteEntityByCondition(List condition, Long tenantId); /** * 删除按condition条件 * 建议使用deleteTByCondition(List condition), 如果removeTByCondition(List condition)满足不了where条件可以使用此方法。 * condition为where后面的条件,condition不能为空。 */ public int deleteEntityBySql(String sqlCondition, Long tenantId); /** * 根据list对象逐个删除。 * @throws NoContainTenantException */ public int deleteEntityList(List idList, Long tenantId); /** * 根据ID修改指定的值 */ public int updateEntityById(List changeList, ID id, Long tenantId); /** * List updateObj 要修改成的值,数组长度为2,第一个值为列名,第二个值是要改成的值。 * List condition 修改的条件, 数组长度是3, 第一个参数是列名,第二个参数是操作符,第三个参数是查询条件的值。 */ public int updateEntityByCondition(List updateObj, List condition, Long tenantId); /** * List updateObj 要修改成的值,数组长度为2,第一个值为列名,第二个值是要改成的值。 * String sqlCondition 修改的条件。 */ public int updateEntityBySql(List updateObj, String sqlCondition, Long tenantId); /** * 获取分页数据 * @param coreSql * @param orderByPartSql * @param page * @param pageSize * @return */ public Map getPageData(String coreSql, String orderByPartSql, Integer page, Integer pageSize, Long tenantId); /** * 获取分页数据 * @param selectSql * @param fromAndWhereSql * @param orderByPartSql * @param page * @param pageSize * @return */ public Map getPageData(String selectSql, String fromAndWhereSql, String orderByPartSql, Integer page, Integer pageSize, Long tenantId); }