Mysql
 sql >> Base de données >  >> RDS >> Mysql

générer une classe enum à partir de la table avec JOOQ

Bien sûr, vous pouvez réimplémenter la fonctionnalité supprimée de votre côté en quelques étapes :

1. Implémenter le générateur pour cette énumération

Vous auriez besoin de remplacer le JavaGenerator pour implémenter la génération de code pour la traduction de vos données de base (peut-être plusieurs tables) en énumérations. La façon dont cela fonctionne dépend entièrement de vous, par ex. vous pourriez avoir :

  • Tableaux de données de base à colonne unique
  • Tables de correspondance ID/VALUE
  • Tables de mappage ID/VALEUR/Commentaire
  • Autres mises en page

2. Générer ForcedType configurations pour ces énumérations

Chaque fois qu'une telle table de données principales est référencée, vous devez recâbler la colonne de clé étrangère à cette énumération à l'aide d'un <forcedType/> configuration. Il est préférable de configurer votre génération de code par programmation , car cela vous permettrait d'avoir un contrôle plus dynamique sur votre configuration de génération de code jOOQ.

Cette étape est documentée plus en détail dans la réponse de Bill O'Neil .

3. Empêcher la génération des tableaux de données maîtres

En plus de ce qui précède, vous devriez probablement supprimer les tableaux de données de base eux-mêmes de votre sortie générée. Dans votre cas, cela devrait se traduire par la configuration :

<excludes>YNM</excludes>

Ou, si vous avez plusieurs tables de données principales :

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

L'exclusion de ces tables empêchera d'y accéder à partir du code client jOOQ, ainsi que de supprimer les informations de clé étrangère dans le code généré, ce qui pourrait prêter à confusion.