2013-03-13 33 views
7

Tôi có một câu hỏi như thế này:JOOQ nối

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

tôi đã viết này theo JOOQ Manual, nhưng tôi nhận được một lỗi mà nói:

Phương pháp concat (String ...) trong loại Nhà máy không áp dụng cho các đối số (TableField, String, TableField, String, TableField)

Tôi đang sử dụng JOOQ-3.

+0

Tôi không đủ quen thuộc với JOOQ đặt này ra như một câu trả lời, nhưng tự hỏi nếu bạn muốn sử dụng phương pháp TableField của .getName(), để có được một chuỗi thay vì một TableField cho CONSUMER.AREA_CODE, v.v. – DarenW

Trả lời

7

Dường như mẫu trong sách hướng dẫn không hoạt động. Tuy nhiên, bạn có thể chuyển đổi một chuỗi thành Filed qua số org.jooq.impl.Factory.val.

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

Vui lòng tham khảo this email from Lukas Eder để biết chi tiết