骆驼Jpa绕过@consumed

时间:2016-02-15 14:34:40

标签: java jpa apache-camel

我正在尝试Apache Camel技术并遇到麻烦。

我使用Jpa Component的轮询使用者作为from()并在我的实体上设置@consumed注释,以将其在流程结束时的状态更改为“已成功处理”。它工作正常。

但是如果出现任何错误,我不想在我的数据库中设置“成功处理”标志,但是会出现“错误发生”的情况。

为了解决这个问题,我创建了一个带有处理器的“死信队列”,它试图改变我正在进行的实体的状态,以便稍后在数据库中保存。但是该过程始终标记为已完成,因此始终会调用@Consumed方法。

所以我的问题是:如果出现错误,如何跳过@Consumed方法?是否有特定交易所的州设置?

1 个答案:

答案 0 :(得分:1)

@Consumed方法可以Exchange作为参数,您可以在那里检查交换是否失败,并获取引起的异常或其他内容。在任何情况下,如果成功与否,它应该具有状态,然后您可以相应地更改实体。