我们有一个客户和地址域类,如:
客户:
@NotNull
private Long id;
@NotBlank
@Length(max = 100)
private String name;
@NotNull
@Valid
private Address homeAddress;
@Valid
private Address deliveryAddress;
地址:
@NotBlank
@Length(max = 100)
private String streetname;
@NotBlank
@Length(max = 10)
private String housenumber;
@Length(max = 10)
private String housenumberExtension;
@NotBlank
@Pattern(regexp = "[0-9]{4}[A-Z]{2}")
private String postcode;
@NotBlank
@Length(max = 100)
private String city;
它使用@Valid注释来验证整个Customer图,包括子Address字段。
在这种情况下,我们只想验证地址字段,以防它有非空字段。因此,例如,如果所有customer.homeAddress字段都为null,那么它应该是正常的,不应该导致验证错误。
我知道最好将homeAddress设置为null以跳过验证。但我们使用的是一个旧的领域模型,而事实并非如此(我们无法更改它)。无论如何,我们正在尝试合并java.validation注释。
我想知道我们是否可以在类级别应用一个(自定义)注释,它可以强制验证api跳过那个bean?
我认为在类级别应用自定义注释是进行验证的好方法。您可以查看Hibernate Validator来了解如何做到这一点。
我希望它能帮助你,顺致敬意,