约束验证器旧值

时间:2018-04-27 09:36:06

标签: spring-boot hibernate-validator

我在spring boot应用程序中使用了hibernate验证器。 我想创建一个注释,它将验证字段的可更新性。像@Updatable(WHILE_NEW)之类的东西。 我根据hibernate文档创建了自定义hibernate验证器。

public class UpdatableConstraintValidator implements ConstraintValidator<UpdatableConstraint, Object> {
    Updatable updatableMode;

    @Override
    public void initialize(UpdatableConstraint updatableConstraint) {
        this.updatableMode = updatableConstraint.value();
    }

    @Override
    public boolean isValid(Object field, ConstraintValidatorContext cxt) {
        ...some logic...
        return result;
    }

}

我的问题是,如果有办法找出正在验证的操作是CREATE还是UPDATE? 如果它是UPDATE,有没有办法找出验证字段的旧值?

1 个答案:

答案 0 :(得分:1)

不了解Spring Boot,但我可以肯定地说,你无法在Hibernate Validator边界内做到这一点。

Hibernate Validator只看到bean的当前状态,并且完全不知道它的生命周期。