明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理
在使用 MPJLambdaWrapper 进行分页查询时,如果不为左连接表指定别名,可能会导致生成的 countSql 不准确的问题。

当进行分页查询时,MPJLambdaWrapper 会生成两个 SQL 语句:一个是用于查询符合条件的数据列表的 selectSql,另一个是用于查询总记录数的 countSql。countSql 的目的是为了获取总记录数以便进行分页计算。

如果不为左连接表指定别名,生成的 countSql 中可能会出现重复的表名,从而导致统计的记录数不准确。

为了避免这个问题,建议在进行左连接操作时,为每个左连接表指定一个别名(alias)。通过指定别名,可以确保生成的 countSql 正确地计算总记录数。

以下是一个示例,展示了如何为左连接表指定别名:
MPJLambdaWrapper wrapper = new MPJLambdaWrapper()
.select(…)
.from(BfmPmcOnlineProduct.class)
.leftJoin(BfmPmcProductRecord.class, “pr”, on -> on.eq(BfmPmcProductRecord::getId, BfmPmcOnlineProduct::getProductRecordId))
.leftJoin(BfmPmcDispatchOrder.class, “do”, on -> on.eq(BfmPmcDispatchOrder::getId, BfmPmcOnlineProduct::getDispatchOrderId))
.eq(…)
.listPage(pageNo, pageSize);

 

在上述示例中,我们在 leftJoin 方法中为左连接的表指定了别名 “pr” 和 “do”。这样可以确保生成的 countSql 正确计算总记录数。

请根据你的具体业务需求,在进行左连接时为每个左连接表指定别名,以确保生成的 countSql 准确无误。