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