gpt4 book ai didi

java - 使用类似于 @Size 的参数进行自定义 JPA Bean 验证

转载 作者:行者123 更新时间:2023-12-02 02:57:24 26 4
gpt4 key购买 nike

我希望为类似于 @Size 注释的注释实现 JPA Bean validator ,因此允许使用参数 minmax注释。我一直在查看文档和各种示例,但找不到允许注释上使用多个参数的实现。

目前我的代码如下

@Target({ FIELD, METHOD, PARAMETER, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = CapacityImpl.class)
public @interface Capacity {

String message() default "Capacity not in valid Range";

// Required by validation runtime
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };

}

最终的注释应如下所示 @Capacity(min=19, max=40)

public class CapacityImpl implements ConstraintValidator<Capacity, Integer> {
@Override
public void initialize(Capacity capacity) {

}

@Override
public boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {
return false;
}
}

所以我的问题是如何更改此接口(interface)和类以实际允许注释上的参数 min 和 max,以便我可以使用这些参数值验证字段的值

最佳答案

只需将它们添加到您的注释定义中即可:

public @interface Capacity {

String message() default "Capacity not in valid Range";

// Required by validation runtime
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };

int min();
int max();
}

关于java - 使用类似于 @Size 的参数进行自定义 JPA Bean 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com