PostgresQL INSERTsは、挿入された列のサブセットを使用してoutput_expression
を返すことができますが、この機能をjOOQで使用するための構文を正しく取得できません。INSERT ...返されるoutput_expression
これは私が達成したいもののPL/pgSQLのと同等です:
CREATE TABLE my_table (i INTEGER, t TEXT);
DO
$$DECLARE my_var TEXT;
BEGIN
INSERT INTO my_table(i, t)
VALUES(1, 'hello')
RETURNING (t) INTO my_var;
RAISE NOTICE 'Inserted text was --> % <--', my_var;
END$$;
しかし、私は見つけることの問題は、この構文はjOOQで無効である:私はしました
String retVal = using(configuration)
.insertInto(MY_TABLE,
MY_TABLE.I,
MY_TABLE.T)
.values(i, t)
.returning(MY_TABLE.T)
.fetchInto(String.class);
最も近いですfetchOne
を使用して完全なMyTableRecord
を取得し、必要なフィールドを選択しています。私が望む変数のタイプを正確に取得するようにjOOQに指示する別の方法はありますか?
PD:私はあなたが私が見つけた回避策は次の通りである.fetch().into(String.class)
これは、ロードマップ上:https://github.com/jOOQ/jOOQ/issues/3185 –