Использование верблюжьего SQL-компонента с List для пакетной работы - PullRequest
0 голосов
/ 11 июля 2019

Я не могу использовать sql-хранимый компонент со списком для пакетной работы. Мой код прекрасно работает для SQL-запросов, но я хочу заменить SQL-вставку на вызов хранимой процедуры. Если я обрабатываю запись за записью, то запускается sql-сохраненная процедура. Я хочу сделать пакетную операцию с хранимой процедурой весной DSL. Это можно сделать в Java с помощью оператора Callable, но интересно, есть ли лучший способ сделать этот компонент, особенно хранимый в sql, так как он имеет доступную операцию "batch = true".

Я пробовал пакетную операцию с использованием sql запросов с компонентом camel-sql в split с агрегатором. Работает отлично. Теперь мне нужно использовать хранимую процедуру вместо запроса SQL в верблюде.

<camel:aggregate strategyRef="listStr" completionSize="10000" completionTimeout="2000">
         <correlationExpression>
            <camel:constant>true</camel:constant>
         </correlationExpression>
         <to uri="sql:insert into tablename (col1, col2, col3) values (:#value1, :#value2, :#value3)?batch=true" />
</camel:aggregate>

Выше работает хорошо. Я хочу заменить uri = "sql: insert ....." на что-то вроде

Невозможно вызвать сохраненный процесс, когда тело входного сообщения является списком. с запросом sql useIterator по умолчанию имеет значение true. В случае sql-хранимой процедуры опция useIterator отсутствует. Просто интересно как можно использовать batch = true?

...