2

カスタム フレームワークではまだサポートされていない機能があるため、現在のカスタム検証フレームワークの代わりに jsr303 を使用したいと考えており、jsr が特定のユースケースをサポートしているかどうかを調査しています。

一部のフロントエンドで顧客に提示されたローンオファーフィールドがあり、フィールドにはユーザーのクレジットスコアに基づいてシステムによって生成されたローン金額が事前に入力されており、顧客は全額またはそれ以下を受け取ることができるとします。提供された価値よりも(したがって、提供されたものよりも多くはありません)。

分野:

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

offer = $20 000.00
customer inputs = $50 000.00

クレジット スコアは実行時に生成されるため、最大値 (@DecimalMaxこの場合は$20 000.00) がコンパイル時にどうなるかはわかりませんが、顧客が乗っ取っていないことを確認する必要があります。$20 000.00

このような問題について、どのようなアイデアがありますか?

4

1 に答える 1

1

提案されたユースケースは、提供された Bean Validation 制約では不可能です。本当に Bean Validation は、静的制約の記述に関するものです。

ただし、カスタム制約@MaxCreditExceededを作成することは想像できます。カスタム制約を作成するのは簡単です。問題は、ユーザーの現在の与信限度額を取得する方法です。1 つの方法は、ThreadLocal を使用することです。ただし、そのためには、与信限度額が適切に設定され、この変数にクリアされる必要があります。

于 2013-05-17T07:38:37.220 に答える