java - 带有继承的 Spring 验证
问题描述
我正在尝试验证一个有点分层的 DTO(formModel,无论您喜欢什么术语)(继承和依赖于其他类)。
是否可以使以下模型配置起作用:
public abstract class A {
@NotNull
private String fieldA1;
@NotNull
@Size(min = 2, max = 30)
private String fieldA2;
// ... and so on
}
public class B extends A {
@NotNull
private String fieldB1;
@NotNull
private Xyz fieldB2;
// and so on
}
public class Xyz {
@NotNull
private String fieldXyz1;
// etc..
}
弹簧休息控制器:
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity addCustomer(@RequestBody @Valid B customerDto, BindingResult bindingResult) {
// controller logic here
}
问题是:只有看起来“有效”的约束注释是父类 A 上的那些。我提交了一个在类 A 中包含错误字段的请求,bindingResult.hasErrors()
返回 true。如果我在 B 类或 Xyz 类中提交包含错误字段的请求,bindingResult.hasErrors()
则为 false,并且控制器继续表现得好像请求正常。任何想法为什么?
解决方案
推荐阅读
- excel - 单击超链接后复制单元格的文本
- pandas - Keras 分类器错误“ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型浮点数)。”
- r - 使用R中另一个数据框中的单词列表替换数据框中的单词
- python - 为什么我的列表理解只能抓取 0?
- python - 使用 python 脚本添加 Chrome Webdriver,同时将其转换为 exe
- entity-framework - 实体框架关联类可能吗?
- python-3.x - Opencv - 从精明的边缘低分辨率图像进行形状检测
- python - xarray:处理来自ufunc的不同维度的多个返回值
- uicollectionview - UICollectionViewCompositionalLayout 组宽度小于部分宽度和分页
- python - 说完话后如何为人添加角色