Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring Integration DSL:如何删除JPA实体列表?

Spring Integration DSL:如何删除JPA实体列表?
EN

Stack Overflow用户
提问于 2021-08-11 07:11:33
回答 1查看 31关注 0票数 1

我有一堆JPA实体,我像这样检索它们:

代码语言:javascript
运行
AI代码解释
复制
.handle(Jpa.retrievingGateway(myEntityManagerFactory).namedQuery(readQuery))
.transform(/* remove some of the entities from the message, leaving only the ones I want to delete */)

现在我想删除其中的一些。做这件事最好的方法是什么?我在想,一定有一些简单的方法可以用一个非常简单的或者甚至根本不显式的jpaQuery()来完成这个任务?

我的想象是这样的:

代码语言:javascript
运行
AI代码解释
复制
.handle(Jpa.updatingGateway(myEntityManagerFactory)
    .jpaQuery("delete from MyTable m where m in :items")
    .parameter("items", ...(?)... )

或者像这样:

代码语言:javascript
运行
AI代码解释
复制
.handle(Jpa.deletingGateway(myEntityManagerFactory))

使用Spring Integration DSL实现这一点的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-11 07:26:18

你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
.handle(Jpa.updatingGateway(entityManagerFactory).persistMode(PersistMode.DELETE))

尽管它只适用于单个实体。因此,考虑让您的集成流程如下所示:

代码语言:javascript
运行
AI代码解释
复制
.handle(Jpa.retrievingGateway(myEntityManagerFactory).namedQuery(readQuery))
.transform(/* remove some of the entities from the message, leaving only the ones I want to delete */)
.split()
.handle(Jpa.updatingGateway(entityManagerFactory).persistMode(PersistMode.DELETE))

我的意思是在JPA网关之前添加一个拆分器。当然,如果您的.transform()返回列表的话。

我认为,如果消息的有效负载是一个Iterable,那么对于像您这样的用例,我们可能会更方便。已经有一个JpaOperations.deleteInBatch()。因此,JpaExecutor.executeOutboundJpaOperationOnPersistentMode()可以在其分支中进行改进:

代码语言:javascript
运行
AI代码解释
复制
case DELETE:
            this.jpaOperations.delete(payload);
            if (this.flush) {
                this.jpaOperations.flush();
            }
            return payload;

请随时提出GH问题,我们将最终对其进行修改!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68744643

复制
相关文章
Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
通过前面的系列文档,我们一起对SpringData JPA从浅入深的进行了全方位的探讨。正所谓“工欲善其事、必先利其器”,面对一个优秀的框架,如果再结合一些外部的工具,其实可以让我们的开发效率与程序员开发过程的体验更上一层楼的。
是Vzn呀
2022/07/14
1.8K0
Spring Data JPA系列5:让IDEA自动帮你写JPA实体定义代码
JPA 逻辑删除
@MappedSuperclass 通过这个注解,我们可以将该实体类当成基类实体,它不会隐射到数据库表,但继承它的子类实体在隐射时会自动扫描该基类实体的隐射属性,添加到子类实体的对应数据库表中。
全栈程序员站长
2022/09/05
7670
Spring学习笔记 Spring Roo 简介
乐百川
2018/01/09
3K0
Spring学习笔记  Spring Roo 简介
Spring Webflux: Kotlin DSL [片断]
Spring Webflux最近 介绍一个特性来定义函数式API,它使用一个非常直观的基于 Kotlin的 DSL。
烟雨平生
2023/03/07
5070
Spring Webflux: Kotlin DSL [片断]
Spring·JPA
JPA 即 Java 持久化 API(Java Persistence API),是一个用于映射 Java 对象和关系型数据库表的规范。此规范使得开发者可以不依赖特定数据库,也能很好地 CRUD(创建、读取、更新、删除)。
数媒派
2022/12/01
3.5K0
java propertydescriptor_Spring Integration
总结满足以下条件才会生成PropertyDescriptor(注意读写方法是否为空,spring中by_type类型注入会筛选出具有写方法不为空的PropertyDescriptor): 1、参数个数必须2个以内、方法不是static 2、 方法没有参数:方法有readMethod没有writeMehtod 1、普通get开头方法 2、返回值boolean 以is开头的 3、 有一个参数 1、有一个参数且int类型,方法get开头的,没有readMethod writeMehtod等属性 2、没有返回值、set方法开头的,具有writeMethod 4、两个参数 1、返回值void ,第一个参数int类型,set开头的会生成PropertyDescriptor(注意此时没有writeMethod)
全栈程序员站长
2022/11/10
2820
java propertydescriptor_Spring Integration
GraphQL实践2——Spring-GraphQL集成JPA与MySQL
上一篇介绍到用第三方库集成GraphQL,目前spring-graphql项目已经出到1.0.0-M3版本,属于内部预览版,此处尝鲜验证
F嘉阳
2022/10/28
1.4K0
Kotlin Compiler Plugins : All-open , Kotlin-spring,No-arg,Kotlin-jpaCompiler Plugins
Kotlin has classes and their members final by default, which makes it inconvenient to use frameworks and libraries such as Spring AOP that require classes to be open. The all-open compiler plugin adapts Kotlin to the requirements of those frameworks and makes classes annotated with a specific annotation and their members open without the explicit open keyword. For instance, when you use Spring, you don't need all the classes to be open, but only classes annotated with specific annotations like @Configuration or @Service. The all-open plugin allows to specify these annotations.
一个会写诗的程序员
2018/08/17
1.5K0
基于Java、Kafka、ElasticSearch的搜索框架的设计与实现
Jkes是一个基于Java、Kafka、ElasticSearch的搜索框架。Jkes提供了注解驱动的JPA风格的对象/文档映射,使用REST API用于文档搜索。
哲洛不闹
2018/09/14
2.2K0
基于Java、Kafka、ElasticSearch的搜索框架的设计与实现
JPA实体类中的注解
@Entity   标注于实体类上,通常和@Table是结合使用的,代表是该类是实体类 @Table   标注于实体类上,表示该类映射到数据库中的表,没有指定名称的话就表示与数据库中表名为该类的简单类名的表名相对应,如果是逆向生成表的话就会以简单类名作为表名   如果指定名称,例如@Table(name="tb_user"),就表示映射到数据库中的tb_userz这个表; @Id   标注于属性上,通常是在get方法上,也可以在属性的声明上。   用于表示该属性作为ID主键 @GeneratedValue
二十三年蝉
2018/03/29
4.1K0
Spring整合Hibernate、Hibernate JPA、Spring Data JPA、Spring Data Redis
环境说明,使用Jdk1.8版本,spring4.2.0.RELEASE版本、hibernate5.0.7.Final版本,spring-data-jpa-1.9.0.RELEASE版本、spring-data-redis-1.6.0.RELEASE版本。
别先生
2020/05/27
5.7K0
Spring Data JPA
Spring boot 底层默认进行数据访问采用的技术。 Spring官方开发用来简化数据访问的一个项目,如Spring Data JPA简化关系型数据 库的操作,MongoDB,Redis,Solr,Cassandra,haoop等等。
cherishspring
2019/11/05
1.2K0
Spring JPA 拓展
本节记录了一组Spring数据扩展,它们支持在各种上下文中使用Spring数据。目前,大部分集成都是针对Spring MVC的。
Kindear
2020/09/10
1.4K0
Spring JPA 拓展
借助 Spring Boot 和 GraalVM 实现原生 Java
作者 | Josh Long 译者 | 张卫滨 策划 | 丁晓昀 本文是“Native Compilations Boosts Java”系列文章的一部分。你可以通过 RSS 订阅接收新文章更新通知。 Java 在主导着企业级应用。但是在云中,采用 Java 的成本要比其竞争者更高。使用 GraalVM 进行原生编译降低了在云中 Java 的成本:它所创建的应用启动更快,使用的内存也更少。 原生编译为 Java 用户带来了很多的问题:原生 Java 会如何改变开发方式?我们在什么情况下该转向
深度学习与Python
2023/04/01
9030
借助 Spring Boot 和 GraalVM 实现原生 Java
大数据ClickHouse(十四):Integration系列表引擎
ClickHouse提供了许多与外部系统集成的方法,包括一些表引擎。这些表引擎与其他类型的表引擎类似,可以用于将外部数据导入到ClickHouse中,或者在ClickHouse中直接操作外部数据源。
Lansonli
2022/08/30
7180
大数据ClickHouse(十四):Integration系列表引擎
Spring JPA 查询
​ 标准CRUD功能存储库通常在基础数据存储上进行查询。使用Spring Data,声明这些查询将分为四个步骤:
Kindear
2020/08/28
1.1K0
spring data jpa
KeywordSampleJPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?
gemron的空间
2019/11/04
8800
另一种思考:为什么不选JPA、MyBatis,而选择JDBCTemplate?
对于关系型数据库的操作,我们在之前的Spring Boot系列教程中已经介绍了几个最常用的使用案例: 使用JdbcTemplate访问MySQL数据库 使用Spring Data JPA访问MySQL 使用MyBatis访问MySQL 因为选择多,因此对于这几种方式哪个更好,一直也是Java开发者们争论的一个热点。同时,一直以来争论的热点一直围绕着MyBatis和Spring Data JPA的选择(之前我们也聊了关于 MyBatis和Spring Data JPA的选择问题)。 今天小编看到一篇比较
程序猿DD
2023/04/04
2.7K0
另一种思考:为什么不选JPA、MyBatis,而选择JDBCTemplate?
放弃 MyBatis、JPA,我最终选择了 JDBC Template!真香!!
作者:scherman 来源:segmentfault.com/a/1190000018472572
Java技术栈
2021/11/12
3.5K0
再见!Mybatis,你好!JDBCTemplate
因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template。
开发者技术前线
2020/11/24
4K0
再见!Mybatis,你好!JDBCTemplate

相似问题

Spring Integration Java DSL错误

113

Spring Integration DSL关闭策略

148

如何使用spring integration dsl解组xml

13

Spring Integration DSL EnrichedHeaders未被替换

10

Spring Integration DSL -如何创建XPath拆分器?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档