对于记录的一些基本过滤,基于权限,我创建了相同接口的多个实现,每个实现都可以提供用于构建查询的过滤/约束。每个实施的响应都是AND
- 合并(anyOf
)与其他一些条件,之前所有这些都是OR
- 合并(allOf
)。
其中一个实现可能返回如下内容:QComment.comment.author.eq(user)
。但是,其中一些实现只是想表示访问被完全拒绝(" false
")或允许(" 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
。很惊讶没有找到那些。
答案 0 :(得分:1)
我同样惊讶地发现这一点。 唯一的改进是
BooleanExpression FALSE_CLAUSE = Expressions.FALSE.isTrue();
BooleanExpression TRUE_CLAUSE = Expressions.TRUE.isTrue();
(这是上述方法的实现)