Java JOOQ批删除ID列表的记录
我有一个物品清单Java JOOQ批删除ID列表的记录,java,sql,database,jooq,Java,Sql,Database,Jooq,我有一个物品清单 List <ObjList> objList; 列表对象列表; 列表中的每个对象都有一个ID。 我想删除表MyTable中与列表中每个对象的ID匹配的所有记录。 我的列表只是一个POJO,不是一个可更新的记录。那么,我有没有办法使用batchDelete方法来实现这一点 batchDelete(可更新记录…) 批删除(集合>) 此外,我希望通过传递ID列表从MyTable中获取多个记录或列。根据删除的大小,您可能希望考虑更喜欢批量删除(非常大的ID集)
List <ObjList> objList;
列表对象列表;
列表中的每个对象都有一个ID。我想删除表MyTable中与列表中每个对象的ID匹配的所有记录。
我的列表只是一个POJO,不是一个可更新的记录。那么,我有没有办法使用batchDelete方法来实现这一点
batchDelete(可更新记录…)
批删除(集合>)
此外,我希望通过传递ID列表从MyTable中获取多个记录或列。根据删除的大小,您可能希望考虑更喜欢批量删除(非常大的ID集)或批量删除(小到中等大小的ID集),或两者的组合。对于非常大的ID集,不时提交也是一个好主意 批量删除: 批量删除:
batchDelete(UpdatableRecord...)
batchDelete(Collection<? extends UpdatableRecord<?>>)
// Assuming this static import:
import static org.jooq.impl.DSL.*;
using(configuration)
.batch(
deleteFrom(MY_TABLE).where(MY_TABLE.ID.eq((Integer) null)))
.bind(objList
.stream()
.map(o -> new Object[] { o.getId() })
.toArray())
.execute();
using(configuration)
.deleteFrom(MY_TABLE).where(MY_TABLE.ID.in(objList
.stream()
.map(MyObject::getId)
.collect(Collectors.toList())))
.execute();