kar*_*nna 4 java spring-data spring-data-jpa spring-boot
我正在使用请求负载中的对象数组调用 API,我在 @RequestBody 中添加了 @valid 注释,以检查负载中是否发送了任何 null 属性。我希望如果我发送的任何空数据都会引发错误。但我的代码没有抛出错误
下面是我的实体类
@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;
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器类
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
验证依赖性
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我的请求负载
[{
"name":"kiran",
"gender":"male"
},
{
"name":"divya"
}
]
Run Code Online (Sandbox Code Playgroud)
当我发送上述有效负载时,我预计需要抛出一个错误,因为我没有发送不为空的性别,但 spring 不会抛出任何错误。
我是否错过了@valid 工作的一些东西?
小智 7
如果您使用 Spring boot 2.3.3.RELEASE。然后在POM中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
使用示例:
//update audTipo
@PutMapping("audTipo/{id}")
public ResponseEntity<AudTipo> update(@PathVariable(value="id") Integer audTipoId,
@Valid @RequestBody AudTipo audTipoDetils) throws ResourceNotFundException
{
AudTipo audTipo = audTipoRepository.findById(audTipoId).orElseThrow(()-> new
ResourceNotFundException("NF " + audTipoId));
audTipo.setXdesc(audTipoDetils.getXdesc());
return ResponseEntity.ok(this.audTipoRepository.save(audTipo));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19348 次 |
| 最近记录: |