我一直在阅读论坛和文档,但似乎找不到与所需内容相关的任何信息,这对我来说是一个巨大的惊喜,因为这似乎是一个普遍的要求,所以我怀疑有更好的方法来解决这个问题。
我有一个数据库,我想在该数据库上运行SQL使用者,并且我只想查询自上次查询以来已被修改的记录。
您似乎无法参数化SQL使用者查询,这似乎是第一个障碍,其次,即使我可以参数化使用者查询,我似乎也无法在一个查询之间存储结果还有下一个。
我的假设是我想存储最高的dateModified
值,然后查询dateModified
值严格大于存储值的记录。
(我意识到这并非万无一失,因为可能存在毫秒级的问题,但是我想不出另一种方法来实现这一目标,而无需更改应用程序或数据库。)
我看到的使用SQL使用者的唯一方法是将最高的dateModified
存储在系统数据库的自定义表中(我宁愿不更改),并包含某种
WHERE dateModified > interfaceDataTable.lastDateModified
在SQL查询中和一个
UPDATE interfaceDataTable SET lastDateModified = :#$latestDateModifiedValue
在onConsume SQL中。
但是,我宁愿不对源数据库进行任何更改,因为这将对测试等产生进一步的影响。
我觉得我在这里树错了树。有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
是的,camel-sql当前不支持将此参数设置为动态参数,例如调用Java bean方法等。
我已记录了一张票,以查看我们是否可以执行此操作:https://issues.apache.org/jira/browse/CAMEL-12734