Querydsl中的常量布尔值

时间:2017-07-21 06:51:34

标签: java querydsl

序言

对于记录的一些基本过滤,基于权限,我创建了相同接口的多个实现,每个实现都可以提供用于构建查询的过滤/约束。每个实施的响应都是AND - 合并(anyOf)与其他一些条件,之前所有这些都是OR - 合并(allOf)。

其中一个实现可能返回如下内容:QComment.comment.author.eq(user)。但是,其中一些实现只是想表示访问被完全拒绝(&#34; false&#34;)或允许(&#34; true&#34;)。< / p>

这个问题不是关于我的业务逻辑,这就是为什么我掩饰它,但关键在于:

问题

我想返回评估为BooleanExpression的{​​{1}}。 false

我想出了以下内容:

true

虽然效果很好,但看起来相当丑陋。 Querydsl有更好的方法吗?我期待BooleanExpression FALSE_CLAUSE = Expressions.FALSE.ne(Expressions.FALSE); BooleanExpression TRUE_CLAUSE = Expressions.TRUE.eq(Expressions.TRUE); BooleanExpression.FALSE。很惊讶没有找到那些。

1 个答案:

答案 0 :(得分:1)

我同样惊讶地发现这一点。 唯一的改进是

BooleanExpression FALSE_CLAUSE = Expressions.FALSE.isTrue();
BooleanExpression TRUE_CLAUSE = Expressions.TRUE.isTrue();

(这是上述方法的实现)