Hibernate batch_size不能与Oracle一起使用

时间:2017-06-12 10:59:02

标签: java oracle performance hibernate

我想配置hibernate batch_size。 我在我的休眠配置中配置它如下:

      configuration.setProperty("hibernate.jdbc.batch_versioned_data", 
 "true");
      configuration.setProperty("hibernate.jdbc.batch_size", "100");
      configuration.setProperty("hibernate.jdbc.fetch_size", "400");
      configuration.setProperty("hibernate.order_inserts", "true");
      configuration.setProperty("hibernate.update_inserts", "true");

我在我的数据库中创建了一个名为TEST的测试表,只有一个整数字段。 相关实体是:

@Entity
@Table(name = "Test")
public class TestEntity implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "Field")
    private int field;
}

我写了一个非常样本的测试方法来创建一些数据:

 tx = session.beginTransaction();
 for (int i = 0; i < 1000; i++) {
   TestEntity test = new TestEntity(i);
   session.save(test);
 }

 tx.commit();

但是在hibernate输出中,插入是逐个执行的:

Hibernate: 
insert 
into
    Test
    (Field) 
values
    (?)
Hibernate: 
insert 
into
    Test
    (Field) 
values
    (?)
Hibernate: 
insert 
into
    Test
    (Field) 
values
    (?)
Hibernate: 
insert 
into
    Test
    (Field) 
values
    (?)
Hibernate: 
insert 
into
    Test
    (Field) 
values
    (?)
Hibernate: 
insert 
into
    Test
    (Field) 
values
    (?)
.......
.......

我真的不明白为什么它不起作用。

有什么想法吗?

0 个答案:

没有答案