Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Generiere Enum-Klasse aus Tabelle mit JOOQ

Natürlich könnten Sie die entfernte Funktion in wenigen Schritten auf Ihrer Seite neu implementieren:

1. Implementieren Sie den Generator für diese Aufzählung

Sie müssten den JavaGenerator überschreiben um die Codegenerierung für die Übersetzung Ihrer Stammdaten (ggf. mehrerer Tabellen) in Enums zu implementieren. Wie das funktioniert, ist ganz Ihnen überlassen, z.B. Sie könnten Folgendes haben:

  • Einspaltige Stammdatentabellen
  • ID/VALUE-Zuordnungstabellen
  • ID/WERT/Kommentar-Zuordnungstabellen
  • Andere Layouts

2. Generieren Sie ForcedType Konfigurationen für diese Aufzählungen

Immer wenn auf eine solche Stammdatentabelle verwiesen wird, sollten Sie die Fremdschlüsselspalte mithilfe von <forcedType/> mit dieser Aufzählung neu verbinden Aufbau. Dies erreichen Sie am besten, indem Sie Ihre Codegenerierung programmgesteuert konfigurieren , da dies Ihnen eine dynamischere Kontrolle über die Konfiguration Ihrer jOOQ-Codegenerierung ermöglichen würde.

Dieser Schritt ist ausführlicher in Bill O'Neils Antwort dokumentiert .

3. Verhindern Sie die Generierung der Stammdatentabellen

Darüber hinaus sollten Sie wahrscheinlich die Stammdatentabellen selbst aus Ihrer generierten Ausgabe entfernen. In Ihrem Fall sollte dies zu der Konfiguration führen:

<excludes>YNM</excludes>

Oder, wenn Sie mehr als eine Stammdatentabelle haben:

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

Das Ausschließen dieser Tabellen verhindert den Zugriff auf sie vom jOOQ-Clientcode aus und entfernt Fremdschlüsselinformationen im generierten Code, was verwirrend sein könnte.