j'ai une entité simple relation un à plusieursQueryDSL prédicats SetPath.any avec de multiples conditions
@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;
...
}
Maintenant, en utilisant QueryDSL, je voudrais interroger « Tous les membres inscrits à un programme avec programType = « FULLTIME »et programCost> $ 1000'
J'ai utilisé le prédicat suivant
Predicate predicate = QMember.member.programs.any()
.programType.eq(ProgramType.FULLTIME)
.and(QMember.member.programs.any().programCost.gt(1000));
avec JPARepository
memberRepository.findAll(predicate);
Maintenant, le problème est que les deux requêtes sont indépendantes. Il renvoie tous les membres avec au moins un programme de type 'FULLTIME' ou au moins un programme de coût supérieur à 1000.
Résultat souhaité: Renvoie les membres s'il a au moins un programme de type FULLTIME et coût> 1000 .
impressionnant, il a vraiment aidé à la mise en service que je travaille pour –