我是camel-jpa的新手,需要你帮助解决以下问题:
我需要从数据库表中读取数据,将其转换并保存到另一个数据库中:
<route id="FromEmployee1ToEmployee2">
<from uri="jpa1://Employee1?consumeDelete=false&consumer.namedQuery=getAll" />
<bean ref="transformerBean"/>
<to uri="jpa2://Employee2"/>
</route>
这已经很好了!
但现在的问题是我需要从另一个表中查找Employee1的一些数据(我需要读取该条目的“last_modified”日期)。在SQL中我会这样做:select last_modified from table2 where table2.id = <employee.ID>
。但是我怎么能用camel-jpa来实现这个呢?
答案 0 :(得分:0)
camel-jpa组件提供了使用查询的选项,例如命名查询。这允许您使用JPL编写SQL(我认为这是SQL的JPA名称)。
有一个小例子 http://camel.apache.org/jpa
答案 1 :(得分:0)
这是我的解决方案(以防万一有人在解决同样的问题):
因为无法动态地将属性传递给camel路由中的命名查询(至少,我找不到任何方法来执行它...),我使用bean来处理它:
<route...
<from uri="jpa1://Entity1" />
<bean ref="MyBean" />
<to uri="jpa2://Entity2" />
</route>
并且在bean中,我使用(自动装配的)DAO来调用我的查询。这使我可以做我需要的所有内容丰富...
好吧,它到目前为止效果很好,但我想我可以用骆驼来做一个更优雅的方式......BR, M