jOOQ
jOOQで組み立てたクエリをConnectionFactoryへ直発行する仕組みを作ったのでまとめます。 なお、これは事情が有って作ったものであり、本来一切推奨できないコードであることはご承知おき下さい。 コード全体は以下の通りです。 基本的にはSelectクエリでの…
状況 jOOQのコード生成後にフォーマッティングするため、kotlinterを用いfinalizedBy("formatKotlin")としていたプロジェクトで、nu.studer.jooqからorg.jooq.jooq-codegen-gradleに移行する際、以下のようなエラーが出るようになりました(※編集しているた…
文脈 jOOQでは、getSqlでパラメータが埋め込まれる前のクエリ文字列を得られます。 このクエリについて、デフォルトでは、select * from table where id = ?というように、プリペアドステートメントが?で表現されています。 一方PostgreSQLでは、select * fr…
状況 大量のUUIDを指定したin句を発行する際に、メモリ消費量が問題になりました。 見たところ、jOOQではUUID1件当たりcast('b81b8735-6ac8-4b0b-a969-658e70425616' as uuid)みたいな形のクエリになってしまうことが原因のようでした。 対処 応急処置として…
以下の記事を書いていて、「DSLContextを使い捨てたら非効率なのでは?」と感じたので、管理方法を考えてみたメモです。 その他の便利要件も含めています。 あくまでメモなので、これがどれ位性能に影響するか等は未検証です。 qiita.com 前提 トランザクシ…
お詫び 過去公開していた記事では、Spring WebFluxで複数リクエストを同時に処理する場合を考慮していませんでした。 JDBC接続 x Spring WebFluxでトランザクション管理をすると壊れる可能性が有るため、やらないことをお勧めします。 「R2DBC接続でトランザ…
やり方 dependenciesにjooqGenerator("jakarta.xml.bind:jakarta.xml.bind-api:3.0.0")を追加すれば生成が通りました。 dependencies { /* 略 */ jooqGenerator("jakarta.xml.bind:jakarta.xml.bind-api:3.0.0") /* 略 */ } 補足 implementationだと通りませ…
定義したもの import org.jooq.Field import org.jooq.Record inline fun <reified T> Record.read(field: Field<*>): T = this[field, T::class.java] 使い方 以下のように使います。 import org.jooq.Field import org.jooq.Record // FOOテーブルに定義された文字列</reified>…