Mybatis-Plus中谨慎使用XXXMapper.selectOne
原因:
使用selectOne需要非常确定,返回的数据集只有一条或者为空,当不为空时会报下面异常
com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: One record is expected, but the query result is multiple records
at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49)
at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:176)
at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)
返回上面异常说明,返回的数据集不止一条,是多条。当你使用selectOne时可能当时确认会返回一条数据或者为空,但是当之后随着业务变化,你可以一直确定返回的会有一条数据吗,当数据中有脏数据呢。
建议:
使用 selectList(),通过selectList()返回的数据get(0),就能取首条,而且这种方式可以做一个空判断,提前判断selectList()是不是空,如果是空的话就不在get(0),也就避免的系统的异常产生。
大家好,我是时生,站在巨人的肩膀做出一点点改变。欢迎批评,欢迎指正,欢迎共享,有事私信。 如果这篇文章对你有帮助,麻烦点个赞呗!