不能和逻辑删除一起配置,不然报错。

来源:8-1 SQL注入器简介及自定义方法实现

慕粉1469371404

2019-11-26 15:54

逻辑删除的配置:

    @Bean
    public ISqlInjector sqlInjector(){
        return new LogicSqlInjector();
    }

mySqlInjector的配置:

@Component
public class MySqlinjector extends DefaultSqlInjector {

    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
        //调用super的方法,否则mybatisplus的默认方法都不能用
        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
        //加入自定义的方法
        methodList.add(new RemoveById());
        return methodList;
    }
}

报错:

No qualifying bean of type 'com.baomidou.mybatisplus.core.injector.ISqlInjector' available: expected single matching bean but found 2: mySqlinjector,sqlInjector

写回答 关注

2回答

  • 老猿
    2019-11-26 16:04:31

    不能同时制定两个sql注入器,所以报错,你有一个办法MySqlinjector不要继承DefaultSqlInjector直接继承LogicSqlInjector就可以了,你就配置这一个sql注入器,就既能使用逻辑删除又能加入自定义方法了。

    慕粉1469...

    知道了。老师你讲的这个自定义通用方法没有参数,如果有参数怎么办,比如 myDeledeById(int id)

    2019-11-26 16:14:21

    共 1 条回复 >

  • 慕粉1469371404
    2019-11-26 16:08:04

    知道了。老师你讲的这个自定义通用方法没有参数,如果有参数怎么办,比如 myDeledeById(int id)

    老猿

    其实MP的BaseMapper中提供的很多通用方法也是自定义方法,只不过是官方自定义的。如果你想知道有参数怎么办,你可以看MP的源码,参考一下官方提供的方法,例如com.baomidou.mybatisplus.core.injector.methods.DeleteById这个类。

    2019-11-28 08:51:26

    共 1 条回复 >

MyBatis-Plus进阶

MyBatis-Plus框架进阶课程

23296 学习 · 118 问题

查看课程

相似问题