Java休眠一个插入多个值而不是多个插入

时间:2019-11-18 14:55:21

标签: java postgresql hibernate jpa

我看到了有关此问题的多个帖子,但是答案很多。

问题:我有多个实体,希望尽快插入。我正在使用hibernate 5.3.5和Postgres作为数据库。

选项1-每个实体一个插入语句:

insert into table (a,b) values (1,2)
insert into table (a,b) values (1,3)
insert into table (a,b) values (1,4)
...
insert into table (a,b) values (1,100)

选项2-使用批处理,一个插入语句用于多个值:

insert into table (a,b) values (1,2),(1,3),(1,4),....(1,50)
insert into table (a,b) values (1,50)...(1,100)

我用来保存对象的代码:

    for (T t : entities) {
        session.save(t);
        i++;
        if (i % 50== 0) {
            session.flush();
            session.clear();
        }
   }

在我的实体类中,我使用序列作为生成值的策略:

 @GeneratedValue(strategy = GenerationType.SEQUENCE

我还设置了以下属性:

hibernate.jdbc.batch_size 50
hibernate.order_inserts true

在浏览其他一些帖子时,我看到了一些不同的注释/答案,有些是相关的,而有些却不是:

我使用的是我提到的代码,但是在数据库上我只能看到选项1。

0 个答案:

没有答案