Я прочитал эту статью о пакетной обработке jdb c, и в ней предлагается включить spring.jpa.properties.hibernate.generate_statistics=true
, чтобы проверить, действительно ли пакетирование работает.
Итак, когда я попробовал это и сделал кучу операторов вставки, журналы показали мне это.
27933133 nanoseconds spent executing 2 JDBC batches;
Значит, это действительно сработало. Но мне было интересно, как выглядят операторы sql, поэтому я попытался включить SQL ведение журнала logging.level.org.hibernate.SQL=DEBUG
. Я попытался сохранить 10 элементов и ожидал, что при размере пакета 5 я увижу 2 оператора insert SQL. Однако, когда я просмотрел логи, я увидел 10 операторов insert SQL ... Почему это так? Вот статья, кстати: https://www.baeldung.com/jpa-hibernate-batch-insert-update
Я неправильно понял статью? Если jdb c выполнил пакетную обработку, почему я вижу 10 SQL операторов вместо 2?
Вот моя конфигурация:
spring.jpa.properties.hibernate.jdbc.batch_size=5
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.order_updates=true
spring.jpa.properties.hibernate.batch_versioned_data=true
logging.level.org.hibernate.SQL=DEBUG
spring.jpa.properties.hibernate.generate_statistics=true