java - Camel JPA @Consumed 替代品

标签 java jpa apache-camel

我的主要问题是:在 JPA 实体类内部的方法上是否有任何替代 @Consumed 注释的方法?

我问这个问题是因为我真的想外部化我的 JPA 模型(例如我所有的实体)以便能够在使用相同数据库的其他项目之间共享。此外,我不希望我的子项目中有一些 Camel 依赖关系,这意味着删除 @Consumed 注释。 我基本上有这样一条路线:

from("jpa://[MyClass]?consumeLockEntity=true&consumer.SkipLockedEntity=true&consumer.query=[...]")
    .to("seda:queue.test")

我尝试了不同的解决方案:

  • 使用@Consumed 方法扩展我的camel 项目中的子模块camel 自由实体类。但是JPA不允许没有判别字段的继承...
  • 在我的 Camel 路由末尾添加一个 bean/处理器以手动更新实体状态。但是我的路线以死锁结束(正如预期的那样)。

我忘记了还有其他解决方案吗?有没有(在路由配置中)放置“路由结束方法”的地方?

提前致谢!

最佳答案

您的第二个解决方案应该有效。我认为您的路线最终会陷入死锁,因为您的 Bean 试图在您已经处于事务中时更新您的实体。 如果是这种情况,删除 Bean 中的更新应该可行。

您的第一个解决方案仍然很有值(value)。如果有人尝试过,我很想知道它是否有效。

关于java - Camel JPA @Consumed 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978676/

相关文章:

java - 运行应用程序时出现库问题

database - JPA/Hibernate区别MappedSuperclass和实体抽象类

java - JPA 中的条件 where 子句

file - 网盘的 Camel 文件组件

java - 如何在 Java (Android) 中从 AppEngine 解析 DateTime 属性?

java - 如何获取谷歌java库上的操作中的参数列表?

java - 如何检测Dataverse表记录的变化

java - 将主键作为外键映射到另一个表

java - Camel如何将授权 header 添加到休息路线?

java - mock 幂等消费者