私は1つのJPA(Hibernate)エンドポイントからデータを抽出し、それを変換して別のJPAエンドポイントに保存するラクダルート(Camel 2.19.2)を持っています。このようにCamelルートで複数のJPAエンドポイントを使用するベストプラクティス
from("direct:start")
.to("sourcjpa:com.somepackage.SomeEntity?persistenceUnit=mySource&namedQuery=myQuery")
.bean("transformBean")
.to("targetjpa:com.anotherpackage.AnotherEntity");
これは、エンティティマネージャがターゲットエンティティクラスを認識できないというエラーで失敗します。私がそれをデバッグすると、私はCamelがsourcejpaからエンティティマネージャを再利用していることを知っています。これは交換プロパティに格納されています。
私はこのようなルートを変更する場合:私は予想通り
from("direct:start")
.to("sourcjpa:com.somepackage.SomeEntity?persistenceUnit=mySource&namedQuery=myQuery")
.bean("transformBean")
.removeProperty(JpaConstants.ENTITY_MANAGER)
.to("targetjpa:com.anotherpackage.AnotherEntity");
それは動作します。
私は間違っていますか?
このためのベストプラクティスは何ですか?