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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。