Mysql
 sql >> Database >  >> RDS >> Mysql

genera la classe enum dalla tabella con JOOQ

Certo, potresti implementare nuovamente la funzionalità rimossa dalla tua parte in pochi passaggi:

1. Implementa il generatore per quell'enumerazione

Dovresti sovrascrivere JavaGenerator per implementare la generazione del codice per la traduzione dei tuoi dati anagrafici (potrebbero essere più tabelle) in enum. Come funziona dipende interamente da te, ad es. potresti avere:

  • Tabelle di dati anagrafici a colonna singola
  • Tabelle di mappatura ID/VALUE
  • Tabelle di mappatura ID/VALUE/Commenti
  • Altri layout

2. Genera ForcedType configurazioni per tali enum

Ogni volta che si fa riferimento a una tale tabella di dati anagrafici, è necessario ricollegare la colonna della chiave esterna a quell'enumerazione utilizzando un <forcedType/> configurazione. È meglio farlo configurando la generazione del codice in modo programmatico , in quanto ciò ti consentirebbe di avere un controllo più dinamico sulla configurazione della generazione del codice jOOQ.

Questo passaggio è documentato in modo più dettagliato nella risposta di Bill O'Neil .

3. Impedire la generazione delle tabelle dei dati anagrafici

Oltre a quanto sopra, dovresti probabilmente rimuovere le stesse tabelle dei dati anagrafici dall'output generato. Nel tuo caso, questo dovrebbe comportare la configurazione:

<excludes>YNM</excludes>

Oppure, se hai più di una tabella di dati anagrafici:

<excludes>YNM|OTHER_MASTER_DATA_TABLE|...</excludes>

L'esclusione di queste tabelle impedirà l'accesso ad esse dal codice client jOOQ, oltre a rimuovere le informazioni sulla chiave esterna nel codice generato, il che potrebbe creare confusione.