我有道,基本上插入一个记录到表中使用休眠,这个道标有@Transactional
注释与propogation-NESTED
,我有服务,使一些其他的东西,然后调用我的道。我的服务也用@Transactional
与propagation-REQUIRED
注解。休眠批量插入,批量更新
我在循环中调用服务。我的刀片插入是否可以批量或一个一个地工作?我如何确保他们能够批量工作? hibernateTransaction管理器是否管理批量插入?
我正在使用Oracle DB。
我有道,基本上插入一个记录到表中使用休眠,这个道标有@Transactional
注释与propogation-NESTED
,我有服务,使一些其他的东西,然后调用我的道。我的服务也用@Transactional
与propagation-REQUIRED
注解。休眠批量插入,批量更新
我在循环中调用服务。我的刀片插入是否可以批量或一个一个地工作?我如何确保他们能够批量工作? hibernateTransaction管理器是否管理批量插入?
我正在使用Oracle DB。
我已经设置以下属性,我的业绩增长;
hibernate.jdbc.batch_size=50
我不是Hibernate专家,但我记得添加一个属性来注销sql语句。
SessionFactory sf = new Configuration()
.setProperty("hibernate.show_sql", "true")
这应该表现出你的方法
我可以跟踪SQL语句,在这一点上没有任何问题,他们似乎出现一次,但我怎么能确保他们在批处理工作,DB,如果我已经使用Jdbc和addBatch方法,然后它在数据库中批量工作。但是在休眠中呢。 – dursun
它不会在一个批次去的每一个执行后正在生产什么SQL,看看Hibernate Doc。
要跟踪如果Hibernate使用批次您可以创建logger在org.hibernate.jdbc.AbstractBatcher它会记录配料...
我问JDBC的addBatch相当于处于休眠 – dursun