Hibernate Validator - 根据生命周期进行可选验证

时间:2014-12-04 06:19:08

标签: java validation hibernate-validator

刚开始使用Hibernate Validator。我有一个案例,保存时自动生成bean的id。我会在保存前验证bean。此时id可以为null。但是,当我想要更新它时,id必须是空的。

因此字段上的泛型@NotNull将不起作用,因为当我去保存它时,它将无法验证。

有很多方法可以解决这个问题,但我想知道spec或hibernate实现是否有标准的方法来实现这一点。我希望在保存时没有任何验证错误,也不会在更新时验证。

比如应用约束,但除非隐式命名或类似的东西,否则忽略它。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用groups实现这一目标。

public class MyBean {
    @NotNull(groups = UpdateBean.class)
    private Long id;
}

在没有id的情况下验证:

validator.validate(myBean);

使用id验证

validator.validate(myBean, UpdateBean.class);