JPA 支持
Spring Integration 的 JPA(Java Persistence API)模块提供了用于执行各种数据库操作的组件。
此依赖项为项目所需:
- Maven
- Gradle
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-jpa</artifactId>
<version>7.0.2</version>
</dependency>
compile "org.springframework.integration:spring-integration-jpa:7.0.2"
JPA API 必须通过特定供应商的实现来包含,例如 Hibernate ORM 框架。
提供以下组件:
这些组件可用于通过向目标数据库发送和接收消息,执行select、create、update和delete操作。
JPA入站通道适配器允许您通过使用JPA轮询和检索(select)数据库中的数据,而JPA出站通道适配器则允许您创建、更新和删除实体。
您可以使用 JPA 出站网关将实体持久化到数据库,从而让流程继续执行并运行下游的后续组件。同样地,您也可以使用出站网关从数据库中检索实体。
例如,您可以使用出站网关,该网关在其请求通道上接收一个以userId作为有效载荷的Message,来查询数据库、检索用户实体,并将其传递到下游进行进一步处理。
认识到这些语义差异,Spring Integration 提供了两个独立的 JPA 出站网关:
-
检索出站网关
-
更新出站网关
章节总结
📄️ 功能
所有JPA组件通过以下方式之一执行其各自的JPA操作:
📄️ 支持的持久化提供程序
Spring Integration JPA 支持已针对 Hibernate 持久化提供程序进行测试。
📄️ Java 实现
每个提供的组件都使用了 o.s.i.jpa.core.JpaExecutor 类,而该类又使用了 o.s.i.jpa.core.JpaOperations 接口的实现。JpaOperations 的操作方式类似于典型的数据访问对象 (DAO),并提供了诸如 find、persist、executeUpdate 等方法。对于大多数使用场景,默认实现 (o.s.i.jpa.core.DefaultJpaOperations) 应该足够。但是,如果需要自定义行为,您可以指定自己的实现。
📄️ 命名空间支持
在使用 XML 命名空间支持时,底层解析器类会为您实例化相关的 Java 类。因此,您通常无需处理 JPA 适配器的内部工作机制。本节记录了 Spring Integration 提供的 XML 命名空间支持,并展示了如何使用 XML 命名空间支持来配置 JPA 组件。
📄️ 入站通道适配器
入站通道适配器用于通过 JPA QL 在数据库上执行查询并返回结果。消息负载可以是单个实体或实体列表。以下 XML 配置了一个入站通道适配器:
📄️ 出站通道适配器
JPA出站通道适配器允许您通过请求通道接收消息。其有效负载既可用作待持久化的实体,也可与标头一起用于JPQL查询的参数表达式中。以下章节将介绍执行这些操作的可能方式。
📄️ 出站网关
JPA入站通道适配器允许您轮询数据库以检索一个或多个JPA实体。检索到的数据随后将用于启动Spring集成流,并将检索到的数据作为消息负载使用。