QueryDsl - Unterabfrage im Auflistungsausdruck
Ich benutze spring-data-jpa und querydsl (3.2.3)
Ich habe ein Szenario, in dem ich eine Reihe von Prädikaten basierend auf Benutzer-Filer / Input erstelle. All dies kommt zuBooleanExpression
.
Mein vereinfachtes Modell sieht folgendermaßen aus:
@Entity
public class Invoice {
@ManyToOne
private Supplier supplier;
}
@Entity
public class Supplier {
private String number;
}
@Entity
public class Company {
private String number;
private boolean active
}
Nun, mit dieser Abfrage habe ich zu kämpfen:
SELECT * FROM Invoice WHERE invoice.supplier.number in (SELECT number from Company where active=true)
Also im Grunde muss ich in UnterabfragenCollectionExpression
Ein ähnliches Format, mit dem alle Unternehmensnummern abgerufen und in () -Ausdruck gesetzt werden.
Meine Federdaten-Repositories implementiertCustomQueryDslJpaRepository
was sich wiederum erstrecktJpaRepository
undQueryDslPredicateExecutor
.
Ich hoffe, die Antwort darauf ist einfach, aber ich bin ziemlich neu bei querydsl und habe bisher keine Lösungen gefunden.