Files
ccdi/docs/plans/backend/2026-04-22-staff-recruitment-collation-fix-backend-implementation.md

1.6 KiB
Raw Blame History

员工招聘列表排序规则冲突修复实施计划

保存路径确认

  • 路径:docs/plans/backend/2026-04-22-staff-recruitment-collation-fix-backend-implementation.md
  • 归类:后端实施计划

背景

  • 员工招聘列表查询执行 ccdi_staff_recruitmentccdi_staff_recruitment_workrecruit_id 关联时,报错 Illegal mix of collations (utf8mb4_0900_ai_ci) and (utf8mb4_general_ci)
  • 现有招聘主表已被纳入全库统一排序规则脚本,但历史工作经历子表在建表时未显式声明 utf8mb4_general_ci,且未被纳入统一修复脚本,导致在 MySQL 8 环境中可能沿用默认 utf8mb4_0900_ai_ci

实施范围

  • 后端 MyBatis 查询 XML
  • 招聘相关 SQL 建表脚本
  • 数据库增量迁移脚本

实施步骤

  1. 修改招聘列表查询 SQLccdi_staff_recruitment_work.recruit_id 聚合与关联时显式使用 utf8mb4_general_ci,先恢复查询可用性。
  2. 修正 2026-04-15-add-staff-recruitment-social-work-summary.sql,为 ccdi_staff_recruitment_work 建表语句补齐 COLLATE=utf8mb4_general_ci
  3. 补充增量脚本,将现有库中的 ccdi_staff_recruitment_work 转换为 utf8mb4_general_ci
  4. 更新全库统一排序规则脚本,将该表纳入统一修复范围,避免后续漏执行。
  5. 编译受影响模块,确认 Mapper XML 与资源装配正常。

验证要点

  • selectRecruitmentPage 查询不再因 recruit_id 关联报排序规则冲突。
  • ccdi_staff_recruitment_work 表级与字符字段排序规则统一为 utf8mb4_general_ci
  • mvn -pl ccdi-info-collection -am compile 通过。