У меня есть очень простой маршрут, чтобы прочитать несколько строк из базы данных:Camel JDBC Route - CamelJdbcRowCount отсутствует
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");
Я хочу сделать некоторые очистки работы после всех строк/ломти обрабатываются, и хотел сравнить количество обработанных строк с помощью CamelJdbcRowCount из выбранного для этого.
Однако CamelJdbcRowCount не установлен вообще. Единственный заголовок JDBC, который я могу найти, - это имена CamelJdbcColumnNames.
Что мне не хватает?
Есть ли другой/лучший способ достичь того, чего я хочу, а не смотреть на подсчет строк?
EDIT: Я только заметил, что если я удалю 'outputType = StreamList', я получаю значение CamelJdbcRowCount, как ожидалось. Я предполагаю, что это имеет какое-то отношение к этому при использовании StreamList. Я получаю набор результатов и курсор/итератор, поэтому вы не можете рассчитывать количество строк. Было бы неплохо, если бы в документации это отразилось.
Как узнать, когда обрабатываются все строки?
Какую версию верблюда вы используете? Может быть ошибка исправлена в последней версии. Поэтому попробуйте обновиться. –
О, я думаю, что StreamList по запросу, поэтому нет возможности заранее узнать общий счет –