Mysql
 sql >> база данни >  >> RDS >> Mysql

Квалифициране на име на колона на временна таблица в jOOQ

Има два начина за динамично взаимодействие с таблици / колони (т.е. без използване на генератора на код) в jOOQ:

Използване на обикновен SQL (org.jooq.SQL )

Това правиш. Очевидно можете да квалифицирате колоните директно във вашето обикновен SQL Field препратки по два начина:

Чрез повторение на "tmp" низ във всяко поле:

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

Чрез вграждане на "tmp" справка в обикновения 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);

Обикновената SQL функционалност е документирана тук в ръководството

Използване на квалифицирани препратки (org.jooq.Name )

Това вероятно искате да правите вместо това. Ще напишете:

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

Функционалността за именуване е описана тук в ръководството .

Предимствата на този подход са:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо не мога да вмъкна 10 цифри, когато колоната ми е INT(10)

  2. Хибернация не спазва полето на първичния ключ на MySQL auto_increment

  3. Грешка в MySQL:спецификация на ключ без дължина на ключа

  4. Наблюдавайте MySQL вмъквания от различни приложения

  5. PHP - Използване на PDO с масив от клаузи IN