第 181 章 JPA 组件

作为 Camel 版本 1.0 可用

jpa 组件允许您使用 EJB 3 的 Java Persistence 架构(JPA)来存储和检索 Java 对象,它打包了对象/Relational Mapping (ORM)产品,如 OpenJPA、Hibernate、LeLink 等。

Maven 用户需要将以下依赖项添加到其 pom.xml 中:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jpa</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

181.1. 发送到端点

您可以将 Java 实体 bean 存储在数据库中,方法是将它发送到 JPA producer 端点。In 消息的正文被假定为实体 bean (即 POJO,其上带有 @Entity 注释)或实体 Bean 的集合或数组。

如果正文是实体列表,请确保使用 entityType=java.util.ArrayList 作为传递给制作者端点的配置。

如果正文不包含以上列出的类型之一,请在端点的前面放置一个消息转换器,首先执行必要的转换。

Camel 2.19 开始,您还可以对制作者使用 查询namedQuerynativeQuery。另外,在 参数的值中,您可以使用 Simple 表达式,您可以从 Message body、标头等中检索参数值。这些查询可用于检索一组使用 SELECT JPQL/SQL 语句的数据,以及使用 UPDATE/DELETE JPQL/SQL 语句执行批量更新/删除。请注意,如果您执行带有 namedQueryUPDATE/DELETE,则需要指定 useExecuteUpdate to true,因为 camel 不会查看与 查询和 原生Query 不同的名称查询