Existují dva způsoby, jak dynamicky interagovat s tabulkami/sloupci (tj. bez použití generátoru kódu) v jOOQ:
Použití prostého SQL (org.jooq.SQL
)
To je to, co děláš. Sloupce samozřejmě můžete kvalifikovat přímo ve vašem Field
prostého SQL odkazy dvěma způsoby:
Opakováním "tmp"
řetězec v každém poli:
Table<Record> TMP = DSL.table("tmp");
Field<String> TYPE = DSL.field("tmp.type", String.class);
Field<String> TOKEN = DSL.field("tmp.token", String.class);
Vložením "tmp"
odkaz v prosté šabloně SQL:
Table<Record> TMP = DSL.table("tmp");
Field<String> TYPE = DSL.field("{0}.type", String.class, TMP);
Field<String> TOKEN = DSL.field("{0}.token", String.class, TMP);
Funkce prostého SQL je zdokumentována zde v příručce
Použití kvalifikovaných referencí (org.jooq.Name
)
To je pravděpodobně to, co chcete dělat místo toho. Napíšete:
Table<Record> TMP = DSL.table(DSL.name("tmp"));
Field<String> TYPE = DSL.field(DSL.name("tmp", "type"), String.class);
Field<String> TOKEN = DSL.field(DSL.name("tmp", "token"), String.class);
Funkce pojmenování je popsána zde v příručce .
Výhody tohoto přístupu jsou:
- Žádné riziko vložení SQL
- O rozlišení malých a velkých písmen je postaráno
- Mapování tabulek a ostatní transformace AST budou také fungovat