Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-29-wuzilong.md
T
2025-07-29 16:37:42 +08:00

1.5 KiB

代码调整记录 - 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

修改前:

@NotBlank(message = "职务编码id,关联xg_class_pos_dict.id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long positionId;

修改后:

@NotNull(message = "职务编码id,关联xg_class_pos_dict.id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long positionId;

修复结果

  • ✅ 修复了验证注解类型不匹配的问题
  • ✅ 新增班级干部信息功能可以正常工作
  • ✅ 保持了字段的必填验证功能

技术要点

  • @NotBlank: 用于字符串类型,验证字符串不为空且不只包含空白字符
  • @NotNull: 用于任何类型,验证字段不为null
  • 对于 Long 类型的必填字段,应该使用 @NotNull 而不是 @NotBlank