2011-02-26 100 views
0

我正在使用STS + Grails 1.3.7併爲數千個域類實例進行批量插入。Grails/Hibernate批量插入

這很慢,因爲Hibernate只是將所有SQL語句批量化爲一個JDBC調用,而不是將這些語句合併爲一個。

我怎樣才能讓它們成爲一個大的聲明?

+0

你可以發佈你插入的代碼嗎? – 2011-02-27 15:02:16

回答

0

你可以看到這行Hibernate的文檔:當我改變發電機的類型

Hibernate disables insert batching at the JDBC level transparently if you use an identity identifier generator. 

,它的工作。

0

在域類上使用withTransaction()方法可以使批處理腳本的插入快得多。您可以在一個集合中構建所有域對象,然後將它們插入到一個塊中。

例如:

Player.withTransaction{ 
    for (p in players) { 
     p.save() 
    } 
} 
+0

謝謝傑森。我試過這個,但它不起作用。 – user571470 2011-02-28 20:48:12