
详细提示:### The error may exist in com/csair/mysql/daoimpl/mybatis/mappers/ErpApPaymentLineMapper.xml ### The error may involve defaultParameterMap ### The error occurred while setting parameters ### SQL: UPDATE erp_ap_payment_line SET deal_flag 1 and data_file ? WHERE payment_header_id ? ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column DEAL_FLAG cannot be null [10.79.189.76:2882] [2026-06-13 16:47:23.569466] [YB420A4FBD4C-00063519B3EED275-0-0] ; SQL []; Column DEAL_FLAG cannot be null [10.79.189.76:2882] [2026-06-13 16:47:23.569466] [YB420A4FBD4C-00063519B3EED275-0-0]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column DEAL_FLAG cannot be null问题原因SQL 语法写错 字段非空约束冲突 MySQL 中UPDATE多个字段要用逗号分隔不是and导致deal_flag赋值失效、变成null而该字段建表时设置了不允许为空所以报错Column DEAL_FLAG cannot be null。错误 SQLUPDATE erp_ap_payment_line SET deal_flag 1 and data_file ? WHERE payment_header_id ?deal_flag 1 and data_file ?会被 MySQL 解析成布尔表达式不是两个字段赋值最终deal_flag无有效值。修正 SQLMybatis XML 里改把and换成英文逗号UPDATE erp_ap_payment_line SET deal_flag 1, data_file #{dataFile} WHERE payment_header_id #{paymentHeaderId}补充排查点确认data_file入参不能为 null否则依旧报非空错误核对payment_header_id传值正常避免更新全表改完 Mapper XML 后本地如果开了跳过编译 / 离线运行建议重新编译一次再启动确保 XML 文件生效。总结: 清晰记到脑中,mysql中更新多个字段,用逗号(,)分割而不是and