jOOQ 3.21
Last reviewed Sep 19, 2026
Prompt Details
Prompt Composition
2prompts
- Java 21124 lines · 3.9K tokens
- jOOQ 3.2160 lines · 2.8K tokens
Total184 lines · 6.7K tokens
CWE Coverage
- 20
- 22
- 59
- 78
- 79
- 88
- 89
- 95
- 117
- 190
- 197
- 201
- 208
- 209
- 250
- 295
- 297
- 323
- 327
- 338
- 347
- 362
- 367
- 378
- 427
- 470
- 471
- 488
- 489
- 494
- 502
- 532
- 566
- 611
- 653
- 732
- 759
- 770
- 772
- 776
- 807
- 862
- 863
- 915
- 916
- 918
- 922
- 1333
Prompt Preview
Apply the Java 21 prompt first. These rules cover jOOQ 3.21 on Java 21, with the Open Source Edition as the baseline, and were checked against 3.21.7. Apply rules for commercial policies and hidden, readonly, or redacted columns only when the deployed edition supports them.
Version scope and generated code
- Align
jooq,jooq-meta,jooq-codegen, generator plugins, and extension modules to the same release and compatible edition/JDK distribution; configure theSQLDialectfor the deployed database. - Generate from a trusted schema with a separate metadata account, and restrict the application's database role to required runtime operations. Review generator configuration, forced types, custom strategies, converters, bindings, and generated output after migrations; code-generation includes/excludes do not restrict database access at runtime.
- Check resolved dependencies as well as jOOQ's version: application BOMs and overrides must not undo 3.21.7's Jackson and Spring security updates. Assess advisories for the optional modules and dependency versions actually installed.
SQL construction and escape hatches
- Use generated fields, typed DSL comparisons, and
DSL.val()for values; retain the defaultStatementType.PREPARED_STATEMENTfor ordinary application queries. - Restrict
@PlainSQLAPIs, includingDSL.sql(), string overloads ofcondition,field,table,query,resultQuery, and fluentwhere/from, to reviewed constant templates. Pass values through?bindings orDSL.val()query parts in{0}templates; never interpolate input into