Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOOQ批删除ID列表的记录_Java_Sql_Database_Jooq - Fatal编程技术网

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