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

com.gitee.qdbp.jdbc.stream.CrudOnAfterEntitiesStream Maven / Gradle / Ivy

package com.gitee.qdbp.jdbc.stream;

import java.util.List;
import com.gitee.qdbp.able.exception.ServiceException;
import com.gitee.qdbp.jdbc.api.CrudDao;
import com.gitee.qdbp.jdbc.model.ValidStrategy;

/**
 * 实体数组后续操作: insert / update
 *
 * @author zhaohuihua
 * @version 20210530
 */
public class CrudOnAfterEntitiesStream {

    protected final CrudDao dao;
    private final List entities;

    CrudOnAfterEntitiesStream(CrudDao dao, List entities) {
        this.dao = dao;
        this.entities = entities;
    }

    /**
     * 批量保存实体对象
* 注意: 如果主键编号为空将会自动生成
* 注意: 默认创建参数由entityFieldFillExecutor添加, 如dataState=DataState.NORMAL
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被设置为NULL
* ---- 这将会导致数据库设置的默认值不会生效, 因此需要手动设置d字段, 或在d字段上配置默认值
* entities 实体对象列表(只能是entity或map或IdEntity列表, 其他参数将会报错)
*
    List<String> ids = qdbcBoot.crudStream(SysUser.class)
        .entities(user)
        .insert();
     * 
* * @return 返回主键编号 * @throws ServiceException 操作失败 */ public List insert() throws ServiceException { return dao.inserts(entities); } /** * 批量保存实体对象
* 注意: 如果主键编号为空将会自动生成
* 注意: 默认创建参数由entityFieldFillExecutor添加, 如dataState=DataState.NORMAL
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被设置为NULL
* ---- 这将会导致数据库设置的默认值不会生效, 因此需要手动设置d字段, 或在d字段上配置默认值
* entities 实体对象列表(只能是entity或map或IdEntity列表, 其他参数将会报错)
*
    List<String> ids = qdbcBoot.crudStream(SysUser.class)
        .entities(user)
        .insert();
     * 
* * @param fillCreateParams 是否自动填充创建参数(创建人/创建时间等) * @return 返回主键编号 * @throws ServiceException 操作失败 */ public List insert(boolean fillCreateParams) throws ServiceException { return dao.inserts(entities, fillCreateParams); } /** * 批量保存实体对象
* 注意: 如果主键编号为空将会自动生成
* 注意: 默认创建参数由entityFieldFillExecutor添加, 如dataState=DataState.NORMAL
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被设置为NULL
* ---- 这将会导致数据库设置的默认值不会生效, 因此需要手动设置d字段, 或在d字段上配置默认值
* entities 实体对象列表(只能是entity或map或IdEntity列表, 其他参数将会报错)
*
    List<String> ids = qdbcBoot.crudStream(SysUser.class)
        .entities(user)
        .insert(ValidStrategy.TRANSFORM);
     * 
* * @param validStrategy 校验处理策略
* 注意: 由于@Column的length/precision/scale有默认值, 一旦启用, 则所有字段都需要覆盖设置! * @return 返回主键编号 * @throws ServiceException 操作失败 */ public List insert(ValidStrategy validStrategy) throws ServiceException { return dao.inserts(entities, validStrategy); } /** * 批量保存实体对象
* 注意: 如果主键编号为空将会自动生成
* 注意: 默认创建参数由entityFieldFillExecutor添加, 如dataState=DataState.NORMAL
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被设置为NULL
* ---- 这将会导致数据库设置的默认值不会生效, 因此需要手动设置d字段, 或在d字段上配置默认值
* entities 实体对象列表(只能是entity或map或IdEntity列表, 其他参数将会报错)
*
    List<String> ids = qdbcBoot.crudStream(SysUser.class)
        .entities(user)
        .insert(ValidStrategy.TRANSFORM, true);
     * 
* * @param validStrategy 校验处理策略
* 注意: 由于@Column的length/precision/scale有默认值, 一旦启用, 则所有字段都需要覆盖设置! * @param fillCreateParams 是否自动填充创建参数(创建人/创建时间等) * @return 返回主键编号 * @throws ServiceException 操作失败 */ public List insert(ValidStrategy validStrategy, boolean fillCreateParams) throws ServiceException { return dao.inserts(entities, validStrategy, fillCreateParams); } /** * 根据主键编号批量更新实体对象
* 注意: 如果主键编号为空将会报错
* 注意: 这里的限制条件只有主键编号, 而不会追加数据状态作为限制条件
* 注意: entity将会自动由entityFieldFillExecutor填充更新参数(修改人/修改时间等)
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 1.某些实现类可能无法获取到准确的受影响行数
* -- 2.大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被更新为NULL
* ---- 因此需要手动设置d字段(一般来自数据库查询的记录或用户输入的信息)
* entities 实体对象列表, 只能是entity或map或IdEntity列表, 其他参数将会报错
* 如果实体对象是map, map下不能有where, 否则将会报错
    int rows = qdbcBoot.crudStream(SysUser.class)
        .entities(users)
        .update();
     * 
* * @return 受影响行数(某些实现类可能无法获取到准确的受影响行数) * @throws ServiceException 操作失败 */ public int update() throws ServiceException { return dao.updates(entities); } /** * 根据主键编号批量更新实体对象
* 注意: 如果主键编号为空将会报错
* 注意: 这里的限制条件只有主键编号, 而不会追加数据状态作为限制条件
* 注意: entity将会自动由entityFieldFillExecutor填充更新参数(修改人/修改时间等)
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 1.某些实现类可能无法获取到准确的受影响行数
* -- 2.大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被更新为NULL
* ---- 因此需要手动设置d字段(一般来自数据库查询的记录或用户输入的信息)
* entities 实体对象列表, 只能是entity或map或IdEntity列表, 其他参数将会报错
* 如果实体对象是map, map下不能有where, 否则将会报错
     * 
    int rows = qdbcBoot.crudStream(SysUser.class)
        .entities(users)
        .update(true); // 自动填充更新参数
     * 
* * @param fillUpdateParams 是否自动填充更新参数(修改人/修改时间等) * @return 受影响行数 * @throws ServiceException 操作失败 */ public int update(boolean fillUpdateParams) throws ServiceException { return dao.updates(entities, fillUpdateParams); } /** * 根据主键编号批量更新实体对象
* 注意: 如果主键编号为空将会报错
* 注意: 这里的限制条件只有主键编号, 而不会追加数据状态作为限制条件
* 注意: entity将会自动由entityFieldFillExecutor填充更新参数(修改人/修改时间等)
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 1.某些实现类可能无法获取到准确的受影响行数
* -- 2.大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被更新为NULL
* ---- 因此需要手动设置d字段(一般来自数据库查询的记录或用户输入的信息)
* entities 实体对象列表, 只能是entity或map或IdEntity列表, 其他参数将会报错
* 如果实体对象是map, map下不能有where, 否则将会报错
    int rows = qdbcBoot.crudStream(SysUser.class)
        .entities(users)
        .update(ValidStrategy.TRANSFORM);
     * 
* * @param validStrategy 校验处理策略
* 注意: 由于@Column的length/precision/scale有默认值, 一旦启用, 则所有字段都需要覆盖设置! * @return 受影响行数(某些实现类可能无法获取到准确的受影响行数) * @throws ServiceException 操作失败 */ public int update(ValidStrategy validStrategy) throws ServiceException { return dao.updates(entities, validStrategy); } /** * 根据主键编号批量更新实体对象
* 注意: 如果主键编号为空将会报错
* 注意: 这里的限制条件只有主键编号, 而不会追加数据状态作为限制条件
* 注意: entity将会自动由entityFieldFillExecutor填充更新参数(修改人/修改时间等)
* 注意: 根据实现类的不同, 有以下注意事项, 请详查具体实现类的机制:
* -- 1.某些实现类可能无法获取到准确的受影响行数
* -- 2.大部分的实现类要求实体列表字段对齐
* ---- 例如第1个实体有abcd四个字段,第2个实体只有abc三个字段, 则第2个实体的d字段将被更新为NULL
* ---- 因此需要手动设置d字段(一般来自数据库查询的记录或用户输入的信息)
* entities 实体对象列表, 只能是entity或map或IdEntity列表, 其他参数将会报错
* 如果实体对象是map, map下不能有where, 否则将会报错
     * 
    int rows = qdbcBoot.crudStream(SysUser.class)
        .entities(users)
        .update(ValidStrategy.TRANSFORM, true); // 自动填充更新参数
     * 
* * @param validStrategy 校验处理策略
* 注意: 由于@Column的length/precision/scale有默认值, 一旦启用, 则所有字段都需要覆盖设置! * @param fillUpdateParams 是否自动填充更新参数(修改人/修改时间等) * @return 受影响行数 * @throws ServiceException 操作失败 */ public int update(ValidStrategy validStrategy, boolean fillUpdateParams) throws ServiceException { return dao.updates(entities, validStrategy, fillUpdateParams); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy