# 代码调整记录 - 2025-07-29 ## 2025-07-29 16:30:00 - 修复XgClassPosMsgBo中positionId字段验证注解错误 ### 问题描述 在新增班级干部信息时,出现验证异常: ``` jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.NotBlank' validating type 'java.lang.Long'. Check configuration for 'positionId' ``` ### 问题原因 在 `XgClassPosMsgBo` 类中,`positionId` 字段(类型为 `Long`)错误地使用了 `@NotBlank` 注解。`@NotBlank` 注解只能用于字符串类型,对于 `Long` 类型应该使用 `@NotNull` 注解。 ### 修复内容 **文件**: `backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgClassPosMsgBo.java` **修改前**: ```java @NotBlank(message = "职务编码id,关联xg_class_pos_dict.id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long positionId; ``` **修改后**: ```java @NotNull(message = "职务编码id,关联xg_class_pos_dict.id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long positionId; ``` ### 修复结果 - ✅ 修复了验证注解类型不匹配的问题 - ✅ 新增班级干部信息功能可以正常工作 - ✅ 保持了字段的必填验证功能 ### 技术要点 - `@NotBlank`: 用于字符串类型,验证字符串不为空且不只包含空白字符 - `@NotNull`: 用于任何类型,验证字段不为null - 对于 `Long` 类型的必填字段,应该使用 `@NotNull` 而不是 `@NotBlank`