当前位置: 首页 > 知识库问答 >
问题:

Spring Boot中的级联验证问题(Rest)

寇靖
2023-03-14

Rest方式:

@NewSpan("NewSpan")
@RequestMapping(method = RequestMethod.POST)
public ResponceEntity someRest(@Valid @RequestBody RestBody) {}

Rest身体结构:

@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;
}

在RestBody中验证字段,但在ChildElement中忽略它。(如“name”为null时的示例)。

如何配置Spring或类来验证子元素?

P、 如果我尝试手动使用ValidatorImpl验证它,它会检查和RestBody,以及ChildElement
P.P.S.Spring防尘套-2.1.6

共有2个答案

姬俊驰
2023-03-14

你必须包括

spring-boot-starter-validation

作为进行此运行的依赖项。

高胜
2023-03-14

尝试使用NotBlank而不是NotNull,因为您的客户端应用程序可能正在发送非null值,尤其是当您的代码和验证注释看起来正常时。

 类似资料:
  • 我是一个新手,我正在使用java bean验证。 我有一个java bean类,如下所示,带有null和size约束。 我的主要课程如下 当我传递长度小于4的名称时,这将引发错误。但是对于我传递的所有值,这个类都成功地执行了。让我知道我错过了什么。 提前谢谢。

  • 我们在根模式中定义了一些抽象元素,例如: ...然后扩展如下: 这些元素在我们的xml文件中使用: 然而,当我尝试使用Saxon命令行验证xml时,我得到以下错误消息: 这里有一个指向实际示例文件的链接,供参考:xml/root模式-ext模式 任何帮助将不胜感激:)

  • 我有一个简单的springboot应用程序和一个Rest api。我想验证请求参数不为null/空。我将json转换成一个java对象,并从这里开始验证它们是否包含所有必需的字段,并且不为null或不为空。(对象没有保存到db)我目前正在使用javax验证方法,但是没有成功。 我还有一个包含的要素类,我需要验证(所有字段均为必填字段,而不是空或空)

  • 问题内容: 我有一个希望很简单的MySQL查询问题,在深夜使我难以理解。我正在尝试执行SELECT,该SELECT计算一组数据(订单)的实例数量,并通过在订单本身上方几层的父级中存在的值对这些实例进行分组。 例如: 我正在寻找的是以下附近的东西: SELECT count(orders.id),categoryId来自订单,类别(1,2,3)中的WHERE order.customer_id,GR

  • 问题内容: 嗨,我正在使用Eclipse Rcp,我需要验证仅接受我使用代码的整数值的文本框 它可以验证,但是与此有关的问题是我无法使用Backspace键删除数字。还请告诉我验证小数的想法。提前致谢 问题答案: 使用侦听器时,您可以清空文本字段,而不是使其不可编辑。您可以执行以下操作,该代码段基于您的代码。 如果您使用,则更好。我不确定您是否在SWT中拥有它,即使您不尝试寻找类似的东西。

  • 我无法使用我拥有的多个数据库表: Input:User(表格用户)Input field:Email(表格用户)Input:Bookingnumber(表格Bookingnumber) 仅使用“用户”表单的输入字段有效,从其他表添加预订号会引发此错误: 问题类似于如何使用Spring和hiberNate将值插入多个表 spring错误中验证器的无效目标? 我只有两种形式,一种输出,只显示db数据,