MyLogicSqlInjector.java 1.36 KB
package cn.chnmuseum.party.common.mybatis;

import cn.chnmuseum.party.common.mybatis.query.InsertBatch;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.extension.injector.methods.AlwaysUpdateSomeColumnById;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
import com.baomidou.mybatisplus.extension.injector.methods.LogicDeleteByIdWithFill;

import java.util.List;

/**
 * @author Danny Lee
 * @description 自定义sql注入器·
 * @date Created in 2020/3/6 16:10
 */
public class MyLogicSqlInjector extends DefaultSqlInjector {

    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
        //增加自定义方法
        methodList.add(new InsertBatch());
        /*
         * 以下3个为内置选装件, 头2个支持字段筛选函数
         * 例: 不要指定了update填充的字段
         */
        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
        methodList.add(new AlwaysUpdateSomeColumnById(t -> !"name".equals(t.getColumn())));
        methodList.add(new LogicDeleteByIdWithFill());
        return methodList;
    }

}