Java 如何将两个OR语句与QueryDSL组合?

Java 如何将两个OR语句与QueryDSL组合?,java,querydsl,Java,Querydsl,如何在QueryDSLA或(B和C)中做出以下陈述?假设您有一个个人实体,如下所示 @Entity public class Person { @Id @GeneratedValue(strategy = AUTO) private Long id; private String username; private Integer age; // Getter, Setter, Constructors as required } 您有一个查

如何在QueryDSL
A或(B和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");
BooleanExpression A = personA.username.eq("X");
BooleanExpression B = personB.username.eq("Y");
BooleanExpression C = personC.username.eq("Z");
假设所有查询对象都是Person类查询对象

您可以创建一个谓词,如下所示

QPerson personA = new QPerson("a");
QPerson personB = new QPerson("b");
QPerson personC = new QPerson("c");
BooleanExpression A = personA.username.eq("X");
BooleanExpression B = personB.username.eq("Y");
BooleanExpression C = personC.username.eq("Z");
然后可以组合布尔表达式(谓词)如下所示

QPerson personA = new QPerson("a");
QPerson personB = new QPerson("b");
QPerson personC = new QPerson("c");
BooleanExpression A = personA.username.eq("X");
BooleanExpression B = personB.username.eq("Y");
BooleanExpression C = personC.username.eq("Z");
A.或(B.和(C))