条件の処理

run、delete、および update の各メソッドの引数としてカスタムラッパーに渡される条件は (「 AbstractCustomWrapper の拡張 」および「 AbstractCustomWrapper のオーバーライド 」を参照)、 CustomWrapperConditionHolder のインスタンスにカプセル化されて渡されます。このクラスのオブジェクトに格納されてカスタムラッパーに渡される条件には、次の 2 つのバージョンがあります。

  • getConditionMap メソッドを呼び出すことで使用できる簡素化されたバージョン。このバージョンは、 CustomWrapperFieldExpressionsObjects 間のアソシエーションで構成されます。たとえば、 { FIELD1 - 100; FIELD2 - 'foo' } のような条件マップの場合、カスタムラッパーに渡す条件は FIELD1 = 100 AND FIELD2 = 'foo' になります。条件をマップとして使用するためには、その条件がパターン FIELD_1 = value [AND FIELD_N = value]* に一致している必要があります。一致していない場合、 getConditionMap メソッドは null を返します。 getConditionMap(boolean force) メソッドを呼び出し、force の値として true を渡すことによって、マップへの変換を強制することができます。ただし、この場合、返されるマップは元の条件と等価でない場合があることに注意してください。

  • CustomWrapperCondition のインスタンス。このバージョンは、 getComplexCondition メソッドを呼び出すことによって使用できます。

CustomWrapperCondition は、カスタムラッパーがサポート可能な、以下のすべての条件タイプのスーパークラスです。

  • CustomWrapperSimpleCondition: 単純条件を表します。左辺式 (CustomWrapperExpression オブジェクト)、演算子、および右辺式 (CustomWrapperExpression オブジェクトの配列) を保持します。右辺式は配列に格納され、通常は式を 1 つのみ含みます。

  • CustomWrapperAndCondition: AND 演算子で結合された一連の条件を表します。 CustomWrapperCondition オブジェクトのリストを保持します。

  • CustomWrapperOrCondition: OR 演算子で結合された一連の条件を表します。 CustomWrapperCondition オブジェクトのリストを保持します。

  • CustomWrapperNotCondition: 否定条件を表します。 CustomWrapperCondition を保持します。

CustomWrapperExpression は、カスタムラッパーがサポートする、以下のすべての式タイプのスーパークラスです。

  • CustomWrapperFieldExpression: 条件の左辺で最も一般的なタイプの式です。詳細については、「 AbstractCustomWrapper のオーバーライド 」を参照してください。

  • CustomWrapperSimpleExpression: この種の式は、型 (java.sql.Types に定義されている型の 1 つ) と値を持ちます。

  • CustomWrapperFunctionExpression: パラメーター付きの関数を表します。このタイプの式は、名前、オプションの修飾子 (ALL または DISTINCT)、パラメーター (CustomWrapperFunctionParameter のインスタンス) のリスト、および集計関数であるかどうかのプロパティを持ちます。各 CustomWrapperFunctionParameterCustomWrapperExpressions のリストを含みます。

  • CustomWrapperConditionExpression: CASE 関数の条件パラメーターを表します。 CustomWrapperCondition を含みます。

  • CustomWrapperArrayExpression: すべて同じ種類の CustomWrapperExpressions のリストを含みます。

  • CustomWrapperRegisterExpression: 任意の種類の CustomWrapperExpressions のリストを含みます。