2

我在 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 组件,那么它就被用作生产者,而不是消费者。我可以以某种方式使用 JPA 组件来处理这个问题,还是我必须遵循服务激活器(基于 bean)的逻辑并将 JPA 组件留在后面?

提前致谢, Gergely

4

2 回答 2

3

这几乎就是内容丰富模式。您可以使用

<pollEnrich uri="jpa://home.myEntity?consumer.query=select o from home.myEntity o"/>

而是使用消费者中间路线。请记住,您不能使用路由中的运行时数据(标头等),但在这种情况下需要保持路由 URI 静态。似乎您的 URI 是静态的,所以应该没问题。

于 2013-06-09T20:08:24.240 回答
0

非常好的点彼得。我有一个类似的问题。我想创建一个简单的路由,当调用它时将从数据库中检索数据。解决方案很简单。

from("direct:test")
.pollEnrich("jpa://" + User.class.getName() + "?consumer.query=select u from test.User u&consumeDelete=false")

还要检查这个Camel - 内容丰富器:enrich() vs pollEnrich()

于 2014-06-16T10:30:45.043 回答