2013-03-13 42 views
7

我有这样的查询:JOOQ串联

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

我这个根据JOOQ Manual写,但我得到一个错误,指出:

的方法CONCAT(字符串... )在式厂不适用于 参数(TableField,字符串, TableField,字符串, TableField)

我正在使用JOOQ-3。

+0

我不够熟悉JOOQ把它做为一个答案,但如果你想使用TableField的.getName()方法,得到一个字符串怀疑而不是用于CONSUMER.AREA_CODE的TableField等。 – DarenW 2013-03-13 03:34:32

回答

7

看来手册中的示例不起作用。但是,您可以通过org.jooq.impl.Factory.val将字符串转换为归档。

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

请参考this email from Lukas Eder的细节