package com.kym.service.mybatisplus;

import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.kym.service.mybatisplus.injector.method.InsertIgnore;
import com.kym.service.mybatisplus.injector.method.Replace;

import java.util.List;

/**
 * 自定义sql注入器，增加通用方法
 *
 * @author chqiu
 */
public class CustomerSqlInjector extends DefaultSqlInjector {

    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
        List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
        // 插入数据，如果中已经存在相同的记录，则忽略当前新数据
        methodList.add(new InsertIgnore());
        // 替换数据，如果中已经存在相同的记录，则覆盖旧数据
        methodList.add(new Replace());
        return methodList;
    }
}