1

私は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でこれをどのように実現できますか?

4

2 に答える 2

0

これが私の解決策です(誰かが同じ問題に苦しんでいる場合に備えて):

キャメルルートで名前付きクエリに属性を動的に渡すことができないため (少なくとも、それを行う方法が見つかりませんでした...)、Bean を使用して処理しました。

<route...
  <from uri="jpa1://Entity1" />
  <bean ref="MyBean" />
  <to uri="jpa2://Entity2" />    
</route>

Bean 内で、(autowired) DAO を使用してクエリを呼び出します。これにより、必要なすべての種類のコンテンツの強化を行うことができます...

まあ、これまでのところうまくいきますが、ラクダでこれを行うよりエレガントな方法があると思います...

BR、M

于 2012-11-02T16:03:55.080 に答える
0

camel-jpa コンポーネントは、名前付きクエリなどのクエリを使用するオプションを提供します。これにより、JPL を使用するのと同じように SQL を記述できます (SQL の JPA 名だと思います)。

http://camel.apache.org/jpaに小さな例があり ます

于 2012-10-29T11:23:32.213 に答える