首页 > 解决方案 > BooleanExpression 如果存在 querydsl

问题描述

在不同的场景中如何检查是真/假?

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

是否可以将 BooleanExpression 转换为布尔值以便在 if 语句中使用它?

像这样:

if(exists){
dosomeLogic();
}

标签: querydsl

解决方案


exists()用于渲染EXISTS (subquery)表达式。如果你想要一个布尔结果,你应该让最外面的查询返回任何结果并相应地处理结果,例如:

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

推荐阅读