首页 > 解决方案 > 在 Jooq 中,如何让“delete”语句返回被删除的记录?

问题描述

在我的项目中,有 2 个表,orders并且order_payments.

后者是一个有 2 列的连接表,order_id并且payment_id.

为了效率,我没有使用 FK。

当我从表中删除一些订单时orders,我需要payments根据order_id字段从表中删除相关记录。

所以,在使用DELETE语句删除订单后,我希望将order_id已删除订单的s返回,这样我就可以使用它们来检索order_payments表并删除相关记录。

有人可以教我怎么做吗?

我试过

    private List<OrdersRecord> deleteOrders(OrderQuery orderQuery, DSLContext dsl) {
        DeleteQuery<OrdersRecord> deleteQuery = dsl.deleteQuery(ORDERS);
        deleteQuery.addConditions(orderQueryConditions(orderQuery));
        deleteQuery.setReturning();
        deleteQuery.execute();
        return deleteQuery.getReturnedRecords();
    }

但返回了一个空列表。

我哪里做错了?

提前致谢!

标签: javamysqlsqljooq

解决方案


我认为这在 MySQL 8.0.21 中还不可能: https ://bugs.mysql.com/bug.php?id=83139

如果您知道使用本机 MySQL(无论版本)执行此操作的方法,或者以某种方式模拟它,请在此处记录:https ://github.com/jOOQ/jOOQ/issues/6865


推荐阅读