Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

gerar classe enum da tabela com JOOQ


Claro, você pode reimplementar o recurso removido do seu lado em algumas etapas:

1. Implemente o gerador para esse enum


Você precisaria substituir o JavaGenerator para implementar a geração de código para a tradução de seus dados mestre (podem ser várias tabelas) para enums. Como isso funciona depende inteiramente de você, por exemplo. você pode ter:
  • Tabelas de dados mestre de coluna única
  • Tabelas de mapeamento de ID/VALUE
  • Tabelas de mapeamento de ID/VALUE/comentário
  • Outros layouts

2. Gerar ForcedType configurações para essas enumerações


Sempre que uma tabela de dados mestre é referenciada, você deve reconectar a coluna de chave estrangeira a esse enum usando um <forcedType/> configuração. Isso é feito melhor configurando sua geração de código programaticamente , pois isso permitiria que você tivesse um controle mais dinâmico sobre sua configuração de geração de código jOOQ.

Esta etapa está documentada com mais detalhes na resposta de Bill O'Neil .

3. Impedir a geração das tabelas de dados mestre


Além do acima, você provavelmente deve remover as próprias tabelas de dados mestres da saída gerada. No seu caso, isso deve resultar na configuração:
<excludes>YNM</excludes>

Ou, se você tiver mais de uma tabela de dados mestre:
<excludes>YNM|OTHER_MASTER_DATA_TABLE|...</excludes>

A exclusão dessas tabelas impedirá o acesso a elas a partir do código do cliente jOOQ, bem como removerá as informações de chave estrangeira no código gerado, o que pode ser confuso.