是否可以选择记录的所有值,而不必分别选择每个值?

时间:2018-09-27 13:39:23

标签: java sql kotlin jooq

我需要选择一条记录的所有值。 我了解到可以使用DSL.val()函数分别选择记录的每个值。 假设我们有一个记录R,具有以下属性: name: Stringnumber: Int。分别选择记录的每个值将如下所示:

R myRecord = new R()
ctx.select(val(myRecord.name), val(myRecord.number))

您可以猜测,当您拥有15个属性的记录时,这将变得非常乏味。

是否可以选择一条记录的所有值,而不必分别选择每个值?

我想像这样:

ctx.select(myRecord)

1 个答案:

答案 0 :(得分:2)

如果不需要类型安全性,则可以使用Record.valuesRow()fields()

ctx.select(myRecord.valuesRow().fields());

这将产生一个Select<Record>,其列数对于编译器是未知的。如果您希望从特定的R记录类型提供的附加类型安全中获利(例如,假设Record2<String, Integer>),则可以使用values() constructor

ctx.selectFrom(values(myRecord.valuesRow()));