Mike Conley
05/09/2020, 1:41 PMimport org.jdbi.v3.core.Jdbi
import org.jdbi.v3.sqlobject.statement.SqlQuery
import java.time.Duration
import javax.inject.Inject
class StupidDAO @Inject constructor(jdbi: Jdbi) : StupidSql by jdbi.onDemand(StupidSql::class.java) {
companion object {
@JvmStatic
fun main(args: Array<String>) {
val jdbi = DatabaseTestBase.jdbi // Connects to my postgresql test database.
val stupidDAO = StupidDAO(jdbi)
println(stupidDAO.doIt())
}
}
}
private interface StupidSql {
@SqlQuery("""
SELECT 'a' as id,
interval '1 hour' as value
""")
fun doIt(): List<StupidThing<Duration>>
}
data class StupidThing<T>(
val id: String,
val value: T
)
blows up with