2012-10-29 27 views
1

我是新來的駱駝JPA和需要你的幫助有以下問題:Apache的駱駝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來實現這一點?

回答

0

camel-jpa組件提供使用查詢的選項,例如命名查詢。這允許你使用JPL寫SQL語句(我認爲這是SQL的JPA名稱)。

有一個在 http://camel.apache.org/jpa

+0

嗨,克勞斯,感謝您的快速回復!我在我的路由中成功使用了命名查詢(從uri =「jpa:// Employee1?consumeDelete = false & consumer.namedQuery = myQuery)。但是我不明白我如何傳遞一個屬性值(employee1.ID)到下一步/路線,但沒有價值,我不能執行任何其他查詢,也許你也有這個問題的解決方案呢?太棒了!THX! – Matthias

0

這裏一個小例子是我的解決方案(以防萬一有人有同樣的問題所困擾):

,因爲它不是可以動態地將屬性來命名查詢中駱駝的路線(至少,我找不到任何方式做到這一點...),我用一個bean來對付它:

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

和bean中,我使用的是(自動裝配)DAO致電我的查詢。這讓我做所有的各種內容豐富,我需要的...

好,它的偉大工程,到目前爲止,但我認爲有可能我的駱駝這樣做的更優雅的方式......

BR, M