我正在调用一个API,请求负载中包含对象数组,我已经添加了@valid注解以及@RequestBody来检查我的负载中是否发送了任何空属性。我期望如果我发送了任何空数据,它应该抛出一个错误。但是我的代码没有抛出错误。
以下是我的实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@DynamicUpdate
@Entity
@Table(name = "student")
public class Student {
@Id
@Column(name = "student_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer studentId;
@NotNull
@Column(name = "name")
private String name;
@NotNull
@Column(name = "gender")
private String gender;
}
这是我的控制器类
@RestController
@CrossOrigin
public class StudentController {
@PostMapping("/class/{classId}/student")
public Student addStudent(@PathVariable Integer classId,@Valid @RequestBody List<Student>
student) {
// My logic Comes Here
return Student;
}
}
验证的依赖关系
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
我的请求负载
[{
"name":"kiran",
"gender":"male"
},
{
"name":"divya"
}
]
当我发送上述有效载荷时,我希望会抛出一个错误,因为我没有发送 gender (性别),而它是非空的。但是 Spring 没有抛出任何错误。
我是否漏掉了某些 @valid 才能正常工作?