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

cn.cliveyuan.robin.base.BaseService Maven / Gradle / Ivy

There is a newer version: 1.3.1
Show newest version
/*
 * Copyright (c) 2020  Clive Yuan ([email protected]).
 */

package cn.cliveyuan.robin.base;

import cn.cliveyuan.robin.base.condition.PageQueryExample;
import cn.cliveyuan.robin.base.condition.Query;
import cn.cliveyuan.robin.base.common.Pagination;

import java.util.List;

/**
 * 基础 Service
 *
 * @author Clive Yuan
 * @date 2020/10/29
 */
public interface BaseService {

    /**
     * 选择性插入
     * 

* 仅插入非null字段 * * @param entity 实体 * @return 影响行数 */ int insert(T entity); /** * 全字段插入 *

* 无论是否为null均进行插入 * * @param entity 实体 * @return 影响行数 */ int insertAll(T entity); /** * 选择性插入且忽略错误 *

* 仅插入非null字段 * * @param entity 实体 * @return */ int insertIgnore(T entity); /** * 选择性保存 *

entity.id = null -> 插入

*

entity.id != null -> 更新

* * @param entity 实体 * @return 影响行数 */ int save(T entity); /** * 全字段保存 *

entity.id = null -> 插入

*

entity.id != null -> 更新

* * @param entity 实体 * @return 影响行数 */ int saveAll(T entity); /** * 批量选择性插入 * * @param list 实体列表 * @return 影响行数 */ int batchInsert(List list); /** * 批量选择性插入且忽略错误 * * @param list 实体列表 * @return */ int batchInsertIgnore(List list); /** * 根据ID删除 * * @param id 主键ID * @return 影响行数 */ int delete(Long id); /** * 批量ID删除 * * @param ids ID列表 * @return 影响行数 */ int batchDelete(List ids); /** * 根据条件删除 * * @return 影响行数 */ int deleteByExample(Query query); /** * 选择性更新 *

* 仅更新非null字段 * * @param entity 实体 * @return 影响行数 */ int update(T entity); /** * 全字段更新 *

* 无论是否为null均进行更新 * * @param entity 实体 * @return 影响行数 */ int updateAll(T entity); /** * 根据条件选择性更新 * * @param entity 实体 (set) * @param query 查询条件 (where) * @return 影响行数 */ int updateByExample(T entity, Query query); /** * 根据条件更新全字段 * * @param entity 实体 (set) * @param query 查询条件 (where) * @return 影响行数 */ int updateByExampleAll(T entity, Query query); /** * 根据ID获取实体 * * @param id 主键ID * @return 实体对象 */ T get(Long id); /** * 批量获取实体 * * @param ids ID列表 * @return 实体列表 */ List batchGet(List ids); /** * 根据条件获取实体 *

* 多个时仅返回ID倒序排序首个 * * @param query 查询条件 * @return 实体对象 */ T getByExample(Query query); /** * 根据条件数量查询 * * @param query 查询条件 * @return 条数 */ int count(Query query); /** * 根据条件列表查询 * * @param query 查询条件 * @return 实体列表 */ List list(Query query); /** * 分页查询 * * @param query 查询条件 * @return 实体分页 */ Pagination page(PageQueryExample query); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy