mybatis-plus中使用QueryWrapper和LambdaQueryWrapper的limit出现的问题

最近在项目中遇到个比较奇怪的问题,使用QueryWrapper查询一条数据时,如果表中有大于1条命中,则会报:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2 异常。

代码如下:

QueryWrapper<Crm> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(Crm::getShopId, cdtShopId)
                .orderByDesc(Crm::getId).last(" limit 1");
        return baseMapper
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MyBatis-Plus 是一个基于 MyBatis 的增强工具,在使用 MyBatis 进行数据库操作时提供了更方便、更强大的功能。在 MyBatis-Plus 使用 limit 包进行分页查询是一种常见的需求。 在 MyBatis-Plus ,可以通过使用 QueryWrapperLambdaQueryWrapper 来构建查询条件。对于分页查询,可以使用 Page 类来进行分页操作。这里以使用 Page 类进行分页查询为例: ```java import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserDao userDao; public IPage<User> getUserListByPage(int pageNum, int pageSize) { Page<User> page = new Page<>(pageNum, pageSize); QueryWrapper<User> queryWrapper = Wrappers.query(); // 设置其他查询条件 // queryWrapper.eq("name", "张三"); // queryWrapper.like("name", "张"); // ... return userDao.selectPage(page, queryWrapper); } } ``` 以上代码,我们通过 Page 类来创建一个分页对象,并指定当前页码和每页记录数。然后使用 QueryWrapper 来构建查询条件,可以根据需要设置不同的查询条件。最后使用 selectPage 方法进行分页查询,返回一个包含分页结果的 IPage 对象。 通过这种方式,我们可以方便地实现 MyBatis-Plus 的分页查询功能。希望对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值