以下是我的DTO类(class)。
public class AbstractDTO extends BaseDTO {
private Integer createdBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DATE_FORMAT)
@NotNull(message = "createdDate may not be null")
private LocalDateTime createdDate;
private Integer lastModifiedBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DATE_FORMAT)
private LocalDateTime lastModifiedDate;
private Boolean isActive;
// getter & setters
}
在这里,我试图将createdDate字段注释为@NotNull,但它不起作用。它允许在请求正文中以及在 postman 中执行服务后没有任何错误。
我尝试了以下选项,但没有运气。
1)尝试添加Maven依赖项。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2)尝试将DTO类注释为@Validated
3)试图用@NotNull注释createdDate字段@Valid,但还是不走运。
请帮我解决这个问题。
最佳答案
您有一个带有某些请求正文的端点;例如:
@RestController
public class TheController {
@PostMapping(path = "/doSomething", consumes = "application/json", produces = "application/json")
public void post(@Valid @RequestBody AbstractDTO request) {
//code
}
}
您需要为请求对象添加
@Valid
批注。只有这样,您才可以为AbstractDTO
端点启用/doSomething
的验证。检查here,以获取更多详细信息
关于java - @NotNull批注在Spring Boot应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58182553/