You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot保存List<String>时报No validator could be found错误如何解决

错误原因

  • @NotBlank注解的适用范围仅为CharSequence类型(如String),作用是校验字符串不能为null、不能是空串、不能全为空白字符。你将该注解标注在List<String>类型的字段上,Bean Validation规范未提供对应集合类型的@NotBlank校验器,因此在校验参数阶段直接抛出找不到对应校验器的错误,该报错和你后续修改的保存逻辑无关,还没走到业务保存层校验就已经失败。

解决方案

根据你的校验需求选择对应方案即可:

  1. 仅需校验services集合不能为null、且不能是空集合
    将实体类字段上的@NotBlank替换为@NotEmpty(Spring Boot 2.x用javax.validation.constraints.NotEmpty,3.x及以上替换为jakarta.validation.constraints.NotEmpty),修改后代码如下:
@Column(name="services")
@ElementCollection
@NotEmpty
private List<String> services = new ArrayList<>();
  1. 需同时校验集合非空、且集合内每个字符串元素都不能为空白
    搭配泛型校验实现,代码如下:
@Column(name="services")
@ElementCollection
@NotEmpty
private List<@NotBlank String> services = new ArrayList<>();

修改完成后无需调整现有保存逻辑,重新启动项目即可正常请求。

内容的提问来源于stack exchange,提问作者newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:54:03