sql >> Database >  >> RDS >> Mysql

genereer enum-klasse uit tabel met JOOQ

Natuurlijk kunt u de verwijderde functie in een paar stappen opnieuw implementeren:

1. Implementeer de generator voor die opsomming

U zou de JavaGenerator . moeten overschrijven om de codegeneratie te implementeren voor de vertaling van uw stamgegevens (mogelijk meerdere tabellen) naar opsommingen. Hoe dat werkt is geheel aan jou, b.v. je zou kunnen hebben:

  • Stamgegevenstabellen met één kolom
  • ID/VALUE-toewijzingstabellen
  • ID/VALUE/Commentaar toewijzingstabellen
  • Andere lay-outs

2. Genereer ForcedType configuraties voor die opsommingen

Telkens wanneer naar een dergelijke stamgegevenstabel wordt verwezen, moet u de kolom met de refererende sleutel opnieuw verbinden met die enum met behulp van een <forcedType/> configuratie. Dit kunt u het beste doen door uw codegeneratie programmatisch te configureren , omdat u dan meer dynamische controle hebt over uw configuratie voor het genereren van jOOQ-codes.

Deze stap is gedetailleerder gedocumenteerd in het antwoord van Bill O'Neil .

3. Voorkom het genereren van de stamgegevenstabellen

Naast het bovenstaande moet u waarschijnlijk de stamgegevenstabellen zelf uit uw gegenereerde uitvoer verwijderen. In uw geval zou dit moeten resulteren in de configuratie:

<excludes>YNM</excludes>

Of, als u meer dan één stamgegevenstabel heeft:

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

Als u deze tabellen uitsluit, kunt u ze niet openen vanuit de jOOQ-clientcode en wordt ook informatie over de externe sleutel in de gegenereerde code verwijderd, wat verwarrend kan zijn.



  1. Krijg een lijst met ondersteunde tijdzones in SQL Server (T-SQL)

  2. Mysql - Hoe de opgeslagen procedure af te sluiten/af te sluiten?

  3. Krijg het huidige jaar, de huidige maand en de huidige dag in MySQL

  4. Inverse van SQL LIKE '%value%'