我遇到了JPA的以下问题,但它可能更像是关于Camel的概念性问题。
我需要一个基于cron的Quartz消费者。但如果它被触发,我想选择作为JPA组件的第一步。
<from uri="quartz://myQuartz?cron=myCronExpression/>
<to uri="jpa://home.myEntity?consumer.query=select o from home.myEntity o"/>
但是,如果我用“to”调用JPA组件,那么它将被用作Producer,而不是Consumer。我可以以某种方式使用JPA组件来处理这个问题,或者我必须遵循Service Activator(基于bean)逻辑并将JPA组件留在后面吗?
提前致谢, 盖尔盖伊
答案 0 :(得分:2)
这几乎是Content-Enrichement模式。
可以使用<pollEnrich uri="jpa://home.myEntity?consumer.query=select o from home.myEntity o"/>
而是使用消费者中间路线。请记住,您不能使用路由(标头等)中的运行时数据,但在这种情况下需要保持路由URI静态。看起来你的URI是静态的,所以应该没问题。
答案 1 :(得分:0)
非常好点Petter。我有一个类似的问题。我想创建一个简单的路由,调用时将从数据库中检索数据。解决方案很简单。
from("direct:test")
.pollEnrich("jpa://" + User.class.getName() + "?consumer.query=select u from test.User u&consumeDelete=false")