gpt4 book ai didi

spring-mvc - Hibernate 验证器@NotEmpty 不工作 spring boot 和 jackson

转载 作者:行者123 更新时间:2023-12-02 21:01:10 27 4
gpt4 key购买 nike

我有以下类,其中包含带有 @NotEmpty 注释的 errorRequests。

public class ErrorsRequests implements Serializable {


private static final long serialVersionUID = -727308651190295062L;

private String applicationName;

@NotEmpty
@Valid
@JsonProperty("errors")
private List<ErrorsRequest> errorRequests;

我的 Controller 如下所示:

 @Autowired
@Qualifier("errorStreamValidator")
private Validator errorStreamValidator;

@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Void> errorReporting(@NotNull @PathVariable String applicationName,
@Valid @NotNull @RequestBody ErrorsRequests errorsRequests, BindingResult results) {

我的类路径中有所需的休眠验证器类。

当我输入以下 JSON 时:

{
"errorss": [
]
}

@NotEmpty 验证根本没有启动。 Hibernate 验证仅在 json 中包含错误元素时才有效,如下所示

 {
"errors": [
]
}

我可以让第一种情况也有效吗?

最佳答案

您以错误的方式使用了注释,您的 Controller 也缺少注释。

您应该使用@Validated 注释您的 Controller :

@Validated
@RestController
@RequestMapping("/mycontroller")
public class MyController { ... }

在您的模型类中,您需要像这样放置注释:

@NotEmpty
private List<@Valid Foo> foo;

@Valid 注释将检查列表中的项目是否也有效。

关于spring-mvc - Hibernate 验证器@NotEmpty 不工作 spring boot 和 jackson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com