Camel JDBC Route - CamelJdbcRowCount缺失

时间:2015-10-19 13:28:09

标签: java jdbc apache-camel

我有一个非常简单的路径来读取数据库中的某些行:

  from("timer://runOnce?repeatCount=1&delay=1000").
            setBody(constant("select * from some_table"))
            .to("jdbc:dataSource?outputType=StreamList")
            .log("Processing $simple{in.header.CamelJdbcRowCount} rows")
            .split(body()).streaming().to("direct:createChunk");

我希望在处理完所有行/块后进行一些清理工作,并希望将处理过的行数与select中的CamelJdbcRowCount进行比较,以实现此目的。

但是,CamelJdbcRowCount根本没有设置。我能找到的唯一JDBC头是CamelJdbcColumnNames。

我错过了什么?

是否有其他/更好的方法来实现我想要的而不是查看行数?

编辑:我刚注意到,如果删除' outputType = StreamList'我按预期获得CamelJdbcRowCount值。我猜这与使用StreamList时有关,我得到了一个结果集和一个游标/迭代器,所以你不能真正计算行数。如果文档反映了这一点会很好。

我如何知道何时处理所有行?

1 个答案:

答案 0 :(得分:0)

您必须省略?outputType=StreamList - 子句中的to部分。日志语句本身也可以简化:

.log("read ${header.CamelJdbcRowCount} rows")