2017-10-15 8 views
0

を返す、私のようなものでreturning値を取得:JOOQモデルAPI:insertQueryとPostgresは通常のJOOQのDSLで声明

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というメソッドがあります。モデルAPIで

+0

私は、これはKotlin( 'apply'機能を与えられた)を使用していると仮定しています。これは本当にあなたの必要条件ですか?結局のところ、モデルAPIは流暢なスタイルで使うようには設計されておらず、あなたがそれを期待していなければ、 'fetch()。intoResultSet()'メソッドはDSL APIとまったく同じように動作します。 –

+0

私はリポジトリの種類を生成し、モデルAPIを使用する必要があります。 InsertQueryハットはexecute()メソッドはフェッチしません。そこから結果セットを得る方法はありますか? – Sheppard

+0

はい、もちろんそうです。私は答えを与えるだろう –

答えて

0

、返された結果を得るための正しい方法は次のとおりです。

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