如何将两个 OR 语句与 QueryDSL 结合起来?

How to combine two OR statements with QueryDSL?

如何在QueryDSL中进行如下语句A OR (B AND C) ?

假设您有一个个人实体,如下

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy = AUTO)
    private Long id;
    private String username;
    private Integer age;

    // Getter, Setter, Constructors as required

}

您有一个 查询 对象,如下所示

QPerson personA = new QPerson("a");
QPerson personB = new QPerson("b");
QPerson personC = new QPerson("c");

Assuming all are Person class query object

您可以像下面这样创建一个 Predicate

BooleanExpression A = personA.username.eq("X");
BooleanExpression B = personB.username.eq("Y");
BooleanExpression C = personC.username.eq("Z");

然后你可以像下面这样组合 BooleanExpression (Predicate)

A.or(B.and(C))