BooleanExpression 如果存在 querydsl

BooleanExpression if exists querydsl

我如何检查 true/false 在不同的场景中去?

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

是否可以将布尔表达式转换为布尔值以便能够在 if 语句中使用它?

像这样:

if(exists){
dosomeLogic();
}

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

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