Comment utiliser JOOQ Java générateur inclut et exclut

voix
0

Les outils de génération de code Java JOOQ utilise des expressions régulières définies dans includes et excludes éléments pour contrôler ce qui est généré. Je ne peux pas trouver une explication de ce que la structure du schéma est que ces expressions sont dirigées contre.

Je veux avoir la possibilité d'exclure des bases de données spécifiques sur le serveur ainsi que des tables par préfixe ou spécifique.

Des exemples simples:

  • Étant donné un serveur SQL avec deux blocs de données de A 'et « B », comment puis-je Instruire JOOQ pour générer uniquement pour les tables de DB « A »?

  • Comment faire Instruire JOOQ seulement générer des tables commençant par le préfixe « qtbl »?

Ce serait génial s'il y avait des cas d'utilisation par exemple disponibles montrant certaines configurations simples communes.

Créé 13/01/2020 à 23:55
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

La section du manuel jOOQ au sujet inclut et exclut , ainsi que quelques autres sections qui expliquent l'utilisation du générateur de code d'expressions régulières pour correspondre à l' identificateur établit que le générateur de code sera toujours essayer de:

  • Faites correspondre les identifiants qualifiés
  • Faites correspondre les identificateurs non qualifiés

Ou, si vous utilisez jOOQ 3.12+ et ne pas éteindre <regexMatchesPartialQualification/>:

  • Faites correspondre les identificateurs partiellement qualifiés (voir # 7947 )

Par exemple:

<excludes>
  (?i:                      # Using case insensitive regex for the example
       database_prefix.*?\. # Match a catalog prefix prior to the qualifying "."
       .*?\.                # You don't seem to care about schema names, so match them all
       table_prefix.*?      # Match a table prefix at the end of the identifier
  )
</excludes>

En plus de ce qui précède, si vous voulez exclure des bases de données spécifiques ( « catalogues ») d'être générés sans correspondance de motif, vous obtiendrez des résultats encore meilleurs si vous spécifiez votre <inputCatalog>A</inputCatalog>. Voir aussi la section de manuel sur le mappage de schéma .

Les avantages comprennent une génération de code beaucoup plus rapide, parce que ce catalogue sera inspectée pour des objets à générer, avant de les exclure de nouveau en utilisant des expressions régulières. Ainsi, la configuration pourrait être celle-ci:

<!-- Include only database A -->
<inputCatalog>A</inputCatalog>

<!-- Include only tables with this (unqualified) prefix -->
<includes>qtbl.*</includes>
Créé 14/01/2020 à 12:09
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more