【发布时间】: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 策略?
标签: sql spring-boot hibernate jpa bulk