sql >> Base de Datos >  >> RDS >> Mysql

Calificar un nombre de columna de tabla temporal en jOOQ

Hay dos formas de interactuar con tablas/columnas dinámicamente (es decir, sin usar el generador de código) en jOOQ:

Usando SQL simple (org.jooq.SQL )

Eso es lo que estás haciendo. Obviamente, puede calificar las columnas directamente en su SQL simple Field referencias de dos formas:

Repitiendo el "tmp" cadena en cada campo:

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

Incrustando el "tmp" referencia en la plantilla de SQL simple:

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 funcionalidad de SQL simple se documenta aquí en el manual

Usando referencias cualificadas (org.jooq.Name )

Eso es probablemente lo que quieres hacer en su lugar. Escribirás:

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 función de asignación de nombres se describe aquí en el manual .

Las ventajas de este enfoque son: