2012-01-23 671 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它会记录配料...