我试图对我的模型类应用验证,但它不起作用,它只是忽略并注册值在数据库中,即使它为null或空。
我用的是Lombok山
我的用户模型:
私有静态final long serialversionuid=1l;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@NotNull
@NotBlank
private String nome;
@NotNull
@NotBlank
private BigDecimal incomeMonthly;
@Convert(converter = RiskEnumConverter.class)
private RiskEnum risk;
@OneToOne(cascade = CascadeType.ALL)
private Address address;
我的地址模式:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
@NotBlank
private Integer number;
@NotNull
@NotBlank
private String neighborhood;
@NotNull
@NotBlank
private String postalCode;
@NotNull
@NotBlank
private String state;
@NotNull
@NotBlank
private String city;
我的控制器:
@PostMapping
public ResponseEntity<User> save(@Valid @RequestBody User user, HttpServletResponse response) {
User saveUser = this.userService.save(cliente);
publisher.publishEvent(new ResourceCreatedEvent(this, response, saveUser.getId()));
return ResponseEntity.status(HttpStatus.CREATED).body(saveUser);
}
pom相关性:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
2条答案
按热度按时间hsvhsicv1#
从上面的代码来看,您似乎缺少一个异常处理程序来捕获验证失败。处理程序允许您指定如何在应用程序中处理验证失败。这篇来自baeldung网站的文章展示了如何设置异常处理程序。
在我的项目中,我通常会设置一个错误处理类,其中包含每种错误的方法,例如。
正如在评论中提到的,您将需要一个验证实现来完成这项工作。baeldung的文章中提到了以下mvn依赖关系:
7y4bm7vi2#
hibernate验证器是验证api的参考实现。
所以,您需要将其添加到pom.xml中
你可以根据需要使用这个版本。
如果你想探索一下,看看这个参考资料。