mybatis-plus在使用selectOne方法查询记录查到多条时会抛出异常,但有些业务场景需要只取一条的情况,查出来数组再取第一个的方案显得也不方便,可以用如下aop的方法解决:

@Aspect
@Component
public class MybatisAspectj {

    // 配置织入点
    @Pointcut("execution(public * com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(..))")
    public void selectOneAspect() {
    }

    @Before("selectOneAspect()")
    public void beforeSelect(JoinPoint point) {
        Object arg = point.getArgs()[0];
        if (arg instanceof AbstractWrapper) {
            arg = (AbstractWrapper) arg;
            ((AbstractWrapper) arg).last("limit 1");
        }
    }
}

首先创建自己的mapper继承BaseMapper(常规操作),之后创建这个aop配置类,对selectOne方法进行处理。
以上内容转载自:
https://blog.csdn.net/qq_4371...


guomz
16 声望1 粉丝

不求做完人,只求做凡人。


引用和评论

0 条评论