(私はTeradatav12全体でMyBatisv3、Java SE v6、Tomcat v6、Spring v3を使用しています。)
現在のプロジェクトの技術要件の1つは、Teradataのクエリバンディング機能を使用することです。これは、必要に応じて次のようなステートメントを実行することで実行されます。
SET QUERY_BAND='someKey=someValue;' FOR TRANSACTION;
すべての通話にクエリバンドが必要です。<select>
ただし、次のようにマッパーファイルの各ステートメントに追加せずに、この機能をクリーンで再利用可能な方法で追加する方法がわかりません。
<sql id="queryBand">
SET QUERY_BAND='k=v;' FOR TRANSACTION;
</sql>
<select ...>
<include refid="queryBand"/>
... some SQL performing a SELECT
</select>
<select>
上記に関する私の問題は次のとおりです。1)クエリバンドの形式は、 (など)ごとにカスタマイズしたいkとvを除いて、すべてのマッパーXMLファイルで同じです。k値とv値を渡さずにこのカスタマイズを行う方法がわかりません。これにより、マッパーインターフェイスが混乱します。2)上記のコードに重複があり、不安になります。開発者は、queryBand SQLを含めることを忘れないでください。これは、ある段階で誰かが忘れてしまいます(マーフィーの法則)。
誰かが私をよりクリーンな方法でクエリバンディングを実装するための解決策の方向に向けることができますか?