Hibernacja EntityManager persist () i liczba rund w bazie danych

W tej chwili używam programu upoważniającego do wstawienia listy obiektów obiektu do bazy danych za pomocą mojego dao za pomocą kodu takiego jak ten.

<code>@Transaction
public void insertBatch(List<EntityObject> o){
    for(int i=0;i<o.size();i++){
         em.persist(o);
         if(o.size % 100 == 0){ //equal to JDBC batch size
              em.flush();
              em.clear();
         }
    }
}
</code>

A kiedy monitoruję instrukcję sql, dodając ją do kontekstu aplikacji

<code>    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                           <property name="showSql" value="true"/>
        </bean>
    </property>
</code>

A wynik w konsoli będzie wyglądał następująco

<code>Hibernate: insert into TABLE (FIELD1, FIELD2) values (?, ?)
Hibernate: insert into TABLE (FIELD1, FIELD2) values (?, ?)
...
...
...//untill reach 100 lines.
Hibernate: insert into TABLE (FIELD1, FIELD2) values (?, ?)
</code>

Moje pytanie brzmi. Czy to znaczy, że za każdym razem, gdy dzwonię na tę metodę, zrobi ona podróż w obie strony z bazą danych 100 razy, czy też wykona tylko jedną podróż w obie strony, czy może?

Każda odpowiedź lub wgląd byłaby doceniana.

Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion