我想使用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
你对这个问题有什么想法?
答案 0 :(得分:1)
使用提供的Bean Validation约束无法建议用例。真的Bean验证更多的是描述静态约束。
然而,可以想象,编写自定义约束 @MaxCreditExceeded 。编写自定义约束很容易,问题是如何获得用户的当前信用额度。一种方法可能是使用ThreadLocal。但这要求信用额度得到适当设置并清除到此变量中。