конкатенация 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, но получаю сообщение об ошибке что говорит:

Метод concat(String...) в типе Factory неприменим для аргументов (TableField, String, TableField, String, TableField)

Я использую JOOQ-3.


person kaushik    schedule 13.03.2013    source источник
comment
Я недостаточно знаком с JOOQ, чтобы представить это как ответ, но интересно, хотите ли вы использовать метод TableField .getName(), чтобы получить строку вместо TableField для CONSUMER.AREA_CODE и т. д.   -  person DarenW    schedule 13.03.2013


Ответы (1)


Кажется, что пример в руководстве не работает. Однако вы можете преобразовать строку в Filed через org.jooq.impl.Factory.val.

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

Подробнее см. это письмо от Лукаса Эдера.

person longhua    schedule 13.03.2013