0
我有一個駝峯路由(駝峯2.19.2),它從一個JPA(Hibernate)端點提取數據,將其轉換並存儲到另一個JPA端點。像這樣在駱駝路由中使用多個JPA端點的最佳做法
from("direct:start")
.to("sourcjpa:com.somepackage.SomeEntity?persistenceUnit=mySource&namedQuery=myQuery")
.bean("transformBean")
.to("targetjpa:com.anotherpackage.AnotherEntity");
這會失敗,錯誤告訴我目標實體類不爲實體管理器所知。當我調試它時,我發現駱駝正在重用sourcejpa中的實體管理器,它存儲在交換屬性中。
如果我改變這樣的路線:
from("direct:start")
.to("sourcjpa:com.somepackage.SomeEntity?persistenceUnit=mySource&namedQuery=myQuery")
.bean("transformBean")
.removeProperty(JpaConstants.ENTITY_MANAGER)
.to("targetjpa:com.anotherpackage.AnotherEntity");
它可以作爲我的預期。
我做錯了嗎?
這是什麼最佳做法?