java - 在 Jooq 中插入多行会引发编译错误
问题描述
我有一个名为的表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
错误:
未定义 InsertSetStep 类型的 execute() 方法
如何运行此插入?
应该用什么代替
InsertSetStep<VarsRecord>
?我应该
insertInto
为每一行执行一个吗?
解决方案
尽量避免 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();
推荐阅读
- php - Magento 块未加载
- javascript - 如何在 R Shiny 中返回焦点元素的 ID?
- java - 有没有办法在子类上实现一个方法,我可以从它的子类访问属性?
- python - 绘制正态分布曲线和直方图
- spring - 必需的单个 bean,但即使在 Spring 配置中引用时也找到了 2 个
- java - Java中的私有变量和C++结构中的私有变量有什么区别?
- javascript - VSCode 高级代码段转换
- python - 如何将垂直网格线添加到 matplotlib 图表?
- ansible - 雪端口通道摘要的ansible网络解析器,NXOS命令
- python-3.x - PCA 恢复数据帧中最重要的特征