JOOQ:通过记录更新时如何添加返回子句
JOOQ: How to add a returning clause when updating through record
我目前正在更新 table,方法是:
fun <T: MyRecordInterface<*>> updateRecord(record: T) {
record.setField1("field1")
record.setField2("field2")
record.update()
}
允许更新共享同一接口的不同类型的记录:
updateRecord(myRecord1Instance)
updateRecord(myRecord2Instance)
我想return更新后的完整更新记录,所以我做了:
fun <T: MyRecordInterface<*>> updateRecord(record: T): T {
record.setField1("field1")
record.setField2("field2")
record.update()
record.refresh()
return record
}
是否可以将 returning 子句添加到更新查询中,这样我就不必在此方法中发出 2 个查询?
您可以全局启用 Settings.returnAllOnUpdatableRecord
,这将在每个 store()
、insert()
自动为您获取所有结果值(身份、触发器生成的值等) ,update()
来电.
这是全局应用的,会产生一些开销,特别是如果您不想要这些结果值,因此仅在此处使用带有上述 Settings
的新 Configuration
才有意义真的很需要
我目前正在更新 table,方法是:
fun <T: MyRecordInterface<*>> updateRecord(record: T) {
record.setField1("field1")
record.setField2("field2")
record.update()
}
允许更新共享同一接口的不同类型的记录:
updateRecord(myRecord1Instance)
updateRecord(myRecord2Instance)
我想return更新后的完整更新记录,所以我做了:
fun <T: MyRecordInterface<*>> updateRecord(record: T): T {
record.setField1("field1")
record.setField2("field2")
record.update()
record.refresh()
return record
}
是否可以将 returning 子句添加到更新查询中,这样我就不必在此方法中发出 2 个查询?
您可以全局启用 Settings.returnAllOnUpdatableRecord
,这将在每个 store()
、insert()
自动为您获取所有结果值(身份、触发器生成的值等) ,update()
来电.
这是全局应用的,会产生一些开销,特别是如果您不想要这些结果值,因此仅在此处使用带有上述 Settings
的新 Configuration
才有意义真的很需要