Querydsl中的常量布尔值

问题描述 投票:1回答:1

Preamble

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

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

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

Question

我想返回一个BooleanExpression,评估为false,resp。 true

我想出了以下内容:

BooleanExpression FALSE_CLAUSE = Expressions.FALSE.ne(Expressions.FALSE);
BooleanExpression TRUE_CLAUSE = Expressions.TRUE.eq(Expressions.TRUE);

虽然这很有效,但看起来相当丑陋。 Querydsl有更好的方法吗?我期待着BooleanExpression.FALSEBooleanExpression.TRUE。惊讶找不到那些。

java querydsl
1个回答
1
投票

我没有发现这一点同样感到惊讶。唯一的改进是

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

(这是上述方法的实现)

© www.soinside.com 2019 - 2024. All rights reserved.