Логическое выражение, если существует querydsl

#querydsl

Вопрос:

Как я могу проверить, верно/ложно для разных сценариев?

 BooleanExpression exists = JPAexpression.selectOne().from(qUserJob)
.where(qUserJob.user.eq(user),
qUserJob.job.eq(job)).exists();
 

Можно ли преобразовать логическое выражение в логическое, чтобы использовать его в операторе if?

Подобный этому:

 if(exists){
dosomeLogic();
}
 

Ответ №1:

exists() используется для визуализации EXISTS (subquery) выражений. Если вам нужен логический результат, вы должны просто позволить внешнему запросу возвращать любой результат и обрабатывать результат соответственно, например:

 boolean exists = query()
    .select(qUserJob)
    .from(qUserJob)
    .where(qUserJob.user.eq(user), qUserJob.job.eq(job))
    .fetchCount() > 0;