在Jooq中插入多行会引发编译错误

时间:2019-01-16 06:19:44

标签: java jooq

我有一个名为VARS的表,该表具有两列VAR_NAMEVAR_TYPE。我也有要插入此表的POJO列表。 POJO类称为Var,具有两个字段,分别为varNamevarType

请注意,这些字段匹配,因此Jooq可以派生并应用于插入内容。

当我尝试插入Vars列表时,出现编译错误:

    InsertSetStep<VarsRecord> insert = create.insertInto(VARS);

    for (Var var: vars) {
        VarsRecord rec = new VarsRecord();
        rec.from(var);
        insert.set(rec);
    }

    insert.execute();   // <-- error here

错误:

  

该类型的方法execute()未定义   InsertSetStep

  • 如何运行此插入?

  • 应该使用什么代替InsertSetStep<VarsRecord>

  • 我应该为每行执行一个insertInto吗?

1 个答案:

答案 0 :(得分:1)

请尝试避免DSL API as it might change in the next major release的历史性可变性。请改用DSLContext.batchInsert(Collection<? extends TableRecord>)

List<VarsRecord> list = new ArrayList<>(vars.size());
for (Var var : vars) {
    VarsRecord rec = new VarsRecord();
    rec.from(var);
    list.add(rec);
}
create.batchInsert(list).execute();