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

Comment obtenir une représentation Row d'une table générée ?

Fonctionnalité manquante dans jOOQ 3.11

Il semble y avoir une fonctionnalité manquante dans le générateur de code jOOQ, un Table.fieldsRow() généré méthode surchargée qui fournit un Row[N]<...> plus étroit et covariant type de retour. J'ai créé une demande de fonctionnalité pour cela, à implémenter dans jOOQ 3.12 :https:// github.com/jOOQ/jOOQ/issues/7809

Également manquant, un DSL.rowField(RowN) surchargé méthode :https://github.com/jOOQ/jOOQ/issues/7810

Solution :répertorier explicitement les colonnes

Il s'agit de la solution de contournement la plus évidente, que vous souhaitez évidemment éviter :Lister explicitement tous les noms de colonnes :

row(pmu.COL1, pmu.COL2, ..., pmu.COLN)

Solution :utilisez les enregistrements générés

Il existe déjà une telle méthode générée dans les enregistrements générés. Comme solution de contournement, vous pouvez utiliser

new ProjectMembersUsersRecord().fieldsRow();

Solution, étendez le générateur de code

Vous pouvez déjà implémenter #7809 vous-même en étendant le JavaGenerator avec une section de code personnalisée :

https://www.jooq.org/doc /dernier/manuel/code-generation/codegen-custom-code