Mysql
 sql >> Base de données >  >> RDS >> Mysql

Qualifier un nom de colonne de table temporaire dans jOOQ

Il existe deux manières d'interagir dynamiquement avec les tables/colonnes (c'est-à-dire sans utiliser le générateur de code) dans jOOQ :

Utiliser du SQL brut (org.jooq.SQL )

C'est ce que vous faites. Vous pouvez évidemment qualifier les colonnes directement dans votre Field SQL brut références de deux manières :

En répétant le "tmp" chaîne dans chaque champ :

Table<Record> TMP = DSL.table("tmp");
Field<String> TYPE = DSL.field("tmp.type", String.class);
Field<String> TOKEN = DSL.field("tmp.token", String.class);

En incorporant le "tmp" référence dans le modèle SQL brut :

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);

La fonctionnalité SQL simple est documentée ici dans le manuel

Utiliser des références qualifiées (org.jooq.Name )

C'est probablement ce que vous voulez faire à la place. Vous écrivez :

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);

La fonctionnalité de nommage est décrite ici dans le manuel .

Les avantages de cette approche sont :