JPA batch_size 属性不适用于本机查询
Posted
技术标签:
【中文标题】JPA batch_size 属性不适用于本机查询【英文标题】:JPA batch_size property does not work for native query 【发布时间】:2020-12-15 16:10:48 【问题描述】:我正在尝试使用本机查询进行批量插入。
@Repository
public interface Repository extends CrudRepository<Entity, Integer>
@Modifying
@Query(value = "INSERT INTO table_name(value) VALUES (:value)", nativeQuery = true)
void insert(@Param("value") String value);
我在 application.properties 文件中添加了 batch_size 属性
spring.jpa.properties.hibernate.jdbc.batch_size = 50
但在日志中,我看到每个插入都是单独处理的。是否可以将批处理应用于原生查询?
【问题讨论】:
您多次调用此本机查询? 是的,我多次调用它。 你在使用@Transactional 吗?这样可能不行,可以使用saveAll
方法批量插入。
我相信saveAll
用于实体,但我使用的是本机查询。
您使用什么 JDBC 驱动程序?您对实体 Entity
使用什么 generating identifier value 策略?
【参考方案1】:
如果实体使用GenerationType.IDENTITY
标识符生成器,休眠将静默禁用批量插入/更新。
详情请点击以下链接: https://www.baeldung.com/jpa-hibernate-batch-insert-update#id-generation-strategy
【讨论】:
以上是关于JPA batch_size 属性不适用于本机查询的主要内容,如果未能解决你的问题,请参考以下文章