在Jooq中,如何让"delete"语句return删除记录?
In Jooq, how to make the "delete" statement return the deleted records?
在我的项目中,有2个table,orders
和order_payments
。
后者是一个包含 2 列的联接 table,order_id
和 payment_id
。
为了效率我没有用FK
当我从orders
table中删除一些订单时,我需要根据order_id
字段从payments
table中删除相关记录。
因此,在使用DELETE语句删除订单后,我希望返回已删除订单的order_id
s,以便我可以使用它们来检索order_payments
table并删除相关记录。
有人可以教我怎么做吗?
我试过了
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();
}
但是返回了一个空列表。
我哪里做错了?
提前致谢!
我不认为这在 MySQL 8.0.21 中是可能的:
https://bugs.mysql.com/bug.php?id=83139
如果您知道使用本机 MySQL(任何版本)执行此操作的方法,或以某种方式模拟它,请在此处记录:https://github.com/jOOQ/jOOQ/issues/6865
在我的项目中,有2个table,orders
和order_payments
。
后者是一个包含 2 列的联接 table,order_id
和 payment_id
。
为了效率我没有用FK
当我从orders
table中删除一些订单时,我需要根据order_id
字段从payments
table中删除相关记录。
因此,在使用DELETE语句删除订单后,我希望返回已删除订单的order_id
s,以便我可以使用它们来检索order_payments
table并删除相关记录。
有人可以教我怎么做吗?
我试过了
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();
}
但是返回了一个空列表。
我哪里做错了?
提前致谢!
我不认为这在 MySQL 8.0.21 中是可能的: https://bugs.mysql.com/bug.php?id=83139
如果您知道使用本机 MySQL(任何版本)执行此操作的方法,或以某种方式模拟它,请在此处记录:https://github.com/jOOQ/jOOQ/issues/6865