4.8 KiB
4.8 KiB
招聘岗位模块数据库字段修复记录
📋 基本信息
| 项目 | 信息 |
|---|---|
| 变更日期 | 2025-01-26 |
| 变更时间 | 15:00:00 |
| 变更人员 | Cursor AI |
| 变更类型 | 错误修复 |
| 影响模块 | 招生就业-招聘管理 |
| 变更状态 | ✅ 已完成 |
🎯 问题描述
在“新增招聘岗位”时,后端服务抛出SQL异常,错误信息如下:
java.sql.SQLSyntaxErrorException: Unknown column 'create_dept' in 'field list'
🔍 根因分析
该错误与之前企业管理模块遇到的问题完全相同。
- 后端实体继承:
ZsjyJobPosition和ZsjyRecruitmentPoster实体类继承了TenantEntity(其父类为BaseEntity),因此在执行插入操作时,MyBatis-Plus会自动填充create_dept字段。 - 数据库表缺失字段:
zsjy_job_position和zsjy_recruitment_poster数据库表中均缺少create_dept字段,导致SQL执行失败。
🔧 修复方案
通过执行SQL ALTER TABLE 语句,为相关的两个表添加缺失的 create_dept 字段。
生成的SQL脚本
- 文件路径:
script/fix-zsjy-tables-missing-fields.sql - 包含内容:
- 为
zsjy_job_position表添加create_dept字段 - 为
zsjy_recruitment_poster表添加create_dept字段 - 包含检查和回滚语句
- 为
-- 1. 为 `zsjy_job_position` 表添加 `create_dept` 字段
ALTER TABLE `zsjy_job_position` ADD COLUMN `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门';
-- 2. 为 `zsjy_recruitment_poster` 表添加 `create_dept` 字段
ALTER TABLE `zsjy_recruitment_poster` ADD COLUMN `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门';
📊 字段一致性检查
为确保问题彻底解决,已对前端、后端、数据库三个层面的字段进行一致性检查。
zsjy_job_position 表
| 层面 | 实体/接口 | create_dept 字段状态 |
|---|---|---|
| 数据库 | zsjy_job_position |
🔴 缺失 (待修复) |
| 后端 (Entity) | ZsjyJobPosition |
✅ 存在 (继承自BaseEntity) |
| 后端 (VO) | ZsjyJobPositionVo |
✅ 存在 (继承自BaseEntity) |
| 前端 (VO) | JobPositionVO |
✅ 存在 (createDept) |
| 前端 (Form) | JobPositionForm |
✅ 不存在 (符合预期) |
zsjy_recruitment_poster 表
| 层面 | 实体/接口 | create_dept 字段状态 |
|---|---|---|
| 数据库 | zsjy_recruitment_poster |
🔴 缺失 (待修复) |
| 后端 (Entity) | ZsjyRecruitmentPoster |
✅ 存在 (继承自BaseEntity) |
| 后端 (VO) | ZsjyRecruitmentPosterVo |
✅ 存在 (继承自BaseEntity) |
| 前端 (VO) | RecruitmentPosterVO |
✅ 存在 (createDept) |
| 前端 (Form) | RecruitmentPosterForm |
✅ 不存在 (符合预期) |
结论:两张表的问题根源一致,都是数据库层面缺少标准基础字段。本次修复将彻底解决此问题。
🚀 执行步骤
-
执行SQL脚本:
# 请替换为您的数据库连接信息 mysql -h {host} -P {port} -u {user} -p{password} {database} < script/fix-zsjy-tables-missing-fields.sql -
重启后端服务:为确保数据库变更生效,建议重启后端服务。
-
验证修复效果:
- 登录前端系统
- 进入“招聘岗位”管理页面
- 尝试“新增”一个招聘岗位
- 确认操作成功,无报错
📋 执行结果
SQL脚本执行成功 ✅
执行时间: 2025-01-26 15:10:00
执行环境: 研发环境 (47.99.164.66:3306/hzdyjs_xg)
执行状态: 成功,无错误
字段添加验证
zsjy_job_position 表
- ✅
create_dept字段已成功添加 - ✅ 字段类型:
bigint(20),允许为空 - ✅ 表结构完整,包含19个字段
zsjy_recruitment_poster 表
- ✅
create_dept字段已成功添加 - ✅ 字段类型:
bigint(20),允许为空 - ✅ 表结构完整,包含11个字段
验证步骤
现在可以进行功能验证:
- 测试"新增招聘岗位"功能 - 应该不再报错
- 测试"新增招聘海报"功能 - 应该正常工作
📝 经验总结
- 建表规范:所有业务表都必须严格遵循数据库设计规范,包含
BaseEntity中定义的所有基础字段(如create_dept,create_by,create_time等)。 - 问题排查:遇到
Unknown column错误时,应首先检查数据库表结构与后端实体类的字段是否一致。 - 一致性:保持数据库、后端实体、VO、前端类型定义的高度一致性是避免此类问题的关键。