当前位置: 首页 > 知识库问答 >
问题:

Camel JPA:没有向JPA组件发送命令消息的选项(如JDBC组件)

能正青
2023-03-14

在Camel-JDBC组件中,我们可以将select语句作为正文发送到jdbcendpoint,该endpoint返回结果。

下面的示例代码来自Camel JDBC网站:

from("direct:projects")
   .setHeader("lic", constant("ASF"))
   .setHeader("min", constant(123))
   .setBody("select * from projects where license = :?lic and id > :?min order by id")
   .to("jdbc:myDataSource?useHeadersAsParameters=true")

为什么Camel JPA组件中不存在这样的选项?

使用JPAendpoint作为消费者将轮询数据库。但是,我只想只获取一次数据。

共有1个答案

潘刚洁
2023-03-14

Camel没有这个功能,因为JPA支持命名查询。您可以按照这些思路做一些事情。

from("direct:start")
    .pollEnrich("jpa:" + MyEntity.class.getName() + "?consumeDelete=false&consumer.namedQuery=myNamedQuery&consumer.parameters=#params", new MyAggregationStrategy())
.log(LoggingLevel.INFO, "call my entity toString method ${body}");



//spring context OR you can use camel registry
<util:map id="params" key-type="java.lang.String">
    <entry key="param1" value="1"/>
    <entry key="param2" value="2"/>
</util:map>

//JPA model
@Entity
@Table(name = "MyTable")
@NamedQuery(name = "myNamedQuery", query = "SELECT t FROM MyTable t WHERE t.columnName1 = :param1 AND t.columnName2 = :param2")
public class MyEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "PrimaryKey", updatable = false, nullable = false, length = 20)
    private String primaryKey;

    @Column(name = "Param1", length = 5)
    private String param1;

    @Column(name = "Param2", length = 5)
    private String param2;

    //removed setters getters, hascode, equals, and toString for brevity
}
 类似资料:
  • 我知道我们可以通过聊天聊天=muc2.create私人聊天(“myroom@conference.jabber.org /johndoe”);chat.send消息(“你好”);在留档中给出。 但是我没有找到公开和群里所有用户聊天的方法。任何想法? 提前谢谢。

  • 我需要在我发送给Skype中的一个组的消息中提到特定的用户。我可以用skpy很容易地发送消息,但不知道如何在消息中提到某人。 skpy中有一个sendRaw()东西,我想我必须使用它,但我不知道如何使用它。 我是python新手,通过google和stackoverflow等大型社区找到了自己的路。因此,我们非常感谢您的一点帮助

  • 在Kafka文献中: Kafka的处理方式不同。我们的主题被划分为一组完全有序的分区,每个分区在任何给定时间都由一个使用者使用。这意味着消费者在每个分区中的位置只是一个整数,即要消费的下一条消息的偏移量。这使得消耗量的状态非常小,每个分区只有一个数字。这种状态可以定期检查。这使得消息确认的等价物非常便宜。 然而,按照同一份文件中的快速入门指南,我很容易就能: 使用单个分区创建主题 创建一个游戏机制

  • 如何更新代码以便bot将最新消息发布到它添加到的所有组?我使用:获得了chat_id,关于如何自动化这一点有什么建议吗?

  • 我有一个包含用户名数据库的服务器。我还有一个Android应用程序,用户可以在服务器数据库中注册自己的用户名,也可以在服务器的GCM部分注册设备。 我目前正在服务器代码中使用GCM演示,它将多播一个推送通知到每个注册的设备。但是,我希望它能够将推送通知发送给某些用户,而不是每个注册的GCM设备。 我的第一个想法是将数据库中的每个用户与其GCM注册表关联起来。这样行吗?我读过一些关于regID更改或