Вставить несколько строк в Jooq throws ошибка компиляции - PullRequest
0 голосов
/ 16 января 2019

У меня есть таблица с именем VARS, в которой есть два столбца VAR_NAME и VAR_TYPE. У меня также есть список POJO для вставки в эту таблицу. Класс 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

  • Как запустить эту вставку?

  • Что следует использовать вместо InsertSetStep<VarsRecord>?

  • Должен ли я исключить insertInto для каждой строки?

1 Ответ

0 голосов
/ 16 января 2019

Старайтесь избегать исторической изменчивости DSL API , поскольку она может измениться в следующем основном выпуске .Используйте 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();
...