JOOQ型号API:insertQuery和Postgres返回声明
问题描述:
通过定期JOOQ的DSL,我检索returning
值的东西,如:JOOQ型号API:insertQuery和Postgres返回声明
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的结果集?:
defaultDslContext.insertQuery(POSTS).apply {
addValue(POSTS.CONTENT, "foo")
setReturning(POSTS.ID)
//getSomehowResultSet() <= what do I do here?
}
例如,SelectQuery上有fetchResultSet
方法。
答
在模型API,正确的方法来获得返回的结果是:
query.execute();
query.getReturnedRecords();
我假设这是使用科特林(给出的'apply'功能)。这对你来说真的是一个需求吗?毕竟,模型API并非设计用于流畅风格,如果您不期望这样做,那么'fetch()。intoResultSet()'方法将与DSL API一样工作。 。 –
我生成一个仓库的种类,并且必须使用model api。 InsertQuery帽子只有execute()方法没有获取。有什么办法从它得到结果集? – Sheppard
是的,你当然是对的。我会给出答案 –