java - Spring @Valid 和 @Validated 不能一起工作
问题描述
我将 @Validated 和 @Valid 一起用于 DTO 验证。但问题在于组级别验证工作或属性级别 1 工作。两者不能一起工作。
我可以知道我的代码有什么问题吗?
public class Employee {
//I want to validate status. It should be either 0 or 1
(Active/Inactive).
//Also it should not be null both for existing and new record.
@NotNull(groups = { New.class, Old.class })
@JsonProperty("emp")
@Min(0)
@Max(1)
private Integer empStatus;
...
public interface Old {
}
public interface New {
}
}
控制器类
public ResponseEntity<Object> updateEmployee(
@Valid @Validated(Employee.Old.class) @RequestBody Employee empDTO) throws Exception {
...
}
当我只保留@Validated 注释时,@NotNull 检查工作正常但最小值、最大值检查失败当我只保留@Valid 最小值时,最大值检查工作正常但@NotNull 不起作用
当我只保留最小值时,最大值检查有效,但 @NotNull 不起作用。
如何修复代码以使所有验证正常工作?
解决方案
推荐阅读
- git - 合并冲突解决
- r - Good K/M/G abbreviation of y scale labels in ggplot2
- javascript - 重新打开页面后未执行Javascript onclick
- xml - Replacing multiple strings with data solely from a CSV file
- javascript - Angular Material datepicker自定义日期(开始和结束日期)验证问题
- xamarin - I can't implement DisplayPrompt in my sample project
- reactjs - Reactjs为什么删除笔记(数组中的项目)会导致所有内容移动位置
- material-design - WebStorm 2019.3 中的 Bundled Material 主题在当前版本中无效
- html - 如何将 Mat Tooltip 位置调整到屏幕中心?
- jwt - 将属性从 ADFS 同步到 Azure AD 自定义应用程序