Kriterien für den Ruhezustand: Left Outer Join mit Einschränkungen für beide Tabellen

Ich mache einen LEFT OUTER JOIN, kann aber Einschränkungen nur für den ersten Tisch anwenden. Gibt es eine Möglichkeit, die auch für den zweiten Tisch gilt?

Hier ist mein Code:

Criteria criteria = this.crudService
        .initializeCriteria(Applicant.class).setFetchMode("products",
              FetchMode.JOIN);.

Dies funktioniert (Bewerber hat eine Eigenschaft bewerberName):

criteria.add(Restrictions.eq("applicantName", "Markos")

Keines dieser Werke (Produkt hat eine productName-Eigenschaft)

criteria.add(Restrictions.eq("productName", "product1")

criter.add (Restrictions.eq ("products.productName", "product1") // products: der Name der Eigenschaft criter.add (Restrictions.eq ("Product.productName", "product1") // Product: the Name der DB-Tabelle

Und dies ist die Ausnahme, die ich erhalte, wenn ich richtig verstehe, dass die Eigenschaft productName in Applicant nicht vorhanden ist:

EJB Exception: ; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant

Ich habe versucht, einen Alias zu verwenden, aber dadurch wurde ein INNER JOIN anstelle des von mir gewünschten LEFT OUTER JOIN generiert.

Wie kann ich Einschränkungen für beide Tabellen anwenden?

AKTUALISIEREN:

Das Problem ist wahrscheinlich dasselbe wie das folgende:https://forum.hibernate.org/viewtopic.php?p=2393694