关于lambdaQuery().last方法错误使用

public List<Orders> queryOverTimePayOrdersListByCount(Integer count) {
    return this.lambdaQuery()
        // 未支付
        .eq(Orders::getOrdersStatus, OrderStatusEnum.NO_PAY.getStatus())
        // 15分钟之前
        .lt(Orders::getCreateTime, LocalDateTime.now().minusMinutes(15))
        .last("limit" + count)
        .list();
}

在上面的代码中lambdaQuery().last方法是 MyBatis-Plus 提供的一个方法,

用于在最终生成的 SQL 语句末尾添加用户自定义的 SQL 片段。

上面的代码中设置了遍历的数据条数的限制即count,而.last方法中("limit"+count),limit与count之间并没有添加空格,这导致SQL语句直接错误,从而无法从数据库中查找到数据

正确代码如下:

public List<Orders> queryOverTimePayOrdersListByCount(Integer count) {
    return this.lambdaQuery()
        // 未支付
        .eq(Orders::getOrdersStatus, OrderStatusEnum.NO_PAY.getStatus())
        // 15分钟之前
        .lt(Orders::getCreateTime, LocalDateTime.now().minusMinutes(15))
        //多一个空格
        .last("limit " + count)
        .list();
}
posted @ 2025-04-05 19:50  留梦&  阅读(187)  评论(0)    收藏  举报