如何在批量/批处理中保存或更新许多实体?

发布于 2025-01-23 10:18:46 字数 312 浏览 0 评论 0 原文

我有一个遵循此结构的实体:

name: String(not null, unique),
value: Integer(not null)
id: Long(generated, not null, unique)

我有一个实体列表(list<>),并且我想将它们保存到表格或更新,如果有些已经在表中,但是我需要一种有效的方法来做到这一点带有一些散装/批处理插入/更新。现在,我已经尝试了repository.saveall和entityManager.merge,但是我会收到重复的值错误,因为它没有更新表格中的值。我应该怎么办?

I have an entity that follows this structure:

name: String(not null, unique),
value: Integer(not null)
id: Long(generated, not null, unique)

I have a list of entities(List<>), and I want to save them to a table or update if some were already in a table, but I need an effective way to do that with some bulk/batch insert/update. Now I've tried repository.saveAll and entityManager.merge, but I get the repeated value error, as it doesn't update the values that're already in a table. What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦与时光遇 2025-01-30 10:18:46

请参阅此主题:

要使用Sring启动和Spring Data JPA获取散装插入,您只需要两件事:

  1. 设置选项 Spring.jpa.jpa.properties.hibernate.jdbc.batch_size 适当的值您需要(例如:20)。
  2. 使用 saveall()您的存储库的方法,其中包含准备插入的实体列表。

Please refer to this topic:

How to do bulk (multi row) inserts with JpaRepository?

To get a bulk insert with Sring Boot and Spring Data JPA you need only two things:

  1. set the option spring.jpa.properties.hibernate.jdbc.batch_size to appropriate value you need (for example: 20).
  2. use saveAll() method of your repo with the list of entities prepared for inserting.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文