【发布时间】:2016-03-04 08:27:45
【问题描述】:
我想在Scala中使用jOOQ的字符串插值功能,例如resultQuery"SELECT * FROM objects":
// setup connection
val con = DriverManager.getConnection(url, userName, password)
// create DSLContext
val dsl = DSL.using(con, SQLDialect.POSTGRES_9_4)
// normal use of DSLContext
dsl.resultQuery("SELECT * FROM objects")
// intented use of string interpolation
val q = resultQuery"SELECT * FROM objects"
val result = q.fetch()
println(result)
运行此代码(没有任何外部配置等)会导致以下异常:
Exception in thread "main" org.jooq.exception.DetachedException: Cannot execute query. No Connection configured
at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:312)
at org.jooq.impl.AbstractResultQuery.fetch(AbstractResultQuery.java:305)
...
SQLInterpolation 似乎正在使用默认设置。我尝试通过将 DSLContext 和 Configuration 设置为隐式来提供这些设置,但我仍然收到相同的异常:
implicit val dsl = DSL.using(con, SQLDialect.POSTGRES_9_4)
implicit val config = new DefaultConfiguration().derive(con)
.derive(SQLDialect.POSTGRES_9_4)
如何正确地将我的设置(连接、方言等)提供给字符串插值?
【问题讨论】: