我被困(再次;-)与一些JPA相关的问题,并希望这里的任何人都能提供帮助(Camel in Action不能......):
我使用namedQuery从JPA端点使用。 我无法删除消费的条目,因此我使用“consumeDelete = false”选项。
但是如何防止多次读取相同的条目? 我知道“@consumed”注释,但由于我不允许修改/更新原始数据库条目,我还没想出如何将条目标记为“消耗”......
有什么想法吗?
感谢, 中号
答案 0 :(得分:1)
如果您无法改变数据库中的数据以反映您已经消耗了该记录,那么您需要将此信息“存储”在其他位置。
您可以使用幂等消费者EIP模式 http://camel.apache.org/idempotent-consumer.html
然后,您需要使用内存/文件/另一个数据库/表来存储已消耗消息的ID,并将其与幂等消费模式一起使用。
答案 1 :(得分:0)
您可以在实体类中使用任何方法名称的@Consumed,并将字段值更改为您想要的值。例如
@Consumed
public void updateConsumedStatus() {
this.status = false;
}