sql >> Databasteknik >  >> RDS >> Mysql

generera enum-klass från tabell med JOOQ

Visst, du kan återimplementera den borttagna funktionen på din sida med några få steg:

1. Implementera generatorn för den uppräkningen

Du skulle behöva åsidosätta JavaGenerator att implementera kodgenereringen för översättning av dina masterdata (kan vara flera tabeller) till enums. Hur det fungerar är helt upp till dig, t.ex. du kan ha:

  • Stamdatatabeller för en kolumn
  • ID/VALUE-mappningstabeller
  • ID/VÄRDE/Kommentarmappningstabeller
  • Andra layouter

2. Generera ForcedType konfigurationer för dessa enums

Närhelst en sådan stamdatatabell refereras, bör du koppla om den främmande nyckelkolumnen till den uppräkningen med en <forcedType/> konfiguration. Detta görs bäst genom att konfigurera din kodgenerering programmatiskt , eftersom det skulle tillåta dig att ha mer dynamisk kontroll över din jOOQ-kodgenereringskonfiguration.

Detta steg dokumenteras mer i detalj i Bill O'Neils svar .

3. Förhindra genereringen av masterdatatabellerna

Utöver ovanstående bör du förmodligen ta bort själva masterdatatabellerna från din genererade utdata. I ditt fall bör detta resultera i konfigurationen:

<excludes>YNM</excludes>

Eller, om du har mer än en basdatatabell:

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

Att utesluta dessa tabeller kommer att förhindra åtkomst till dem från jOOQ-klientkoden, samt ta bort främmande nyckelinformation i genererad kod, vilket kan vara förvirrande.



  1. Lätt inköpsäventyr

  2. Använda PostgreSQL-replikeringsplatser

  3. Pythons mysqldb obskyra dokumentation

  4. Oracle:Vad gör `(+)` i en WHERE-sats?