Cómo utilizar JOOQ Generador Java incluye y excluye

votos
0

Las herramientas de generación de código Java JOOQ utiliza expresiones regulares definidas en la incluye y excluye elementos para controlar lo que se genera. No puedo encontrar una explicación de lo que la estructura del esquema es que estas expresiones se ejecutan en contra.

Quiero tener la capacidad de excluir bases de datos específicas en el servidor, así como mesas de prefijo o específicamente.

Ejemplos sencillos:

  • Dado un servidor SQL con dos DBs 'A' y 'B', ¿cómo puedo instruir a JOOQ sólo generan para las tablas de base de datos 'A'?

  • ¿Cómo hacer en instruir a JOOQ sólo generan para las tablas que empiezan con el prefijo qtbl?

Sería muy bueno si había algunos casos de uso de ejemplo disponibles que muestran algunas configuraciones comunes simples.

Publicado el 13/01/2020 a las 23:55
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

La sección del manual sobre jOOQ incluye y excluye , así como algunas otras secciones que explican el uso del generador de código de las expresiones regulares para que coincida con identificador establece que el generador de código siempre tratará de:

  • Coincidir con los identificadores totalmente calificados
  • Coincidir con los identificadores no cualificados

O, si usted está utilizando jOOQ 3.12+ y no lo apague <regexMatchesPartialQualification/>:

  • Coincidir parcialmente identificadores cualificados (ver # 7947 )

Por ejemplo:

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

Además de lo anterior, si desea excluir bases de datos específicas ( "catálogos") sin que se genere la coincidencia de patrones, obtendrá mejores resultados si se especifica su <inputCatalog>A</inputCatalog>. Ver también la sección del Manual sobre la asignación de esquema .

Los beneficios incluyen una generación de código mucho más rápido, porque sólo ese catálogo se buscará objetos para generar, antes de excluirlos de nuevo usando expresiones regulares. Por lo tanto, la configuración podría ser la siguiente:

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

<!-- Include only tables with this (unqualified) prefix -->
<includes>qtbl.*</includes>
Respondida el 14/01/2020 a las 12:09
fuente por usuario

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