Apache Camel JPA:从多个表中读取

时间:2012-10-29 10:44:09

标签: jpa apache-camel

我是camel-jpa的新手,需要你帮助解决以下问题:

我需要从数据库表中读取数据,将其转换并保存到另一个数据库中:

<route id="FromEmployee1ToEmployee2">
      <from uri="jpa1://Employee1?consumeDelete=false&amp;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来实现这个呢?

2 个答案:

答案 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