【问题标题】:jOOQ Update query with Where clause带有 Where 子句的 jOOQ 更新查询
【发布时间】:2013-10-30 17:29:34
【问题描述】:

如何在 jOOQ 中添加 Where 子句和更新查询?

AccountPaymentRecord aacntPaymentRec = new AccountPaymentRecord();
aacntPaymentRec.setReceiptNumber(PaymentNumberFrom);
aacntPaymentRec.setPaymentComment(ReasonFrom);
transfeeTransfer.update(aacntPaymentRec);

我还必须添加Where 子句。怎么做?

【问题讨论】:

    标签: java sql jooq


    【解决方案1】:

    由于您在UpdatableRecord 上进行操作,因此您可能需要关注what's documented here, in the manual。另一个查找信息的地方是jOOQ manual's sections about the UPDATE statement

    一个可能的解决方案:

    对于您开始使用的代码,一种可能的解决方案是使用DSLContext.executeUpdate(R, Condition)

    AccountPaymentRecord aacntPaymentRec = new AccountPaymentRecord();
    aacntPaymentRec.setReceiptNumber(PaymentNumberFrom);
    aacntPaymentRec.setPaymentComment(ReasonFrom);
    DSL.using(configuration)
       .executeUpdate(aacntPaymentRec, ACCOUNT_PAYMENT.ID.eq(123));
    

    【讨论】:

      【解决方案2】:

      感谢@Lukas 在我的情况下我必须像这样使用

      AccountPaymentRecord aacntPaymentRec = transfeeTransfer.fetchOne(AccountPayment.ACCOUNT_PAYMENT,
                      AccountPayment.ACCOUNT_PAYMENT.PAYMENT_NUMBER.eq(PaymentNumberTo));
      aacntPaymentRec.setReceiptNumber(PaymentNumberFrom);
      aacntPaymentRec.setPaymentComment(ReasonFrom);
      aacntPaymentRec.update();
      

      【讨论】:

      • 是的,这是另一个不错的选择。我不知道您将首先从数据库中获取记录...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多