Функция JPAQueryFactory NVL

#spring-data-jpa #null #querydsl #nvl

Вопрос:

Я использую этот JPAQueryFactory .выберите, чтобы получить данные

 queryFactory.select(
            Projections.bean(detailDTO.class,
                    qEmpcate.id,
                    qEmcate.date.as("completeDate"),
                    qEmpcate.status,                       
                    qCete_name
                   ))
            .from(qEmpcate)
            .leftJoin(qCete).on(qCete.id.eq(qEmpcate.cete_id))
            .fetch();
 

полная дата иногда равна НУЛЮ, и это приводит к ошибке в других компонентах. В SQL я бы исправил это просто с помощью чего-то вроде NVL(qEmcate.date,'') , но я совсем новичок в JPAQueryFactory (в целом, весенняя загрузка), и я понял, что это будет не так просто. JPAQueryFactory не распознает NVL и объединение не работает для меня. Есть ли в JPAQueryFactory какая-либо другая функция, которая заменяет нулевые значения некоторой строкой ?

Спасибо вам за помощь.

Комментарии:

1. В Querydsl вы должны использовать coalesce для этого. Какие у вас проблемы с объединением?

2. Потому что я хочу, чтобы нулевое значение полной даты было пустой строкой. Для объединения требуется, чтобы представление как столбца, так и значения было одного типа, поэтому в моем случае я получу ошибку SQL 22007 о том, что представление даты — времени и строки было неправильным. Чтобы исправить это, мне нужно было бы использовать trim — COALESCE(trim(дата)»), и я не думаю, что смогу использовать trim с coalesce таким образом в запросах

3. Вы можете привести дату к строке в Querydsl.