【发布时间】:2018-03-27 03:36:43
【问题描述】:
使用常规 JOOQ 的 DSL,我检索 returning 值类似于:
val resultSet = dslContext
.insertInto(ACCOUNTS)
.columns(
ACCOUNTS.STATUS
)
.values(
model.status
)
.returning(
ACCOUNTS.ID
)
.fetch().intoResultSet()
resultSet.next()
resultSet.use {
val id = resultSet.getLong(1)
model.id = id
}
但是如何获取 InsertQuery 的 ResultSet 呢?:
defaultDslContext.insertQuery(POSTS).apply {
addValue(POSTS.CONTENT, "foo")
setReturning(POSTS.ID)
//getSomehowResultSet() <= what do I do here?
}
例如,SelectQuery 上有fetchResultSet 方法。
【问题讨论】:
-
我假设这是使用 Kotlin(给定
apply函数)。这真的对你有要求吗?毕竟,模型 API 并不是为流畅的风格而设计的,如果你没有预料到,那么fetch().intoResultSet()方法将与 DSL API 一样工作...... -
我生成了某种存储库,并且必须使用模型 api。 InsertQuery 帽子只有 execute() 方法没有 fetch。有没有办法从中获取结果集?
-
是的,你当然是对的。我给个答案
标签: jooq