使用apache camel sql组件时数据库不会更新

时间:2015-06-08 01:15:06

标签: apache-camel

我正在尝试使用apache camel(sql组件)来更新数据库。问题是数据库没有得到更新。当我对查询进行硬编码时,sql:update运行正常,但是当我尝试使用$ {body [0] [id]}时,它不会更新必填字段。有关可能出错的任何反馈意见?

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();

请注意,status和id是整数字段,但如果我从.to()中删除',那么我会抛出一些错误。

2 个答案:

答案 0 :(得分:1)

根据文档,您必须使用:#作为占位符语法

请尝试使用

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

答案 1 :(得分: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();