1

ここのドキュメントを読みました

「バッチが 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 つずつ挿入されます。このオプションの組み合わせは可能ですか?

不可能な場合、これを達成するための代替方法は何ですか?

4

1 に答える 1