代码之家  ›  专栏  ›  技术社区  ›  ps0604

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

  •  3
  • ps0604  · 技术社区  · 7 年前

    我有张叫的桌子 VARS 有两列 VAR_NAME VAR_TYPE . 我还有一个要在这个表中插入的pojos列表。pojo类被称为 Var 有两个字段 varName varType .

    注释 字段匹配,所以 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<VarsRecord> ?

    • 我应该很可爱吗? insertInto 每一行?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Lukas Eder    7 年前

    尽量避免DSLAPI的历史可变性 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();