2013-03-13 8 views
7

Ich habe eine Abfrage wie folgt:jOOQ Verkettung

Result<?> result = create.select(CONSUMER.CONS_ID_NO, 
              CONSUMER.CONS_NAME, 
              concat(CONSUMER.AREA_CODE, "/", CONSUMER.CONS_NO, "/", CONSUMER.CAT_CODE).as("ConsNo"), 
              CONSUMER.ARREARS) 
              .from(CONSUMER) 
              .fetch(); 

ich diese nach dem JOOQ Manual schrieb, aber ich erhalte eine Fehlermeldung, die besagt:

Die Methode concat (String ...) in der Art Factory ist für die Argumente nicht anwendbar (Tabellenfeld, String, Tabellenfeld, String, Tabellenfeld)

Ich verwende JOOQ-3.

+0

Ich bin nicht so vertraut mit jOOQ dies als eine Antwort zu setzen, aber frage mich, ob Sie Tabellenfeld des .getName() -Methode, erhalten eine Zeichenfolge verwenden möchten anstelle eines TableField für CONSUMER.AREA_CODE usw. – DarenW

Antwort

7

Es scheint, dass das Beispiel in der Anleitung nicht funktioniert. Sie können jedoch eine Zeichenfolge in Filed über org.jooq.impl.Factory.val konvertieren.

Record result = create.select(
      concat(AUTHOR.FIRST_NAME, val(" "), AUTHOR.LAST_NAME).as("Full Name") 
    ).from(AUTHOR).fetchAny(); 

Bitte beachten Sie this email from Lukas Eder für Details