package org.hsweb.web.service;
import org.hsweb.ezorm.core.dsl.Delete;
import org.hsweb.web.bean.common.DeleteParam;
import org.hsweb.web.dao.DeleteMapper;
import org.hsweb.web.dao.GenericMapper;
/**
* @author zhouhao
*/
public interface DeleteService<Pk> {
/**
* 根据主键删除记录
*
* @param pk 主键
* @return 影响记录数
*/
int delete(Pk pk);
Delete<DeleteParam> createDelete();
/**
* 指定一个dao映射接口,接口需继承{@link GenericMapper}创建dsl数据删除操作对象<br>
* 可通过返回的Update对象进行dsl方式操作如:<br>
* <code>
* createDelete(userMapper).where("id",1).exec();
* </code>
*
* @param mapper dao映射结构
* @return {@link Delete}
* @see Delete
* @see org.hsweb.ezorm.core.Conditional
* @since 2.2
*/
static Delete<DeleteParam> createDelete(DeleteMapper mapper) {
Delete<DeleteParam> update = new Delete<>(new DeleteParam());
update.setExecutor(mapper::delete);
return update;
}
/**
* 自定义一个删除执行器。创建dsl数据删除操作对象
*
* @param executor 执行器
* @return {@link Delete}
* @since 2.2
*/
static Delete<DeleteParam> createDelete(Delete.Executor<DeleteParam> executor) {
Delete<DeleteParam> update = new Delete<>(new DeleteParam());
update.setExecutor(executor::doExecute);
return update;
}
}