4
我有一個簡單的實體一對多的關係QueryDSL謂詞SetPath.any與多個條件
@Entity // and other @ stuff
public class Member {
@Id
private Long id;
private String name;
private List<Program> programs;
...
}
@Entity
public class Program {
@Id
private Long id;
private Long programName;
private ProgramType programType;
private Long programCost;
...
}
現在使用QueryDSL,我想查詢 「所有成員參加與PROGRAMTYPE =「FULLTIME程序「和programCost> $ 1000'
我用下面的謂詞
Predicate predicate = QMember.member.programs.any()
.programType.eq(ProgramType.FULLTIME)
.and(QMember.member.programs.any().programCost.gt(1000));
與JPARepository
memberRepository.findAll(predicate);
現在問題是兩個查詢是獨立的。它返回al成員至少有一個類型爲「FULLTIME」的程序或至少一個程序的成本大於1000.
預期結果:返回成員,如果他至少有一個類型爲FULLTIME的程序且成本> 1000 。
真棒,這真的幫了我工作啓動 –