私は値フィールドがnumeric
であるpostgresを使用しています。 JOOQはそれをBigDecimal
に変えます。マイJOOQクエリは次のとおりです。SumById
はid
とsum
フィールドを持つデータのクラスがあるJOOQ合計フィールド値:BigDecimalからInt
val sumField = DSL.sum(TABLE.VALUE)
val query = dsl().select(TABLE.id.`as`("id"), sumField.`as`("sum"))
.from(TABLE)
.groupBy(TABLE.id)
.fetch()
.map{
record -> SumById(
id = record.get("id").toString(),
sum = record.get("sum").toString().toInt()
)
}
:
data class SumById (val id: String, val sum: Int)
私は.toString().toInt()
をすることによってInt
合計を得ることができます。しかし、BigDecimal
をInt
にするより良い方法があるかどうか疑問に思っていました。
PS
私は、これはJOOQの質問よりもkotlin質問の詳細ですね。
タイプは 'record.get(文字列)'によって返される何? – jrtapsell
"レコード"クラスのカスタム拡張メソッドを定義することができます。読むのがよかったです。 –