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

时间:2016-08-03 14:15:16

标签: java querydsl

如何在QueryDSL A OR (B AND C) 中制作以下声明?

1 个答案:

答案 0 :(得分:1)

我们假设您有人员实体,如下所示

@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");
  

假设所有都是Person类查询对象

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

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))