【发布时间】:2019-11-20 08:35:03
【问题描述】:
休息法:
@NewSpan("NewSpan")
@RequestMapping(method = RequestMethod.POST)
public ResponceEntity someRest(@Valid @RequestBody RestBody) {}
休息身体结构:
@Data
@Entity
@Table(name = "some_table")
public class RestBody implements Serializable {
@Id
@NotNull(message = "Errr txt")
String id;
@Enumerated(EnumType.STRING)
SomeStatus status;
@NotNull(message = "Errr txt")
@Valid
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
List<ChildElement> childElements;
}
@Data
@Entity
@Table(name = "some_table")
public class ChildElement implements Serializable {
@NotNull(message = "Errr txt")
String name;
@NotNull(message = "Errr txt")
@Convert(converter = JsonNodeConverter.class)
@Column(name = "content_schema", columnDefinition = "TEXT")
JsonNode extContent;
}
Spring 验证 RestBody 中的字段,但忽略 ChildElement 中的字段。 (例如“name”为空时的示例)。
如何配置 Spring 或类来验证子元素?
附:如果我尝试手动使用ValidatorImpl 验证它,它会检查RestBody 和ChildElement。
附言Spring Boot - 2.1.6
【问题讨论】:
-
空名或
null名是不同的情况。 -
是否包含 spring-boot-starter-validation 依赖项
-
@M.Deinum 我的意思是 null(修复有问题的信息)。
-
@Simon Martinelli 不,我没有。我稍后会尝试。
-
@RiĥardBrugekĥaim 检查 NotNull 的导入。应该是 javax.validation.constraints.NotNull
标签: java spring spring-boot