2015-06-08 3 views
1

Я пытаюсь использовать верблюд apache (компонент sql) для обновления БД. Проблема в том, что БД просто не обновляется. Обновление sql: отлично работает, когда я жестко кодирую запрос, но когда я пытаюсь использовать $ {body [0] [id]}, он не обновляет требуемое поле. Любая обратная связь о том, что может пойти не так?База данных не обновляется при использовании компонента apache camel sql

from("direct:updateSql") 
.to("sql:select * from mytable limit 1") 
.log("update mytable set status = '100' where id = '${body[0][id]}'") 
.to("sql:update mytable set status = '100' where id = '${body[0][id]}'") 
.end(); 

Обратите внимание, что статус и идентификатор целые поля, но если я удалить "из .TO(), то я бросает некоторые ошибки.

ответ

1

Согласно документации вы должны использовать :# как синтаксис заполнителем

Так что попробуйте с

.to("sql:update mytable set status = 100 where id = :#${body[0][id]}") 
0

Ниже код работал тоже.

from("direct:updateSql") 
.to("sql:select * from mytable limit 1") 
.setHeader("id", simple("${body[0][id]}")) 
.to("sql:update mytable set status_id = 100 where id = :#id") 
.end(); 
Смежные вопросы