【问题标题】:In Jooq, how to make the "delete" statement return the deleted records?在 Jooq 中,如何让“delete”语句返回被删除的记录?
【发布时间】:2021-01-01 16:51:36
【问题描述】:

在我的项目中,有 2 个表,ordersorder_payments

后者是一个有 2 列的连接表,order_idpayment_id

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

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

所以,在使用DELETE语句删除订单后,我希望返回已删除订单的order_ids,以便我可以使用它们来检索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();
    }

但返回了一个空列表。

我哪里做错了?

提前致谢!

【问题讨论】:

    标签: java mysql sql jooq


    【解决方案1】:

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

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

    【讨论】:

    • 我明白了。我错过了@Support 注释,并没有注意到 MySQL 不支持它。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2013-04-02
    • 2022-01-16
    • 2017-09-11
    相关资源
    最近更新 更多