Spring Data JPA saveAll 不做批量插入

Ung*_*lan 4 java hibernate spring-data-jpa

所以我使用了一个简单的 JpaRepository 并调用了saveAll()方法。

hibernate.jdbc.batch_size = 500
hibernate.order_inserts = true
hibernate.generate_statistics = true
Run Code Online (Sandbox Code Playgroud)

运行应用程序后:

   8045055 nanoseconds spent acquiring 1 JDBC connections;
    0 nanoseconds spent releasing 0 JDBC connections;
    137189246 nanoseconds spent preparing 1158 JDBC statements;
    1417689514 nanoseconds spent executing 1158 JDBC statements;
    0 nanoseconds spent executing 0 JDBC batches;
    0 nanoseconds spent performing 0 L2C puts;
    0 nanoseconds spent performing 0 L2C hits;
    0 nanoseconds spent performing 0 L2C misses;
    16270990 nanoseconds spent executing 1 flushes (flushing a total of 1158 entities and 0 collections);
    0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到 0 执行 JDBC 批处理的原因吗?另外,我必须指出我的实体有 @GeneratedValue(strategy = IDENTITY)主键

Cep*_*pr0 5

Hibernate 不使用身份标识符生成器执行插入批处理。更多信息在这里

  • 就我而言,对于 Oracle,任何 id 生成策略都不会发生插入批处理。是的,我已经设置了属性 `hibernate.jdbc.batch_size: 100` (2认同)