【问题标题】:Is it possible to select all values of a record instead of having to select each value separately?是否可以选择记录的所有值,而不必分别选择每个值?
【发布时间】:2019-03-03 10:50:48
【问题描述】:

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

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

您可以猜到,当您拥有包含 15 个属性的记录时,这将变得相当乏味。

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

我想像这样:

ctx.select(myRecord)

【问题讨论】:

    标签: java sql kotlin jooq


    【解决方案1】:

    如果你不需要类型安全,那么你可以使用Record.valuesRow().fields():

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2015-09-21
      • 2023-01-09
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      相关资源
      最近更新 更多