I'm с помощью поддержки Spring Integration JDBC упорствовать сообщение в одном из нескольких таблиц (> 20) в зависимости от определенного состояния (хранится в заголовках сообщений, как «стол»):Могу ли я определить целевую таблицу для int-jdbc: исходящего канала-адаптера на основе полученного сообщения?
<int:channel id="cmTablesJdbcChannel"></int:channel>
<int-jdbc:outbound-channel-adapter channel="cmTablesJdbcChannel"
id="cmTableJdbcOutputAdaptor" data-source="datasource"
query="insert into TABLE_NAME values (int_id, parent_int_id, name) values (:headers[int_id],:headers[parent_int_id],:headers[name])">
</int-jdbc:outbound-channel-adapter>
Я попытался заменить TABLE_NAME несколькими выражениями, но никто не работал:
${headers['table']}
#{headers['table']}
:[headers['table]}
я пытаюсь избежать использования 20 различных адаптеров исходящего канала и повторное использование одного, но динамически устанавливая имя таблицы, которые будут использоваться. Вы знаете, если это возможно?
Были подобные вопросы, но связаны с параметрами, которые будут использоваться: How can I create a dynamic query for Spring Integration JDBC outbound-channel-adapter?
Это отличный способ сделать это! Я боялся, что мне пришлось выполнить всю реализацию в классе ServiceActivator ... Я попробую. Благодаря! – Victor