Como usar JOOQ Java Generator inclui e exclui

votos
0

As ferramentas de geração de código JOOQ Java usa expressões regulares definidas no inclui e exclui elementos para controlar o que é gerado. Eu não consigo encontrar uma explicação do que a estrutura do esquema é que essas expressões são executados contra.

Quero ter a capacidade de excluir bancos de dados específicos do servidor, bem como mesas por prefixo ou especificamente.

Exemplos simples:

  • Dado um servidor SQL com dois bancos de dados 'A' e 'B', como faço para instruir JOOQ apenas gerar para tabelas no DB 'A'?

  • Como fazer em instruir JOOQ para gerar apenas para tabelas que começam com o prefixo qtbl?

Seria ótimo se houvesse alguns casos de uso de exemplo disponíveis mostram algumas configurações comuns simples.

Publicado 13/01/2020 em 23:55
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

A seção do manual jOOQ sobre inclui e exclui , assim como algumas outras seções que explicam a utilização do gerador de código de expressões regulares para corresponder identificador estabelece que o gerador de código irá sempre tentar:

  • Combinar identificadores totalmente qualificados
  • Combinar identificadores não qualificados

Ou, se você estiver usando jOOQ 3.12+ e não desligue <regexMatchesPartialQualification/>:

  • Combinar identificadores parcialmente qualificados (ver # 7947 )

Por exemplo:

<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>

Além do acima, se você quiser excluir bancos de dados específicos ( "catálogos") sejam geradas sem correspondência de padrão, você poderá obter resultados ainda melhores se você especificar o seu <inputCatalog>A</inputCatalog>. Veja também a seção do manual de cerca de mapeamento de esquema .

Os benefícios incluem a geração de código muito mais rápido, porque só o catálogo será procurado objetos para gerar, antes de excluí-los novamente usando expressões regulares. Assim, sua configuração pode ser esta:

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

<!-- Include only tables with this (unqualified) prefix -->
<includes>qtbl.*</includes>
Respondeu 14/01/2020 em 12:09
fonte usuário

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