【问题标题】:Is there a way to conditionally skip validating bean fields?有没有办法有条件地跳过验证 bean 字段?
【发布时间】:2014-04-16 15:33:16
【问题描述】:

我们有一个客户和地址域类的情况,例如:

客户:

@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.homeAddress 字段都为空,则应该没问题,并且不会导致验证错误。

我知道将 homeAddress 设为 null 以跳过验证会更好。 但是我们使用的是旧的域模型,但情况并非如此(我们无法更改它)。无论如何,我们正在尝试合并 java.validation 注释。

我想知道我们是否可以在类级别应用(自定义)注释,这可以强制验证 api 跳过该 bean?

【问题讨论】:

    标签: java bean-validation hibernate-validator


    【解决方案1】:

    我认为在类级别应用自定义注释是进行此验证的好方法。 您可以查看Hibernate-Validator 了解如何执行此操作。

    希望对你有帮助 最好的问候。

    【讨论】:

      猜你喜欢
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      相关资源
      最近更新 更多