繁体   English   中英

Spring Boot 和 PostgreSQL 不批量更新和删除

[英]Update and Delete are not batched in Spring Boot and PostgreSQL

我试图让我的 Spring 引导应用程序使用批处理模式来创建更新和删除操作。 我已经成功地通过以下文章进行了创建操作:

  1. https://vladmihalcea.com/postgresql-multi-row-insert-rewritebatchedinserts-property/
  2. https://www.baeldung.com/jpa-hibernate-batch-insert-update

在我的应用程序级别,在代理数据源的帮助下,我可以看到批处理对我的所有操作都有效,它看起来像这样:

[-exec-6] SLF4JQueryLoggingListener:20 - {"name":"Batch-Insert-Logger", "connection":33, "time":9, "success":true, "type":"Prepared", "batch":true, "querySize":1, "batchSize":5, "query":["

在 PostgreSQL 级别,在我的数据库连接中配置 reWriteBatchedInserts=true 后,我可以看到插入有效。 我用实际的 PostgreSQL 日志验证了它。

但是对于update和delete操作,我在日志中还是可以看到PostgreSQL这个级别没有进行批处理。 为了完成这项工作,我需要做任何额外的配置吗?

先感谢您。

当我们想要使用批处理进行插入/更新时,我们应该了解主键生成策略。 如果我们的实体使用 GenerationType.IDENTITY 标识符生成器,Hibernate 将静默禁用批量插入/更新。

请改用序列...

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;

资料来源: Baeldung

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM