我有一个非常简单的路径来读取数据库中的某些行:
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时有关,我得到了一个结果集和一个游标/迭代器,所以你不能真正计算行数。如果文档反映了这一点会很好。
我如何知道何时处理所有行?
答案 0 :(得分:0)
您必须省略?outputType=StreamList
- 子句中的to
部分。日志语句本身也可以简化:
.log("read ${header.CamelJdbcRowCount} rows")