以下の内容はhttps://wrongwrong163377.hatenablog.com/entry/2024/05/12/195911より取得しました。


【jOOQ】getSqlでプリペアドステートメントが$1, $2, ...形式のクエリを取得する【PostgreSQL】

文脈

jOOQでは、getSqlでパラメータが埋め込まれる前のクエリ文字列を得られます。
このクエリについて、デフォルトでは、select * from table where id = ?というように、プリペアドステートメント?で表現されています。

一方PostgreSQLでは、select * from table where id = $1というように、プリペアドステートメント$1, $2, ...形式で要求されます(少なくとも、r2dbc-postgresqlではこの形式以外受け付けられません)。
そこで、jOOQの設定調整によってこの形式でクエリが得られるようにします。

やり方

設定によってはgetSQL(ParamType.NAMED)で取得できます。

www.jooq.org

もし上記でダメなら、setRenderNamedParamPrefixsetParseNamedParamPrefixの両方に"$"を設定した上でgetSQL(ParamType.NAMED)すれば取得できます。

www.jooq.org

www.jooq.org

setParamTypeParamType.NAMEDを指定すれば、getSQL(/* 何も指定しない */)で取得した場合もこの形式になります。

www.jooq.org

補足

以下を参考にしました。

github.com




以上の内容はhttps://wrongwrong163377.hatenablog.com/entry/2024/05/12/195911より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14