MyLogicSqlInjector.java 1.36 KB
Newer Older
liqin's avatar
liqin committed
1
package cn.chnmuseum.party.common.mybatis;
liqin's avatar
liqin committed
2

liqin's avatar
liqin committed
3
import cn.chnmuseum.party.common.mybatis.query.InsertBatch;
liqin's avatar
liqin committed
4 5 6 7 8 9 10 11 12 13
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;

/**
liqin's avatar
liqin committed
14
 * @author Danny Lee
liqin's avatar
liqin committed
15 16 17 18 19 20 21 22 23 24
 * @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());
liqin's avatar
liqin committed
25 26 27
        /*
         * 以下3个为内置选装件, 头2个支持字段筛选函数
         * 例: 不要指定了update填充的字段
liqin's avatar
liqin committed
28 29 30 31 32 33 34 35 36
         */
        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
        methodList.add(new AlwaysUpdateSomeColumnById(t -> !"name".equals(t.getColumn())));
        methodList.add(new LogicDeleteByIdWithFill());
        return methodList;
    }

}