【问题标题】:JOOQ: How to add a returning clause when updating through recordJOOQ:通过记录更新时如何添加返回子句
【发布时间】:2020-05-13 18:15:36
【问题描述】:

我目前正在使用以下方法更新表格:

fun <T: MyRecordInterface<*>> updateRecord(record: T) {
   record.setField1("field1")
   record.setField2("field2")

   record.update()
}

允许更新共享同一接口的不同类型的记录:

updateRecord(myRecord1Instance)
updateRecord(myRecord2Instance)

我想在更新后返回完整的更新记录,所以我做了:

fun <T: MyRecordInterface<*>> updateRecord(record: T): T {
   record.setField1("field1")
   record.setField2("field2")

   record.update()
   record.refresh()

   return record
}

是否可以在更新查询中添加返回子句,这样我就不必在此方法中发出 2 个查询?

【问题讨论】:

    标签: kotlin jooq


    【解决方案1】:

    您可以全局开启Settings.returnAllOnUpdatableRecord,它会在每次store()insert()update() 调用时自动为您获取所有结果值(身份、触发器生成的值等)。

    这是全局应用的,并且会产生一些开销,特别是如果您不想要这些结果值,因此仅在真正需要的地方使用带有上述 Settings 的新 Configuration 可能是有意义的。

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 2021-01-01
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多