Hibernate EntityManager bleibt bestehen () und die Anzahl der Datenbank-Roundtrips
Im Moment benutze ich den Entitymanager, um eine Liste von Objektentitäten mit meinem Dao in die Datenbank einzufügen.
<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>
Und wenn ich die SQL-Anweisung überwache, indem ich sie in den Anwendungskontext hinzufüge
<code> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="true"/> </bean> </property> </code>
Und das Ergebnis in der Konsole wird so aussehen
<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>
Meine Frage ist. Bedeutet dies, dass jedes Mal, wenn ich diese Methode aufrufe, 100-mal ein Roundtrip mit der Datenbank durchgeführt wird, oder nur ein Roundtrip, oder?
Jede Antwort oder Einsicht wäre dankbar.
Vielen Dank.