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方法。

+0

我假设这是使用科特林(给出的'apply'功能)。这对你来说真的是一个需求吗?毕竟,模型API并非设计用于流畅风格,如果您不期望这样做,那么'fetch()。intoResultSet()'方法将与DSL API一样工作。 。 –

+0

我生成一个仓库的种类,并且必须使用model api。 InsertQuery帽子只有execute()方法没有获取。有什么办法从它得到结果集? – Sheppard

+0

是的,你当然是对的。我会给出答案 –

在模型API,正确的方法来获得返回的结果是:

query.execute(); 
query.getReturnedRecords();