Commit 85a63467dd2d2491686d445738c2a868481dc6a7
1 parent
8e43004c
fix(crm):回款计划创建查最大期次改单表查询,修 Unknown column 't.contract_id'(A6)
MPJLambdaWrapperX 会给列拼表别名前缀 t.,但 BaseMapper.selectOne 生成的 FROM 不带别名,单表查询直接 SQL 语法错误(2026-09-21 23:50:39 实抓堆栈: CrmReceivablePlanMapper.selectMaxPeriodByContractId:27 → createReceivablePlan:65 → 500 系统异常)。同文件 selectCount+MPJ 走 MPJ 自带 FROM 别名不受影响, 仅 selectOne 路径改 LambdaQueryWrapperX。
Showing
1 changed file
with
4 additions
and
1 deletions
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
| ... | ... | @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.crm.dal.mysql.receivable; |
| 3 | 3 | import cn.hutool.core.date.LocalDateTimeUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 6 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | 7 | import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; |
| 7 | 8 | import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.plan.CrmReceivablePlanPageReqVO; |
| 8 | 9 | import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO; |
| ... | ... | @@ -24,7 +25,9 @@ import java.util.Objects; |
| 24 | 25 | public interface CrmReceivablePlanMapper extends BaseMapperX<CrmReceivablePlanDO> { |
| 25 | 26 | |
| 26 | 27 | default CrmReceivablePlanDO selectMaxPeriodByContractId(Long contractId) { |
| 27 | - return selectOne(new MPJLambdaWrapperX<CrmReceivablePlanDO>() | |
| 28 | + // 单表查询不能用 MPJLambdaWrapperX:它会给列拼接表别名前缀(t.contract_id), | |
| 29 | + // 但 selectOne 生成的 FROM 不带别名,导致 Unknown column 't.contract_id'。 | |
| 30 | + return selectOne(new LambdaQueryWrapperX<CrmReceivablePlanDO>() | |
| 28 | 31 | .eq(CrmReceivablePlanDO::getContractId, contractId) |
| 29 | 32 | .orderByDesc(CrmReceivablePlanDO::getPeriod) |
| 30 | 33 | .last("LIMIT 1")); | ... | ... |