我有一个带有 JSR-303 注释的 POJO。它的一些属性是其他 POJO。我希望内部 POJO 为 @Valid,前提是它们不为空。但如果它们为空,那也没关系。不幸的是,我没有成功执行此操作,因此如果内部 POJO 属性为空,Java 会返回错误。
@AllArgsConstructor @NoArgsConstructor @Data
class OuterPojo{
@NotBlank private String attributeA;
@Valid private InnerPojo attributeB;
}
@AllArgsConstructor @NoArgsConstructor @Data
class InnerPojo{
@NotBlank private String attributeC;
@NotNull private Double attributeD;
}
在以下情况下,我希望 outerPojo 有效:
- 属性A 不为空且属性B 为空;
- attributeB 不为空且attributeB 不为空且有效。
因此,我希望仅当内部 pojo 不为空时才尊重对内部 pojo 属性的约束。
我试过将@Nullable 添加到attributeB 没有效果。我该如何解决这个问题?