我有dao基本上使用hibernate将记录插入到表中,这个dao用@Transactional
标注propogation-NESTED
标记,我有服务生成其他东西,然后调用我的dao。我的服务也使用@Transactional
propagation-REQUIRED
注释。
我在循环中调用服务。我的dao上的插件是批量还是逐个工作?我如何确定它们是批量工作的? hibernateTransaction管理器是否管理批量插入?
我正在使用Oracle DB。
答案 0 :(得分:1)
我设置了以下属性并且我的表现增加了;
hibernate.jdbc.batch_size=50
答案 1 :(得分:0)
我不是Hibernate专家,但我记得添加一个属性来注销sql语句。
SessionFactory sf = new Configuration()
.setProperty("hibernate.show_sql", "true")
这应该显示每次执行方法后生成的sql
答案 2 :(得分:0)
它不会批处理,请查看Hibernate Doc。
答案 3 :(得分:0)
要跟踪hibernate是否使用批次,您可以为org.hibernate.jdbc.AbstractBatcher创建记录器,它将记录批处理器...