ここのドキュメントを読みました
「バッチが true に設定されている場合、受信メッセージ本文の解釈がわずかに変更されます。コンポーネントは、パラメーターのイテレーターではなく、パラメーター イテレーターを含むイテレーターを期待します。外側のイテレーターのサイズによってバッチ サイズが決まります。」
「Camel 2.16 以降では、メッセージ本文を SQL ステートメントとして使用できるようにするオプション useMessageBodyForSql を使用できます。その後、SQL パラメーターは、キー SqlConstants.SQL_PARAMETERS を含むヘッダーで提供する必要があります。これにより、SQL コンポーネントがより動的に動作できるようになります。 SQLクエリはメッセージ本文からのものです。」
私は次のルートを持っています:
from("direct:processLine")
.setHeader(SqlConstants.SQL_PARAMETERS, simple("${body}"))
.setBody(constant("INSERT INTO SOME_TABLE "
" (Param1, Param2) " +
" values " +
" (:?Param1,:?Param2)"))
.to("sql://query?useMessageBodyForSql=true&batch=true&dataSource=dataSource");
本体は、パラメーター リストに一致するキー/値のマップです。
これは機能しますが、期待どおりではありません。
予想されるバッチ挿入ではなく、各行が 1 つずつ挿入されます。このオプションの組み合わせは可能ですか?
不可能な場合、これを達成するための代替方法は何ですか?