2012-01-23 317 views
0

我有道,基本上插入一個記錄到表中使用休眠,這個道標有@Transactional註釋與propogation-NESTED,我有服務,使一些其他的東西,然後調用我的道。我的服務也用@Transactionalpropagation-REQUIRED註解。休眠批量插入,批量更新

我在循環中調用服務。我的刀片插入是否可以批量或一個一個地工作?我如何確保他們能夠批量工作? hibernateTransaction管理器是否管理批量插入?

我正在使用Oracle DB。

+0

我問JDBC的addBatch相當於處於休眠 – dursun

回答

1

我已經設置以下屬性,我的業績增長;

hibernate.jdbc.batch_size=50 
0

我不是Hibernate專家,但我記得添加一個屬性來註銷sql語句。

 SessionFactory sf = new Configuration() 
     .setProperty("hibernate.show_sql", "true") 

這應該表現出你的方法

+0

我可以跟蹤SQL語句,在這一點上沒有任何問題,他們似乎出現一次,但我怎麼能確保他們在批處理工作,DB,如果我已經使用Jdbc和addBatch方法,然後它在數據庫中批量工作。但是在休眠中呢。 – dursun

0

它不會在一個批次去的每一個執行後正在生產什麼SQL,看看Hibernate Doc

0

要跟蹤如果Hibernate使用批次您可以創建logger在org.hibernate.jdbc.AbstractBatcher它會記錄配料...