如何在批量/批处理中保存或更新许多实体?
我有一个遵循此结构的实体:
name: String(not null, unique),
value: Integer(not null)
id: Long(generated, not null, unique)
我有一个实体列表(list<>),并且我想将它们保存到表格或更新,如果有些已经在表中,但是我需要一种有效的方法来做到这一点带有一些散装/批处理插入/更新。现在,我已经尝试了repository.saveall和entityManager.merge,但是我会收到重复的值错误,因为它没有更新表格中的值。我应该怎么办?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅此主题:
要使用Sring启动和Spring Data JPA获取散装插入,您只需要两件事:
Spring.jpa.jpa.properties.hibernate.jdbc.batch_size
适当的值您需要(例如:20)。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:
spring.jpa.properties.hibernate.jdbc.batch_size
to appropriate value you need (for example: 20).saveAll()
method of your repo with the list of entities prepared for inserting.