мне нужно создать динамический оператор обновления будет выполняться с помощью JDBC: исходящий канал-адаптер, потому что мне нужно, чтобы установить одно поле, используя выражение случая, который имеет переменное число условий следующим образом:Как создать динамический запрос для адаптера исходящего канала JDBC Spring Integration?
UPDATE tableA
SET fieldA = CASE
WHEN fieldB IN ('a','b') THEN 1
WHEN fieldB IN ('c','d') THEN 2
...
WHEN fieldB IN (...) THEN N
END
WHERE fieldC = :headers[MY_FIELDC]
я могу создать этот динамический оператор обновления в выражении Spring следующим образом:
"'UPDATE tableA SET fieldA = ' + headers[MY_CASE_EXP] + ' WHERE fieldC = :headers[MY_FIELDC]'"
Но атрибут запроса, кажется, не поддерживает пружину выражение.
Как создать динамический запрос для использования адаптером jdbc: outbound-channel-adapter?
Я пробовал этот подход, но не удалось добиться его работы. Он устанавливает fieldA в строку, которая является выражением CASE, а не выполняет выражение CASE. – PeccatorImpius
Что такое value = "# {headers ['MY_CASE_EXP']}"? –