BeanValidation用于运行时派生的约束值

时间:2013-05-16 10:18:47

标签: bean-validation

我想使用jsr303代替当前的自定义验证框架,因为自定义框架尚不支持某些功能,我正在调查jsr是否支持某个用例。

假设我在某些前端向客户提供了贷款要约字段,并且该字段预先填充了系统根据用户的信用评分生成的贷款金额,并且客户能够采取整体数量或低于提供的价值(因此不超过提供的数量)。

字段:

@DecimalMin("1000.00")
@DecimalMax(onlyKnowAtRuntime)
private BigDecimal loanOffer;

offer = $20 000.00
customer inputs = $50 000.00

由于信用评分是运行时生成的,我们不知道编译时max(@DecimalMax在这种情况下是$20 000.00)的值是多少,但我们需要确保验证客户是否接管$20 000.00

你对这个问题有什么想法?

1 个答案:

答案 0 :(得分:1)

使用提供的Bean Validation约束无法建议用例。真的Bean验证更多的是描述静态约束。

然而,可以想象,编写自定义约束 @MaxCreditExceeded 。编写自定义约束很容易,问题是如何获得用户的当前信用额度。一种方法可能是使用ThreadLocal。但这要求信用额度得到适当设置并清除到此变量中。