gpt4 book ai didi

java - JOOQ批量删除ID列表的记录

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:04 26 4
gpt4 key购买 nike

我有一个对象列表。

List <ObjList> objList;   

列表中的每个对象都有一个 ID。
我想从表 MyTable 中删除与列表中每个对象的 ID 匹配的所有记录。
我的列表只是一个 POJO,而不是可更新记录。那么有什么方法可以使用batchDelete方法来实现这一点吗?

From the JavaDocs

batchDelete(UpdatableRecord...)  
batchDelete(Collection<? extends UpdatableRecord<?>>)

此外,我想通过传递 ID 列表从 MyTable 中获取多个记录或列。

最佳答案

根据删除的大小,您可能需要考虑选择批量删除(非常大的 ID 集)或批量删除(中小型 ID 集),或两者的组合。对于非常大的 ID 集,不时提交也是一个好主意。

批量删除:

// 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();

关于java - JOOQ批量删除ID列表的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37409310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com