2013-03-13 11 views
7

Mam kwerendy tak:JOOQ konkatenacji

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(); 

Napisałem to według JOOQ Manual, ale otrzymuję błąd, który mówi:

Metoda concat (String ...) w fabryce typu nie ma zastosowania do argumentów (TableField, łańcuch, TableField, łańcuch, TableField)

Używam JOOQ-3.

+0

Nie jestem na tyle obeznany z JOOQ umieścić to jako odpowiedź, ale zastanawiam się, czy chcesz korzystać z metody TableField za .getName(), aby uzyskać ciąg zamiast TableField dla CONSUMER.AREA_CODE itd. – DarenW

Odpowiedz

7

Wygląda na to, że próbka w instrukcji nie działa. Możesz jednak przekonwertować ciąg na Filed przez org.jooq.impl.Factory.val.

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

Proszę odnieść się do this email from Lukas Eder szczegółowe informacje