仕事先の環境が, DB接続はjdbiを利用し, Json mappingはJacksonを利用しているため, この2つでの実装になる.
build.gradle.kts
に以下を追加implementation("org.jdbi:jdbi3-jackson2")
private val jdbi: Jdbi by lazy {
Jdbi.create(dataSource)
.apply { getConfig(Jackson2Config::class.java).mapper = jacksonObjectMapper() }
}
val sql = """
SELECT
json_agg(json_build_object(
'hoge', hoge,
'fuga', fuga
)) as hogefugas
FROM hoge_fuga
"""
handle.createQuery(sql)
.mapTo(Row)
data class Row(
@Json
hogefugas: List<HogeFuga>,
)
data class HogeFuga(
val hoge: String,
val fuga: String,
)
Twitterフォロー待ってます!