#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.