约束验证器旧值

Constraint validator old value

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

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,有没有办法找出验证字段的旧值?

不知道 Spring 引导,但我可以肯定地说,您将无法在 Hibernate Validator 边界内执行此操作。

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