Удаление данных из БД
Для удаления данных из БД необходимо создать Credentials, Источник данных и Camel DSL так же, как описано в разделе «Выборка из БД». Содержимое маршрута должно включать SQL-запрос на удаление данных.
Простое удаление записей
Маршрут clearValues удаляет все записи из таблицы simple источника данных datasource, кроме записей с id равным „1“ или „2“:
- route:
id: "clearValues"
from:
uri: "timer:start?delay=-1&repeatCount=1"
steps:
- setBody:
constant: "delete from simple where id not in ('1','2')"
- to: "jdbc:datasource"
Выборка с последующим удалением
Следующий контекст выбирает данные из источника todb, обрабатывает их через RecordsDaoEndpoint daoEndpoint, после чего очищает таблицу simple:
- beans:
- name: "daoEndpoint"
type: ru.citeck.ecos.integrations.domain.cameldsl.service.RecordsDaoEndpoint
properties:
sourceId: testDao
pkProp: id
columnMap:
name: content
state: currentState
type: type
- route:
id: "getValues"
from:
uri: "timer:start?delay=-1&repeatCount=1"
steps:
- setBody:
constant: "select * from simple"
- to: "jdbc:todb"
- split:
simple: "${body}"
steps:
- to: "bean:daoEndpoint"
- to: "direct:clearValues"
- route:
id: "clearValues"
from:
uri: "direct:clearValues"
steps:
- setBody:
constant: "delete from simple"
- to: "jdbc:todb"
Примечание
Значение constant автоматически приводится к нижнему регистру. Например, запрос "select * from simple order by COMPANY_ID" вызовет ошибку ERROR: column "company_id" does not exist, так как имя колонки будет преобразовано в нижний регистр.